Расследуем дело асинхронного программирования с Леонидом Каневским

История развития асинхронного программирования в языке Swift. Можно относиться к этому как к расследованию нераскрытого дела.
Мобильная ОС компании Apple
История развития асинхронного программирования в языке Swift. Можно относиться к этому как к расследованию нераскрытого дела.
Использование координатора совместно с NavigationStack является общепризнанной практикой на протяжении последних трех лет -- быстро, удобно, надежно. Однако, в том случае если выбор конечных точек пути описывается перечислением, то по мере роста размеров проекта, начинает разрастаться и класс координатора. Пока количество конечных экранов приложения находится в пределах пяти десятком – это не является проблемой, поскольку Pascal/Camel/Snake нотация легко секционирует группы экранов. Но на долгих проектах количество экранов переваливает за 2-3 сотни, и, в этом случае, перечисления на несколько сот строк становятся проблемой. Особенно, тогда, когда над проектом работает команда разработчиков.
Большинство разработчиков не любит проводить код-ревью. Все понимают, что это важно и нужно, могут с ходу назвать три-четыре причины необходимости этого процесса. Но раз за разом они избегают его. Или участвуют в нём неэффективно.
Так разрушим же шаблоны — не будем акцентировать внимание на важности и полезности код-ревью, а разберёмся в причинах сложившейся неприязни к этому процессу. И попробуем понять, как с этим жить.
Привет, Хабр! Меня зовут Дмитрий Сурков, я iOS-разработчик приложения для среднего и малого бизнеса ПСБ. Наше приложение состоит из различных модулей и внутренних библиотек, которые связаны между собой, поэтому важно сохранять гибкость и обратную совместимость во время разработки. В этой статье мы разберемся, как вносимые изменения нарушают эти правила, а также как это исправить.
Меня зовут Дима, я iOS инженер-менеджер в крупнейшем телеком-операторе Казахстана. У нас 19 разработчиков — и билд-тайм для нас важная составляющая разработки. В этой статье я пройдусь по следующему пути:
• рассмотрю стратегии, которые вы сможете сразу применить;
• покажу реальные цифры из наших проектов;
• сделаю выводы и поделюсь инсайтами.
В данной статье не будет подробного разбора кода, я добавил краткие примеры, чтобы у тебя (если ты новичок), было представление о том, как выглядит в коде та или иная технология. Следуя этому плану, обращаясь к указанным ресурсам, можно уверенно дойди до уровня Junior и начать поиск свой первой работы.
Почему стоит выбрать iOS-разработку?
iOS-разработка остается одним из самых востребованных направлений в IT. Спрос на специалистов растет, зарплаты остаются высокими, а сам процесс разработки комфортный благодаря экосистеме Apple. Не стоит бояться разговоров о том, что рынок перегрет, главное знать зачем вы это делаете и просто дойди до конца.
💰 Сколько зарабатывают iOS-разработчики в России в 2025 году?
• Junior – 120 000–180 000 ₽
• Middle – 250 000–350 000 ₽
• Senior – от 400 000 ₽ и выше
Но чтобы получить первый оффер, нужно освоить Swift, UIKit, сетевое взаимодействие, архитектуры (у вас должно быть понимание, для чего та или иная архитектура, основные сущности, не обязательно глубоко разбираться) и основы хранения данных. Давай разберемся, с чего начать.
1. Изучение Swift и основ программирования
Swift – это современный язык программирования от Apple. На нем пишут приложения для iOS, macOS, watchOS и tvOS.
📌 Что нужно изучить в первую очередь?
✅ Основы (переменные, типы данных, операторы)
✅ Управляющие конструкции (if, switch, for, while)
✅ Коллекции (Array, Set, Dictionary)
✅ Опционалы (Optional, nil, guard let, if let)
✅ Основы ООП (классы, структуры, наследование, протоколы)
✅ Управление памятью (ARC, weak, strong, unowned)
В этой статье мы рассмотрим различные подходы для работы с небезопасными операциями в языке программирования Swift. Swift предоставляет несколько способов для работы с указателями и низкоуровневой памятью.
Привет! Меня зовут Олег Иванов, я руководитель мобильной разработки в Московском кредитном банке. Сегодня поговорим о Server Driven UI вот по такому плану:
• что это вообще за технология
• из чего она состоит
• рассмотрим наши подходы к ее реализации
Начнем с терминологии:
SDUI (Server Driven UI) — это пользовательский интерфейс, управляемый сервером.
Что такое пользовательский интерфейс? Среда, с помощью которой пользователь взаимодействует с программным обеспечением через приложения. Обычно он состоит из множества экранных форм, которые и ведут пользователя по флоу до какого-то определенного результата.
Из России запуск платного приложения в App Store после 2022 года требует нестандартного подхода, но это вполне реальная задача. Главное — учитывать актуальные требования Apple, а также продумать стратегию монетизации.
Однако для нас усилия себя оправдали успешным запуском нашего приложения с монетизацией в App Store, несмотря на все ограничения и без переезда («релокации»). В этой статье я разберу правила, которые Apple ввела для разработчиков из РФ, и поделюсь пошаговым опытом, как преодолеть эту полосу препятствий.
Привет, хабрачитатели! Server-Driven UI (SDUI) — это подход, при котором сервер управляет отображением интерфейса на клиенте. Важное преимущество SDUI — возможность внедрять изменения без выпуска новых версий приложений. Но это же преимущество есть его недостаток, ведь передача всех данных по сети зависит от качества соединения и увеличивает объём данных.
Качество связи мы не можем контролировать, а вот уменьшить количество передаваемой информации посредством сокращения JSON, — вполне.
Как именно работает пользовательский интерфейс iOS-приложений под капотом? При работе с UIKit и SwiftUI разработчики часто фокусируются на их API, не вдаваясь в детали того, что происходит за кулисами. Однако глубокое понимание этих процессов помогает оптимизировать производительность, избежать неожиданных багов и проблем с отрисовкой интерфейса, а также разобраться в механике рендеринга.
В этой статье мы подробно разберём, как UIKit взаимодействует с Core Animation, как устроен Runloop, почему обновления интерфейса происходят не сразу после внесения изменений и какую роль играет Render Server.
Всем привет, меня зовут Ибрагим, я iOS разработчик одной из команд мобильного банкинга и это моя первая статья для Хабра, поэтому прошу строго не судить.
Сегодня хочу рассказать Вам, как мы пилили дробили монолит на SPM пакеты и создавали дизайн систему.
Что делает «животворящая» конкуренция?
Появление DeepSeek, позволило бесплатным подписчикам ChatGPT получить доступ к «рассуждающей» ChatGPT o3-mini.
Я предложила этим двум ИИ создать довольно простое на первый взгляд тестовое iOS приложение Countries, которое показывает все страны Мира по регионам (Европа, Азия, Латинская Америка и т. д.) и для каждой страны её название и флаг, a также численность населения population, размер ВВП (валового внутреннего продукта) gdp и расположение страны на карте Мира.
Использовались данные Всемирного банка (World Bank), но мы не сообщали ИИ ни сайты, ни структуры данных, всё это ИИ должен найти сам и использовать их при создании iOS приложения.
Раньше я отдавала предпочтение Clause 3.5 Sonnet при создании iOS приложений, прибегая к ChatGPT 4.o1 для решения отдельных проблем. Но появление «рассуждающих» ChatGPT o3-mini и DeepSeek изменили всё.
iOS разработка поднялась на новый уровень, и пока лидером в этой гонке для меня является ChatGPT o3-mini (даже в бесплатном варианте). Он способен вас приятно удивить.