uz
Feedback
iOS Dev

iOS Dev

Kanalga Telegram’da o‘tish

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

Ko'proq ko'rsatish
7 880
Obunachilar
-224 soatlar
-17 kunlar
-5230 kunlar
Postlar arxiv
iOS Dev
7 880
Почему проекты на Swift сталкиваются с трудностями (и как их преодолеть) 📖 У Tuist вышел разбор, в котором объясняется не только то, почему в крупных Swift-приложениях начинаются типичные проблемы, среди которых и медленные билды, и нестабильные тесты, но, например и то, как справиться со всем этим не прибегая к кардинальным изменениям вроде перехода на React Native или помощи Bazel. Про React Native это отсылочка к недавнему разбору о том, как Shopify взял и перевёл все мобильные приложения на React Native. Хотя у всего есть своя цена. Видимо, в tuist читали мой вчерашний пост и согласны, что бизнесу пофиг, почему у вас проект собирается так долго и это вам мешает - ведь конечная цель повысить профит от продукта, что справедливо. Но вообще в статье есть важные поинты, на которые стоит обратить внимание и посмотреть, можно ли это изменить у вас на проекте: - Безусловно, одним из факторов для возможного преодоления сложностей они считают модуляризацию. - Время сборок. Тут не обошлось и без их паблик-дашборда. - Работа с тестами и разбор флагов. - Анализ сборок и выводы. Нельзя не вспомнить и про xcbeautify. - Derived Data. Рассматривают и те проблемы, что есть сейчас, и заглядывают в будущее. На самом деле, Apple уже работает над подходом, называемым хранилищем с адресацией по содержимому и явными модулями, к которому они постепенно подталкивают пользователей. 😃 iOS Dev

iOS Dev
7 880
Кажется, пора внести ясность Бизнесу не важно, что у вас под капотом: насколько ваш код красив и удобен в саппорте в будущем, как именно вы хэндлите все сценарии ошибок в непростых сценариях или насколько тяжелые задачи решаете, когда деливерите фичи. Все мы хотим проводить рефакторинг! А какой разработчик не хочет? Ведь тут как с автомобилем - вроде и едет, и тормоза в порядке, ну и что, если там где-то тарахтит или стучит, стоит ли всегда чекать шрус? Напомню, что есть полезное правило трёх. Важно помнить, что попытка слишком раннего рефакторинга при выборе неправильной абстракции может привести к ухудшению кода по мере появления новых требований и, в конечном итоге, потребует повторного рефакторинга. Поэтому часто можно услышать от продактов или архитекторов (кому повезло и у них они есть на проекте) - что давайте сделаем фичу, а зарефакторим потом, в следующих спринтах когда-нибудь. В такой момент важно не пропустить вспышку, когда дальнейшее наслаивание логики может поломать слишком многое внутри. И в такой момент жизненно важно для проекта остановиться. Для этого должен быть лид, способный взять ответственность за изменения в ядре проекта (или крупной фичи). И будет здорово, если ваши стейкхолдеры или продакты смогут оценить такую ветку изменений по достоинству. Так бывает не всегда. Зато вы после проведённого рефакторинга сможете спать спокойно. А вот стоит ли оно таких усилий - решать вам и вашей команде. Ведь многие проекты существуют и прекрасно себя чувствуют на стадии и так сойдёт. Пишу про моменты, которые вам не расскажут ни на одной конференции здесь. 😃 iOS Dev

iOS Dev
7 880
🎉 Выпущено в релиз обновление iOS IQ - с новым режимом и поддержкой iOS 26 Я специально дождался от эпла, пока они зарелизят
🎉 Выпущено в релиз обновление iOS IQ - с новым режимом и поддержкой iOS 26 Я специально дождался от эпла, пока они зарелизят новую ось, чтобы чекнуть стекло в продакшне. Несколько главных разделов уже обновлено, какие-то мелочи ещё в процессе. Что из мажорных изменений? - Полноценный новый боевой режим «Исправь и собери код». Попробовал проверить, насколько вообще реально решать головоломки с кодом, пришёл к выводу, что собрать рабочий варик из хаоса даже 15 строк может быть утомительно - поэтому примерно этим размером и ограничил (рекомендую затестить дзен-рандом и не используйте подсказки, это не наш путь). - Новый блок вопросов по многопоточке. - Обновил несколько существующих веток с темами, добавил практически в каждую по несколько новых задач. Был удивлён, что в даже в RC-версии Xcode завезли проблему с компилированием кода, если в проекте Metal (а у нас он есть), потратил наверное час, чтобы корректно зааттачить нужный тулчейн - если у кого-то есть такая же проблема, вот ветка. 🏠 Скачайте приложение в AppStore - и поставьте оценку, пожалуйста. * кстати, бот также обновлен, удалил пару дублей в опциях и добавил несколько новых вопросов. Пишите в личные сообщения канала (кнопка в телеге слева снизу), если вы хотели бы увидеть новые режимы или что-то ещё, я всегда всем отвечаю. 😃 iOS Dev

iOS Dev
7 880
Как использовать [weak self] в Swift Concurrency Task? Donny Wals рассматривает кейсы, которые помогут предотвратить утечки п
Как использовать [weak self] в Swift Concurrency Task? Donny Wals рассматривает кейсы, которые помогут предотвратить утечки памяти и пытается ответить на несколько вопросов. ➡️ Основы использования [weak self] в completion handlers. ➡️ Использование [weak self] и немедленное развертывание внутри таски. ➡️ Есть ли проблема при использовании guard let self при старте задачи. ➡️ Предотвращение strong self внутри задачи. ➡️ Как использовать [weak self] в более длительных задачах. 📖 Статью целиком можно прочитать здесь. А вот тут есть большой разбор проблем с утечками памяти (классических примеров и способов поиска). 😃 iOS Dev

iOS Dev
7 880
Вышла SQLiteData 1.0 от создателей PointFree: альтернатива SwiftData с CloudKit-синком и шерингом 🛠 Среди заявленных фич на
Вышла SQLiteData 1.0 от создателей PointFree: альтернатива SwiftData с CloudKit-синком и шерингом 🛠 Среди заявленных фич на GitHub: - Создание моделей с помощью структур и перечислений Swift. - Типобезопасные и схемобезопасные запросы для фетча данных. - Высокопроизводительный декодер SQLite. - Можно юзать property wrappers, аналогичные @Query в SwiftData (работает не только в SwiftUI, но и в целом в @Observable-моделях и UIKit-контроллерах). - Прямой синк с CloudKit. - Поддержка iCloud-шеринга для обмена инфой между юзерами. - Основано на SQLite. 📖 Большой обзор с примерами - тут, а полная документация - здесь. 😃 iOS Dev

iOS Dev
7 880
Сфера Фибоначчи на Metal + SwiftUI Наложение решётки Фибоначчи (она же золотая спираль или просто сфера Фибоначчи) на поверхность сферы может оказаться неплохим математическим челленджем, а ещё весьма быстрым и эффективным способом распределения точек. Например, про филлотаксис и одну из загадок Да Винчи я писал уже в канале - обязательно загляните. А сегодня делюсь анимацией, которую можно сделать с помощью доступных фич Metal уже сейчас (конечно, с поправкой на производительность). 📖 Кстати, на хабре можно посмотреть, как повысить эффективность распределения точек. А в 💰 бусти и ⭐️ в телеграме вас уже ждёт код реализации (этого и многих других необычных эффектов). 😃 iOS Dev

iOS Dev
7 880
Как отключить Liquid Glass для iOS-приложения при использовании новых SDK в iOS 26 Всё просто: добавьте в plist проекта UIDesignRequiresCompatibility в YES. Но это решение вероятно сработает ровно до 27 iOS, так как Apple уже обещает его задепрекейтить. 😃 iOS Dev

iOS Dev
7 880
🚀 Swift 6.2 уже доступен 📖 Самые важные изменения здесь и в карточках. Можно ещё раз взглянуть на InlineArray и Span, позна
+8
🚀 Swift 6.2 уже доступен 📖 Самые важные изменения здесь и в карточках. Можно ещё раз взглянуть на InlineArray и Span, познакомиться с Subprocess, узнать, что поменялось в NotificationCenter и многое другое. 😃 iOS Dev

iOS Dev
7 880
Сегодня выходит iOS 26 - что можно обновить в рабочих проектах? Хотя для большинства приложений принято поддерживать 2 последние мажорные версии, по результатам опроса на многих проектах таргет указан аж на 15 ось (и иногда даже ниже). На нашем рабочем до сих пор минималка 15, но пора бы тоже повысить. Несмотря на это, многие новые проекты уже сейчас будут использовать доступные фичи, поэтому этот пост можно сохранить для этого, либо вернуться позже. Xcode ➡️ Все изменения Xcode 26 RC ➡️ Автогенерация Playground ➡️ Сессия на WWDC об изменениях в Xcode 26 ➡️ Разбор двух фич в новом Xcode: установка global actor isolation в MainActor.self, включение Approachable concurrency. Swift ➡️ Обзорный пост по WWDC25 (Swift, Память, Инструменты) ➡️ Изучение изменений concurrency в Swift 6.2 ➡️ Использование памяти в Swift 6.2 и возможности для повышения производительности ➡️ Что нового в Swift 6.2 (помимо обновлений, связанных с параллелизмом) ➡️ Что изменилось в работе со строками в Swift 6.2 ➡️ Default Actor Isolation in Swift 6.2 Стоит обратить внимание ➡️ Карта изучения Swift Concurrency ➡️ Как мигрировать UIKit-интерфейс на scene-based в iOS ➡️ Огромный обзорный пост по всем изменениям UIKit в iOS 26 ➡️ Global actor в Swift Concurrency на реальных примерах ➡️ Все новые фреймворки iOS 26 Когда шутка зашла слишком далеко ➡️ Реализация мема: @escaping @Sendable @MainActor @autoclosure () async -> Void Ах да, пора ли переходить на Swift 6 в 2025 году? 😃 iOS Dev

iOS Dev
7 880
Анатомия работы с записью видео в iOS Работа с AVFoundation не относится к тем вещам, по которым достаточно посмотреть на док
Анатомия работы с записью видео в iOS Работа с AVFoundation не относится к тем вещам, по которым достаточно посмотреть на доки и просто собрать всё воедино. Здесь довольно много разных составляющих, и хотя чаще всего это не низкоуровневая разработка, в любом случае могут возникать сложности. 📖 В этой статье разбирается несколько неочевидных моментов и что не так с примерами кода от Apple. ➡️Также можно чекнуть официальный пример от Apple и скачать исходный код. 😃 iOS Dev

iOS Dev
7 880
Пошаговая визуализация алгоритма LLM, лежащего в основе ChatGPT В канале пару месяцев назад я уже выкладывал шикарный материал от FT (можно посмотреть, что вообще значат токены, как LLM работает с контекстом, и посмотреть на ключевые концепции). Сегодня хочу поделиться ещё одним взглядом, на этот раз более конкретным примером. 📖 Можно посмотреть на большое интерактивное руководство о том, как работает GPT под капотом. В частности, рассматривают модель nano-gpt, имеющую всего 85 000 параметров. На каждом шаге рассматривается, что происходит внутри, когда ставят простую задачу: Отсортировать по алфавиту входящую последовательность CBABBC в алфавитном порядке, чтобы на выходе получить ABBBCC. 😃 iOS Dev

iOS Dev
7 880
Утечки памяти в Swift: что с ними делать, как предотвратить? Возможно, одна из самых неприятных, но в то же время часто встре
Утечки памяти в Swift: что с ними делать, как предотвратить? Возможно, одна из самых неприятных, но в то же время часто встречающихся в практике историй - поиск утечек памяти. Даже у нас на проекте сейчас одна из тасок - поиск вещей, связанных с экранами звонков и лайвкитом, в частности. Кроме классических вариантов с циклическими ссылками (когда у нас есть дочерний контроллер, который хранит ссылку на своего владельца/родителя), может быть куча других проблем: от казалось бы очевидных вещей с таймерами до замыканий и делегатов. В закрытой базе я попробовал структурировать наиболее частые ситуации, которые могут встречаться в нашей работе, добавил классификацию по степени того, насколько вообще они могут встречаться, основываясь на своём опыте и опыте коллег, но не только это. Есть несколько полезных задач на подумать: при работе с сетью, что не так с NotificationCenter и многое другое. Подписаться можно тут: 💰 с приятными условиями на бусти ⭐️ в телеграме. А пока можно вспомнить и про эти истории: 📖 Утечка памяти: детектив в Xcode 📖 Как автоматически обнаруживать утечки памяти с помощью UI-тестов 📖 Управление памятью в Swift 😃 iOS Dev

iOS Dev
7 880
Что покупаем после презентации?
Anonymous voting

iOS Dev
7 880
iOS-разработчики получают самую высокую зарплату в России согласно исследованию хабра. Так ли это на самом деле? Я проверил э
iOS-разработчики получают самую высокую зарплату в России согласно исследованию хабра. Так ли это на самом деле? Я проверил это с помощью масштабного опроса и поделился выводами. Кроме аналитики, есть и сравнение с реальными европейскими зарплатами в нашей и смежных сферах, а также отслеживание динамики изменений. ✅Подпишитесь, чтобы посмотреть результаты на бусти и в телеграме (действует специальное предложение).
🧠 А ещё вы сможете получить: ➡️Карта изучения Swift Concurrency ➡️Вопросы на чтение кода ➡️Многопоточность ➡️DispatchQueue: практические вопросы ➡️Swift Concurrency ➡️Алгоритмы: терминология и примеры ➡️Память: ARC, side table, флаги, утечки ➡️Разбор подходов к анимациям и лучшие паттерны. А также доступ к ранним релизам приложения iOS IQ, тонну теории и многое другое.
😃 iOS Dev

iOS Dev
7 880
Что изменилось в работе со строками в Swift 6.2 Если раньше для опционального значения и использования в коде ниже было преду
Что изменилось в работе со строками в Swift 6.2 Если раньше для опционального значения и использования в коде ниже было предупреждение String interpolation produces a debug description for an optional value; did you mean to make this explicit?:
let age: Int? = nil print("Your age: \(age)")
И компилятор предлагал юзать String(describing:), чтобы избавиться от ворнинга, то теперь все стало проще. 📖 В этом пропозале принят вариант, который позволяет записывать предполагаемое значение по умолчанию в виде строки, независимо от типа.
let age: Int? = nil print("Your age: \(age, default: "missing")") // Prints "Your age: missing"
Это дополнение также повышает и ясность кода вместо того, чтобы допускать nil-утечку в строковый вывод. Расширенный список принятых пропозалов - в этом посте. 😃 iOS Dev

iOS Dev
7 880
🚪 Превращаем макбук в скрипящую дверь с помощью датчика наклона (есть звук) Оказывается, есть специальное (непубличное API), доступное аж с 2019. Впервые появилось в 16-дюймовом макбук про и если ваш ноут более новый, то оно скорее всего также доступно. 📖 В этой репе можно посмотреть на пример тестового проекта. А если вам вдруг понадобятся весы, а под рукой только ваш ноутбук, напомню про этот пост. 😃 iOS Dev

iOS Dev
7 880
Быть инженером Прочитал кайфовую историю, как Вадим интегрировал себе PassKit за несколько часов разработки, чтобы вместо 47 секунд тратить 3 на вход в тренажёрку 💪 Разве не в этом смысл быть разработчиком вообще? Упрощать жизнь, делать привычные действия быстрее или вообще автоматизированными. В своём приложении Starly я также бился с возможностью упрощения и экономии личного времени. У меня сейчас порядка 20 пет-проектов, из которых я поддерживаю около 7. И представьте, что в каждом по 15 локализаций. Сколько времени надо на переводы? Ну по классике: прикрутил SDK для работы с AppStore Connect, лупанул туда движок DeepL (и есть ещё кое-какой хак, как в телеге). Хотя можно подумать сейчас и над чем-то более весёлым в современных реалиях) Так вот, вместо 1.5 часов просто на то, чтобы вбить переводы, я трачу около 2 минут - пишу текст обновления на русском или английском, а алгоритм под капотом делает всё остальное за меня. Или вот надо было зарефакторить большой проект (всё еще надо) - сделал себе подсчёт строк в каждом файле, чтобы понять, с чего вообще начать. А ещё когда-то пилил скрипт на питоне, чтобы спарсить все оценки с кинопоиска и перенести на letterboxd автоматически (киноманы поймут, о чём речь, когда у вас просмотренных тысяча фильмов). Думал даже выложить его в открытый доступ, но решил, что слишком маленькая аудитория. А что для вас быть инженером? Используете ли вы свои навыки вне работы? Может у вас есть пет-проект, о котором вы бы хотели рассказать - поделитесь! 😃 iOS Dev

iOS Dev
7 880
Что нового в Swift 6.2 (помимо обновлений, связанных с параллелизмом) 📺 Неплохой разбор нововведений, которые появятся в iOS 26 и Xcode 26. И хотя основное внимание все уделяют concurrency, есть и много других фич, о которых можно узнать. Среди разобранных пропозалов: ➡️ Default Value in String Interpolations ➡️ Raw identifiers ➡️ Collection conformances for enumerated() ➡️ InlineArray, a fixed-size array ➡️ InlineArray Type Sugar ➡️ Integer Generic Parameters ➡️ Span: Safe Access to Contiguous Storage 😃 iOS Dev

iOS Dev
7 880
SwiftUI WebView: настройка, навигация, кастомные схемы На WWDC 2025 был анонсирован WebView для SwiftUI, но код из видео не р
SwiftUI WebView: настройка, навигация, кастомные схемы На WWDC 2025 был анонсирован WebView для SwiftUI, но код из видео не работал, более того, он даже не компилился. 📖 В этой статье можно посмотреть на основные аспекты работы, пример навигации и работу с JavaScript-функциями. 🛠 Код проекта доступен и на GitHub. 😃 iOS Dev

iOS Dev
7 880
Что там по Swift Concurrency да и вообще по целям? Или как говорится, у меня была какая-то практика, и я её придерживался. За
Что там по Swift Concurrency да и вообще по целям? Или как говорится, у меня была какая-то практика, и я её придерживался. За последнее время я как и прежде, продолжаю регулярно обновлять приложение, наполнять вопросами (из проверенных источников и рабочих кейсов, а не из аи-слопа, которым наводнено к сожалению множество каналов, и, к сожалению - хабра и медиума). Кстати, совсем скоро выйдет и новая версия приложения, которое в бете уже месяц. Сделал карту изучения Swift Concurrency, опубликовал сайт, продолжаю наполнять базу качественным контентом сразу по нескольким направлениям, которые непосредственно связаны с рабочими задачами. 🤖 Ботом воспользовалось уже около тысячи человек, и вот первые выводы. Кайф, что все работает стабильно, все метрики в норме, ожидал проблем. В комментарии канала написали несколько десятков человек с конструктивными предложениями и это здорово (пишите и вы)! Подпишитесь 💰 на бусти и ⭐️ прямо здесь и получите доступ к эсклюзивному и качественному контенту. ✅С вас подписка по специальному офферу - с меня все нижеперечисленное (и даже больше).
Что можно получить сегодня? ➡️Несколько десятков пройденных алгоритмических задач с боевых конкурсов. ➡️Вопросы на чтение кода ➡️Многопоточность ➡️DispatchQueue: практические вопросы (две части) ➡️Swift Concurrency ➡️Память: ARC, side table, флаги, утечки ➡️UIKit (теория + практика, две части) ➡️Компилятор Swift ➡️Основы: URLSession, UICollectionView и многое другое. А также: ➡️Множество необычных подходов к анимации (включая шейдеры). ➡️Разбор популярных архитектур (и их недостатков). ➡️Несколько кайфовых и интересных фактов об истории прототипирования в Apple. ➡️Как на самом деле работает Code Signing. ➡️Несколько трюков и фишек при работе c Xcode.
😃 iOS Dev