ar
Feedback
iOS Dev

iOS Dev

الذهاب إلى القناة على Telegram

👨‍💻Автор: Виктор Грушевский (@Viktorianec) ⚒️ База: https://boosty.to/ios_dev | 🤖 @iOSIQBot | https://iosiq.ru 🍏Канал об iOS-разработке, алгоритмах и архитектурах ⭐️ Подготовка к собесам ⭐️ Код. Много кода. #ios #mobile #swift

إظهار المزيد
8 000
المشتركون
-124 ساعات
+467 أيام
+7930 أيام
أرشيف المشاركات
iOS Dev
8 002
Что для вас определяющий фактор при выборе работы?
Anonymous voting

iOS Dev
8 002
Новый инструмент для создания анимаций: Lottielab Можно импортировать или создать свои нуля. Экспорт доступен в формате Lotti
Новый инструмент для создания анимаций: Lottielab Можно импортировать или создать свои нуля. Экспорт доступен в формате Lottie, Gif или MP4 на любую платформу. 🤩 Их проект на ProductHunt (к слову, занявший первое место по итогам дня). 🔗 Ссылка на сам продукт (пока он в бете — бесплатно, дальше пока неизвестно). 😃 iOS Dev

iOS Dev
8 002
Переходы в Swift с эффектом искажения и использованием Metal Shaders Итоговый шейдер является результатом экспериментов, так как цель состояла в том, чтобы использовать положительное значение для перехода вставки и отрицательное — для удаления. 📖 В этом материале Павел Зак разбирается с .distortionEffect и приводит пример его использования. 😃 iOS Dev

iOS Dev
8 002
SwiftSyntax: Разбор и генерация исходного кода Swift SwiftSyntax представляет собой набор библиотек, позволяющих анализироват
SwiftSyntax: Разбор и генерация исходного кода Swift SwiftSyntax представляет собой набор библиотек, позволяющих анализировать, проверять, генерировать и корректировать исходный код Swift. Изначально он был разработан компанией Apple, а сейчас это поддерживаемый опенсорс со множеством авторов. SwiftSyntax создает абстрактное синтаксическое дерево (AST) исходного кода, которое позволяет взаимодействовать с высокоуровневым, безопасным и эффективным API. Чтобы лучше познакомиться с его структурой, посмотрите на этот сайт, разработанный @kishikawakatsumi. Кстати, на базе набора этих либ построены Swift parser, swift-format, и Swift macros. 📖 Пример работы с SwiftSyntax хорошо описан здесь. ⭐️ Сам репозиторий с 2 400 звёзд вот тут. 😃 iOS Dev

iOS Dev
8 002
Лучшие практики для обратной связи при работе в команде За свою карьеру я поработал в нескольких компаниях с разными стилями менеджмента и разными подходами. Конечно, все мы стремимся к лучшему для себя, но есть базовые принципы, которые могут помочь повысить вашу личную производительность и тем самым повлиять на рост всей команды. Следствием этого будет и успех проекта. Мне близки мысли Фила Йейтса (инженера с 17-летним опытом). Обратная связь — это не просто указание на то, что неправильно или правильно, а начало диалога, способствующего пониманию, обучению и росту. К сожалению, многие об этом забывают. Поэтому вот несколько советов от Фила, которые можно взять на вооружение: 👍 Будьте конкретны. Вместо того чтобы сказать: «Вы хорошо поработали», скажите: «То, как вы отладили эту сложную проблему в коде, впечатляет». 👍 Будьте своевременны. Детали будут свежи в памяти и позволят немедленно извлечь уроки, но нужно учесть готовность собеседника к разговору. 👍 Сосредоточьтесь на действии, а не на человеке. Это поможет сфокусироваться на самой проблеме. 👍 Чаще используйте «Я» Это выразит вашу точку зрения, а не обвинения или предположения в адрес собеседника. 👍 Устройте двусторонний разговор. Это способствует пониманию и заинтересованности. 👍 Будьте конструктивны. Важно не зацикливаться на ошибках, а стремиться к улучшению в следующий раз. 👍 Баланс между позитивным и конструктивным. 👍 Учитывайте точку зрения собеседника. У каждого может своё понимание проблемы. 👍 Будьте искренними и уважительными. Обратная связь должна быть честной и уважительной. Избегайте лести или критики. Важно учитывать, что обратная связь не заканчивается после разговора. Можно обсудить план по улучшению ситуации, предоставление ресурсов или поддержки, проанализировать прогресс или признать улучшения. 😃 iOS Dev

iOS Dev
8 002
Важные советы для разработчиков всех уровней от Бьёрна Страуструпа (создателя C++) Для успешной карьеры необходимо развиваться всесторонне и не стоит зацикливаться на одном навыке (или фреймворке). Кроме этого: 🔘 Мы не знаем будущего, а наша карьера — долгосрочная вещь. Важно быть гибкими и жить не только одной работой. 🔘 Если вы напишете лучший код, мир не изменится только благодаря этому. Важно слушать остальных (в том числе и потенциальных пользователей), уметь общаться, а также доносить свои идеи. 🔘 Не нужно жалеть о потраченном времени на другие направления. Например, история может дать понимание о некоторых ограничениях, а математика обострит ваш ум, поэтому во всём нужно искать баланс. 🔘 Широкий набор навыков, приобретённых во время обучения, можно будет применить позже, когда придёт время. И для этого совсем необязательно знать две дюжины языков, как сам Бьёрн. 😃 iOS Dev

iOS Dev
8 002
Стерпятся — слюбятся: как заставить Swift и Objective-C работать в одном SDK 📖 В новой статье на Хабре описывается методика
Стерпятся — слюбятся: как заставить Swift и Objective-C работать в одном SDK 📖 В новой статье на Хабре описывается методика совместного использования Objective-C и Swift в SDK. Авторы рассматривают различные подходы, объясняют, почему стандартный способ оказался непригодным, и рассказывают, что они смогли получить в результате. 👨‍💻 Эта информация будет полезна разработчикам SDK, работающим с обоими языками, а также тем, кто планирует перейти с Objective-C на Swift. 😃 iOS Dev

iOS Dev
8 002
Swift 6: подготовка ваших проектов Xcode к будущему 📁 Команда разработчиков Swift поделилась своими приоритетными направлени
Swift 6: подготовка ваших проектов Xcode к будущему 📁 Команда разработчиков Swift поделилась своими приоритетными направлениями на 2023 год и ранее выпустила подробный отчет о пути к Swift 6. Оба документа описывают видение будущего Swift и помогают подготовиться к миграции проекта. 📖 В этом материале описаны шаги, которые можно предпринять для адаптации ваших проектов к предстоящим изменениям. 😃 iOS Dev

iOS Dev
8 002
Подводные камни тестирования кода в Swift Concurrency Swift Concurrency — мощнейший инструмент, который в том числе позволяет
Подводные камни тестирования кода в Swift Concurrency Swift Concurrency — мощнейший инструмент, который в том числе позволяет выполнять задачи с разным приоритетом. 🔘 Несмотря на это, периодически могут возникать сложности и непростые для тестирования кейсы. 📖 В исследовании Александр Пиманов и Камиль Ишмуратов разбираются в причинах, рассказывают о порядке выполнения задач и знакомят с протоколом Executor. 📖 Рекомендую к ознакомлению и этот пост: Swift Concurrency — вещи, о которых вам не говорят. 😃 iOS Dev

iOS Dev
8 002
Как проверить, нужно ли вам указывать причину для использования UserDefaults (и не только) Осень уже скоро, а вместе с ней и новые требования к API, используемых в проектах. Для privacy manifest (больше на wwdc notes) потребуется вносить инфу, с какой целью используется некоторые категории фреймворков. 📖 Для поиска таких API Марко Эйдингер написал скрипт, но рекомендует для начала вынести результаты в текстовый файл. 😃 iOS Dev

iOS Dev
8 002
Поиск неиспользуемого кода с помощью Periphery Принцип работы этого инструмента в следующем. Сначала собирается проект, затем
Поиск неиспользуемого кода с помощью Periphery Принцип работы этого инструмента в следующем. Сначала собирается проект, затем для каждого файла с исходным кодом Periphery строит свое внутреннее графовое представление проекта. И уже после завершения индексации анализируется граф для выявления неиспользуемого кода. В долгосрочной перспективе использование Peiphery позволит тратить меньше времени на компиляцию (что логично, меньше кода) и избавит от лишнего шума в кодовой базе. 📖 Пример использования Periphery. 🛠 Ссылка на сам инструмент на Github. 😃 iOS Dev

iOS Dev
8 002
🚀 TradingView ищет iOS Tech Lead. Современный стек и подходы UIKit, SwiftUI, Combine, async-await, iOS 15+ Комфортное место работы Удаленка или офис в Тбилиси, Санкт-Петербурге и Ростове-на-Дону, а также помощь с релокейтом Крутой международный продукт Top-1 по доходу в категории финансовых приложений. Мобильная аудитория – 10 млн. MAU. Наши решения используют Чикагская и Бразильская биржи, S&P Global, Forbes, Revolut, Interactive Brokers, Тинькофф, БКС, Открытие, Twitter. Как откликнуться? 🏃‍♂️ Пиши @janemanolis, если обладаешь сильными навыками проектирования и глубоким пониманием iOS платформы. 👉Подробнее в вакансии

iOS Dev
8 002
Улучшение времени сборки приложений и SPM-пакетов Прежде, чем приступать к подобным оптимизациям, важно определить цели. Напр
Улучшение времени сборки приложений и SPM-пакетов Прежде, чем приступать к подобным оптимизациям, важно определить цели. Например, что мы хотим улучшить, только ли «чистые билды» или же инкрементальные сборки. Timing Summary и Recent Build TimeLine — важнейшие инструменты в Xcode для измерения времени компиляции. Кроме этого, можно использовать флаги для вывода предупреждений в тех местах, компиляция которых занимает больше, чем хотелось бы: -Xfrontend -warn-long-function-bodies=<milliseconds> -Xfrontend -warn-long-expression-type-checking=<milliseconds> 📖 В этом исследовании можно посмотреть, что возможно ускорить и какие именно настройки в Xcode могут нам в этом помочь. 😃 iOS Dev

iOS Dev
8 002
Загляните в канал Романа, который прошел путь от iOS разработчика до топ-менеджера международной компании. Автор пишет о создании пет-проектов, управлении командой, iOS разработке, переходе из инженера в менеджеры. Интересные статьи: Хайп на алгоритмах Поиск ниши для приложения Как развить критический взгляд IT это легко или сложно? 👉Подробнее в канале iOS Enjoyer

iOS Dev
8 002
Исследование MeasurementFormatter и пример его применения Иногда из-за разниц подходов к измерениям в метрической и, например
Исследование MeasurementFormatter и пример его применения Иногда из-за разниц подходов к измерениям в метрической и, например, американской системах код может выглядеть не очень приятно. Тогда на помощь может прийти MeasurementFormatter. 📖 Вот тут есть хорошее объяснение, когда его лучше использовать, и приводится пример для разных локалей. 😃 iOS Dev

iOS Dev
8 002
Одно из моих любимых приложений, которое я поддерживаю продолжительное время (уже более трёх лет) — трекер сбережений/долгов/
Одно из моих любимых приложений, которое я поддерживаю продолжительное время (уже более трёх лет) — трекер сбережений/долгов/целей. Раз за разом я стараюсь прокачивать его, используя фишки Apple. Иногда это виджеты, иногда — приложение для часов. Помню, как запилил туда кросс-интеграцию европейских банков для сверки курсов (и авто-конвертации валют в выбранную). Так вот, сегодня один из тех дней, когда я выкатил большое масштабное обновление на ProductHunt. 👍 И рассчитываю на вашу поддержку там (комментарий или просто upvote было бы очень круто). ➡️ Помочь своим голосом можно здесь. 😃 iOS Dev

iOS Dev
8 002
Настройка iOS-приложения для поддержки push-уведомлений Добавление возможности работы с пушами в iOS достаточно сложный проце
Настройка iOS-приложения для поддержки push-уведомлений Добавление возможности работы с пушами в iOS достаточно сложный процесс, включающий в себя несколько этапов. ⏩ С опытом, конечно, всё станет проще, но если вы делаете это в первый раз, то будет полезно посмотреть несложную инструкцию. 📖 В этой статье описаны необходимые настройки и пример использования новой Push Notification Console. 😃 iOS Dev

iOS Dev
8 002
Ошибки, которых следует избегать при внедрении TipKit в приложение ➡️ Новый фреймворк — отличный помощник для выделения интер
Ошибки, которых следует избегать при внедрении TipKit в приложение Новый фреймворк — отличный помощник для выделения интересных или пока неиспользуемых пользователями фич. Его просто добавить, управлять и в целом использовать в своих проектах. Несмотря на это, во всём нужно знать меру. 📖 В этом материале разбираются ошибки, которые можно допустить при работе с TipKit. @iOS Dev

iOS Dev
8 002
Так когда всё-таки действительно нужно использовать [weak self]? Чтобы ответить на этот вопрос, в любом случае необходимы при
Так когда всё-таки действительно нужно использовать [weak self]? Чтобы ответить на этот вопрос, в любом случае необходимы примеры, но, как обычно в нашей разработке, it depends. Например, последние версии Swift заставили посмотреть на использование под иным углом. 📖 В своём материале Винсент приводит несколько примеров, и объясняет, когда [weak self] необходим, и когда это излишне, как, например, в случае с .map(). 📖 Кстати, вот тут можно узнать, какие из сценариев могут привести к утечкам памяти. @iOS Dev

iOS Dev
8 002
5 шагов для поиска медленного кода с Xcode Time Profiler При старте использования Time Profiler он может казаться перегруженн
5 шагов для поиска медленного кода с Xcode Time Profiler При старте использования Time Profiler он может казаться перегруженным из-за огромного количества данных. 😎 Один из подходов — использовать пять простых шагов для выявления «узких мест» в коде. 📖 В этом материале на примере описаны этапы, которые можно использовать для поиска проблем в приложении. @iOS Dev