ar
Feedback
iOS Dev

iOS Dev

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

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

إظهار المزيد
8 003
المشتركون
+424 ساعات
+477 أيام
+8230 أيام
أرشيف المشاركات
iOS Dev
8 003
Realm vs SwiftData: что быстрее? Jacob Bartlett из компании Emerge Tools провел большое исследование и сравнил производительн
Realm vs SwiftData: что быстрее? Jacob Bartlett из компании Emerge Tools провел большое исследование и сравнил производительность по трём ключевым метрикам: 1️⃣ Скорость. 2️⃣ Размер. 3️⃣ Память. И хотя с точки зрения записи и выполнения простых запросов на чтение Realm впереди, но в некоторых моментах благодаря превосходному управлению графами объектов при работе с более сложными данными SwiftData оказалась производительнее. При небольших объемах (≤10 000 элементов, что охватывает подавляющее большинство сценариев в мобильных приложениях) SwiftData также была намного быстрее при обновлении существующих данных. 📖 Много графиков, выводов и интересных особенностей можно узнать в этой статье. 📖 А на хабре вы возможно видели, что Realm не так хорош в этой статье от Dodo Engineering. C моей точки зрения, всё, конечно зависит от задач. И для небольших проектов в целом можно использовать что угодно, а вот при разработке внутри компании все равно придётся все тщательно взвесить и, возможно, попробовать несколько подходов, или собрать себе собственный SQLite (привет, ВК). 😃 iOS Dev

iOS Dev
8 003
Как iOS 18 улучшает работу с градиентами Очень часто в проектах разработчики используют дополнительный градиент, чтобы создат
Как iOS 18 улучшает работу с градиентами Очень часто в проектах разработчики используют дополнительный градиент, чтобы создать контраст между фоном и текстом. *Или используют заранее заготовленный ассет в каталоге ресурсов. Однако при таком использовании линейного градиента будут видны перепады яркости и резкий переход. 📖 В iOS 18 доступно новое API для смешивания цветов. Поэтому, используя UnitCurve, можно интерполировать цвета с помощью встроенных или кастомных кривых Безье, чтобы обеспечить плавность перехода. Пример использования под катом (разверните, чтобы посмотреть):
extension Gradient { init(from: Color, to:Color, with curve:UnitCurve, steps:Int = 10) { let colors = stride(from: 0.0, through: 1.0, by: 1.0 / Double(steps)) .map { f in from.mix(with: to, by: curve.value(at: f)) } self.init(colors: colors) } }
📖 Почитать дополнительно про смешивание цветов можно в этой статье. 😃 iOS Devбольше разборов тут

iOS Dev
8 003
NotPrivateAPIs — проект, который раскрывает некоторые приватные API ❗️Конечно, их нельзя использовать в рабочих проектах и вы
NotPrivateAPIs — проект, который раскрывает некоторые приватные API ❗️Конечно, их нельзя использовать в рабочих проектах и выкладывать в App Store. Например, меню со своими элементами это вообще та ещё задача (посмотрите реакции в Messages над сообщением, или реализацию в телеграме). 📖 Morris Richman собрал в одном месте вещи, которые юзает Apple: например, как добавить кастомный хэдер в UIAlertController или как поменять иконку приложения без предупреждения пользователя. 😃 iOS Dev

iOS Dev
8 003
UIKit: подборка теоретических материалов и вопросы Конечно, SwiftUI набирает обороты и после добавления последних фич (в том
UIKit: подборка теоретических материалов и вопросы Конечно, SwiftUI набирает обороты и после добавления последних фич (в том числе и по навигации) с ним станет приятнее работать. Но несмотря на это, подавляющее большинство проектов используют UIKIt, а вопросы на собеседованиях до сих пор строятся вокруг него. У меня собралось большое количество материалов и вопросов за время разработки и проведенных интервью, поэтому я решил добавить новую секцию и в iOS IQ. В ней вы увидите не только классические вопросы по типу отличий frame от bounds или особенности Responder Chain, но и ряд нестандартных вещей, которые так или иначе используются в нашей работе. Постарался подкрепить и примерами с кодом, и привел примеры реализации. ✅Подписаться можно здесь и вот тут.
🧠 Что вы получите, подписавшись сегодня: ➡️Вопросы на чтение кода ➡️Многопоточность ➡️DispatchQueue: практические вопросы ➡️Swift Concurrency ➡️Алгоритмы: терминология и примеры ➡️Память: ARC, side table, флаги, утечки ✅А также доступ в закрытый чат, ранние релизы приложения iOS IQ, тонну теории и многое другое.
Секретная ссылка со скидкой здесь: ссылка. 😃 iOS Dev

iOS Dev
8 003
Создание анимации в стиле Siri в iOS 18 Siddhant Mehta и Meng To использовали комбинацию из Mesh Gradient (пример вы можете увидеть в моём посте выше) и ripple-эффекта. 🛠 Исходный код проекта доступен на github. 📺 Сессия с примерами анимаций вот тут. 😃 iOS Dev

iOS Dev
8 003
Память: ARC, side table, флаги, утечки и многое другое 🧠 Одна из основных тем в разработке — управление памятью. Наверняка к
Память: ARC, side table, флаги, утечки и многое другое 🧠 Одна из основных тем в разработке — управление памятью. Наверняка каждый сталкивался в своей работе с проблемами, связанными с утечками и искал, как их решить. В своём канале я регулярно делюсь советами и исследованиями на эту тему, более того, в приложении есть целая пачка вопросов на эту тему. 🧠 Уже сегодня в iOS IQ добавлена новая большая секция, которая отвечает на многие из этих вопросов. Поэтому, если вы хотели бы расширить арсенал своих знаний и узнать больше об ARC, side table или тому, что приводит к утечкам памяти, уже сейчас доступно несколько десятков вопросов с разными уровнями сложности: ✅Подпишитесь на сайте или в телеграме (на год - выгоднее). 😃 iOS Dev

iOS Dev
8 003
Подборка лучших сессий с WWDC24 (Swift, Perfomance, Debugging) Неделя WWDC подошла к концу, поэтому решил вынести сессии, которые можно будет посмотреть в приоритетном порядке. 📼 Анализ heap memory
Рассказывают не только об основе динамической памяти (куче), но и о том, как использовать Instruments и Xcode для анализа и устранения распространенных проблем. А ещё методы и лучшие практики для диагностики утечек в приложении. ✅Рекомендую также почитать большой блок на бусти, посвященный этим проблемам.
📼 Использование некопируемых типов в Swift
Большая сессия, которая позволит узнать, что вообще подрузамевает копирование в Swift, когда можно использовать некопируемый тип и как value ownership позволяет четко обозначить свои намерения.
📼 Swift Perfomance
Сессия поясняет то, как именно Swift обеспечивает баланс производительности. Приводят примеры разных функций Swift и способы их реализации, чтобы лучше понять возможные потенциальные проблемы, влияющие на перфоманс. Можно глубже погрузиться в основы выделения памяти, memory layout в целом, дженерики, замыкания, в общем - топ и в закладки.
📼 Подборка анимаций c WWDC c примерами кода
Новые анимации скролла, эффекты, все с примерами.
📼 Показатели производительности в AVFoundation
Все, кто работал с видео, компрессией или даже просто использовал AVPlayer, знают, как мало документации и примеров по этому разделу. В этой сессии рассказывают, какие метрики стоит учитывать, и как они влияют на перфоманс.
📼 Run, Break, Inspect: Исследуйте эффективную отладку в LLDB
Показывают, как максимально эффективно использовать крашлоги и бэктрейсы, а также как прокачать брейкпоинты с помощью действий и сложных условий. А ещё особое внимание уделено команде «p» и новым возможностям Swift, которые улучшат опыт отладки.
📼 Swift Testing
Можно узнать, как написать набор тестов, используя встроенные функции. Как расширять существующие тесты, чтобы охватить больше сценариев, организовать тесты в различных окружениях и оптимизировать тесты для параллельного выполнения.
📼 База в Xcode
Рассказывают о популярных фишках Xcode, которые помогут ускорить разработку.
📼 Миграция на Swift 6
Можно узнать, как перевести существующее приложение на Swift 6 на реальном примере. Рассказывают об опции переноса модуль за модулем, и как компилятор помогает выявить код, подверженный риску гонок данных. Рассказывают про изоляцию и то, как решить проблему одновременного доступа к общему изменяемому состоянию. ✅Большая статья и разбор изоляции есть на бусти.
📼 Что нового в UIKit
Узнайте обо всем новом в UIKit, в том числе об удобстве запуска вкладок и документов, переходах, изменениях текста и ввода. Также рассказывают про совместимость анимаций и жестов UIKit и SwiftUI, а также общие улучшения во всем UIKit.
Конечно, лучше смотреть их в своём темпе, у меня даже с некоторых прошлых WWDC что-то осталось на исследование. А если вам понравилось WWDC (трансляция, анонсы и разборы), то вы можете: ❤️‍🔥Поставить лайк • 🚀Дать буст • ✅Подписаться (по специальному предложению). 😃 iOS Dev это была по-настоящему насыщенная неделя (передаю большое спасибо и тем, кто уже установил приложение и написал отзыв)

iOS Dev
8 003
🥳 Нужен будет только один набор скриншотов при загрузке приложения в App Store (как для iPhone, так и для iPad). 📖 Отличная
🥳 Нужен будет только один набор скриншотов при загрузке приложения в App Store (как для iPhone, так и для iPad). 📖 Отличная новость для дизайнеров, инди-разработчиков, да и для компаний тоже. А ещё доступ к запросу фичеринга будет более явным (конечно же, без гарантий успеха). 🛩 Новый App Store Connect обещают выкатить осенью. 😃 iOS Dev

iOS Dev
8 003
Подборка анимаций c WWDC c примерами кода Прекрасная сессия, в которой Robb и Philip поделились примерами кода и новыми подходами к реализации. 📺 Новая анимация при скролле. 📺 Работа с цветом. 📺 View и эффекты. 📺 Работа с текстом и новые анимации (уже добавил себе в закладких). 📺 Metal shaders (а куда же без них). После завершения WWDC уверен, что ещё вернёмся и рассмотрим многое детально. 😃 iOS Dev

iOS Dev
8 003
Новый метод count(where:) в Swift 6 ➡️В SE-0220 появился новый метод count(where:), который выполняет filter() и count за оди
Новый метод count(where:) в Swift 6 ➡️В SE-0220 появился новый метод count(where:), который выполняет filter() и count за один проход. Это позволяет избежать создания нового массива и обеспечивает четкое и прозрачное решение подсчёта. 🤩 Этот метод доступен для всех типов, соответствующих Sequence, поэтому его можно использовать и для сетов, и для словарей. 😃 iOS Dev

iOS Dev
8 003
⚡️Руководитель команд разработки и один из разработчиков мобильного приложения Яндекс Карт рассказали, как они росли вместе с
+7
⚡️Руководитель команд разработки и один из разработчиков мобильного приложения Яндекс Карт рассказали, как они росли вместе с проектом. Подробнее в карточках. Хотите так же? Это возможно 💯 Команда мобильной разработки Карт и Навигатора расширяется, и мы ищем: ➡️iOS-разработчика #Москва #Белград #iOS Что вы будете делать: участвовать в разработке мобильного приложения для iOS, глубоко прорабатывать задачи команды, совершенствовать процессы и инфраструктуру разработки. ➡️Android-разработчика #Москва #Android Что вы будете делать: участвовать в разработке мобильного приложения для Android, помогать расширять возможности существующих сценариев и создавать новые. Приходите, будем расти вместе💪 Реклама. ООО "Яндекс", ИНН 7736207543.

iOS Dev
8 003
Xcode 16 упростит поиск проблем, приводящим к зависаниям приложений 🛠 Теперь с помощью нового инструмента flame graph можно
Xcode 16 упростит поиск проблем, приводящим к зависаниям приложений 🛠 Теперь с помощью нового инструмента flame graph можно будет определить, выполнение какого именно кода занимает большую часть времени при тяжелых подвисаниях в приложении (особенно полезно на старте). 🤩 Интервалы уже взвешены по параметру процента времени, которые они занимают. Бонус: в Organizer добавили новую категорию Launches, в которой можно будет увидеть, что именно является причиной долгого запуска приложения у пользователей (статистика за всё время). 😃 iOS Dev

iOS Dev
8 003
История создания приложения iOS IQ (эффекты, код и примеры) ❤️ Спасибо всем, кто установил приложение и оставил отзыв, это очень ценно. По запрошенным комментариям в чате решился опубликовать большую статью про разработку приложения. Рассмотрел основные моменты по анимации, реализации шейдеров, статистике и тому, как быстро сделать авторизацию. 📖 Превью уже сейчас доступно всем. А если вам интересно, как именно можно реализовать эффект гиперпространства или анимацию подсветки: ✅Доступ со скидкой на время WWDC можно получить здесь (или тут ещё выгоднее). 😃 iOS Dev - кстати, версия с обновлёнными рангами уже доступна Пользователей, который набрал в харкдоре больше 20 - это очень мощно! Но в следующих обновлениях будет ещё сложнее.

iOS Dev
8 003
Анимации SwiftUI доступны в UIKit с iOS 18 Сейчас SwiftUI, UIKit и AppKit используют различные базовые реализации для анимаци
Анимации SwiftUI доступны в UIKit с iOS 18 Сейчас SwiftUI, UIKit и AppKit используют различные базовые реализации для анимации. 📖 Apple рекомендует использовать новую возможность с iOS 18 во всех фреймворках, чтобы создать более ожидаемый опыт для пользователей (и избежать потенциальных сложностей для разработчиков с синхронизацией таймингов и другими проблемами). 👨‍💻На скриншоте пример создания использования такой анимации. 😃 iOS Dev

iOS Dev
8 003
MeshGradient в iOS 18 Теперь доступен градиент, который можно задавать с помощью 2D-сетки расставленных цветов. 🚀Попробовал сделать несложную анимацию, чувствуется потенциал (код доступен прямо на гифке). 📺 Можно посмотреть ещё и на такой вариант анимации. 😃 iOS Dev

iOS Dev
8 003
Swift Assist — топовая фича нового Xcode 👨‍💻 Во вчерашнем Platform State of the Union показали пример, как это должно быть в действии. Как минимум, должно быть супер-полезно при прототипировании приложений. 😃 iOS Dev

iOS Dev
8 003
🎉Сразу две важных новости про канал 1. Вышло в релиз приложение iOS IQ - можно потренироваться и проверить себя в самых разн
🎉Сразу две важных новости про канал 1. Вышло в релиз приложение iOS IQ - можно потренироваться и проверить себя в самых разных темах. Есть индивидуальная статистика, прогресс, ранги (и даже немного metal для анимаций), а также таблицы лидеров. 🥳Приложение бесплатно (никаких внутренних покупок) и останется таким дальше. 2. Теперь комментарии будут открыты для всех (правила модерации обычные). В закрытом чате останутся внутренние обсуждения, например, вчера я делился новостями с Platform State of the Union в реальном времени, основные моменты будут и здесь немного позже. 🧠 Поддержать приложение можно сейчас — скачайте, оставьте отзыв, поделитесь в лс обратной связью, если захотите. Те читатели, которые подписаны на бусти, будут получать обновления раньше других и могут влиять на контент внутри. ➡️Интересно, получится ли набрать больше 20 установок за первый день. ❤️Надеюсь на вашу помощь! 😃 iOS Dev

iOS Dev
8 003
Xcode 16 и Swift Assist — все нововведения ➡️Новая модель специально обучена для Swift и Apple SDK. ➡️Работает локально, конф
Xcode 16 и Swift Assist — все нововведения ➡️Новая модель специально обучена для Swift и Apple SDK. ➡️Работает локально, конфиденциальность соблюдается. ➡️Новое API для написания тестов, появились теги, параметризация позволит их запускать для диапазона значений. 🕺 Новый фреймворк Swift Testing. 🥳 Swift Assist будет помогать с ответами на вопросы по коду с помощью естественного языка. Работает в облаке с учетом требований безопасности. Предиктивное завершение кода (автокомплит на максималках). Добавили инсайты о производительности с помощью улучшенной диагностики, новый вид графиков в Instruments. И многое другое! Как оказалось, это ещё далеко не всё🚀 😃 iOS Dev

iOS Dev
8 003
На сегодня это всё! Дальше ждёт около сотни технических сессий. Самые важные будут как всегда в нашем канале. Если вам понравилась трансляция, фичи и то, что выкатили эппл сегодня, то вы всегда можете: 🚀Дать буст каналу 😃 iOS Dev — самые важные новости для вас👍 Кто замьютил канал, уже можно вернуть колокольчик)

iOS Dev
8 003
Всё, что включено в Apple Intelligence Да тут на несколько лет спринтов вперёд хватит. 😃 iOS Dev
Всё, что включено в Apple Intelligence Да тут на несколько лет спринтов вперёд хватит. 😃 iOS Dev