
История развития асинхронного программирования в языке Swift. Можно относиться к этому как к расследованию нераскрытого дела.
Открытый объектно-ориентированный язык
История развития асинхронного программирования в языке Swift. Можно относиться к этому как к расследованию нераскрытого дела.
Использование координатора совместно с NavigationStack является общепризнанной практикой на протяжении последних трех лет -- быстро, удобно, надежно. Однако, в том случае если выбор конечных точек пути описывается перечислением, то по мере роста размеров проекта, начинает разрастаться и класс координатора. Пока количество конечных экранов приложения находится в пределах пяти десятком – это не является проблемой, поскольку Pascal/Camel/Snake нотация легко секционирует группы экранов. Но на долгих проектах количество экранов переваливает за 2-3 сотни, и, в этом случае, перечисления на несколько сот строк становятся проблемой. Особенно, тогда, когда над проектом работает команда разработчиков.
Когда-то презентации новых iPhone и флагманов на Android приковывали внимание. Теперь же люди шутят, что там под бесконечное «amazing» показывают то же, что и годом ранее. Сногсшибательных инноваций уже не происходит, о чём тогда гордо говорить на камеру?
С мобильными конференциями иначе. Там ожидают услышать не новую сенсацию, а полезный контент, помогающий мобильным разработчикам лучше выполнять свою работу. И вот такой контент с годами не закончился: тут всегда есть, куда копать. А по его темам можно отследить, как с годами разработка менялась.
Мы впервые провели Mobius в 2014-м, ещё до появления iPhone X и Google Pixel. В апреле проведём его в очередной раз (в Москве с возможностью онлайн-участия). Каким именно контент будет на этот раз?
Программа уже готова, и представляем Хабру краткие описания докладов. Даже если вы сами не собираетесь участвовать в конференции, пробежаться взглядом всё равно может быть любопытно: это позволит понять, чем вообще живёт российская мобильная разработка в 2025-м.
Toolbox был переписан с использованием лучших инструментов в экосистеме и новейших функций Swift, и теперь он стал еще более мощным, чем когда-либо!
Старый Toolbox
Vapor Toolbox - это инструмент командной строки, который используется для решения распространённых задач при работе с Vapor, таких как создание, компоновка, запуск и развёртывание проектов.
В настоящее время большинство подкоманд Toolbox устарели, поскольку Swift и экосистема эволюционировали, предоставляя более совершенные инструменты для решения этих задач. Единственная функция, которая по-прежнему очень полезна, - это команда new, которая используется для создания новых проектов Vapor на основе шаблонов.
Шаблоны Toolbox - это репозитории Git, содержащие проект Vapor, и они используют Mustache для замены заполнителей(placeholders) пользовательским вводом. Для создания шаблонов Mustache в Toolbox использовалась библиотека, поддерживаемая сообществом Vapor, которая представляет собой Swift-оболочку для синтаксического парсера mustach, написанную на C.
Toolbox был создан с использованием ConsoleKit, библиотеки, созданной командой Vapor, которая предоставляет API для создания интерактивных инструментов CLI, разработанных до появления Swift Argument Parser. Возможности ConsoleKit по обработке аргументов в настоящее время считаются устаревшими, и вместо них рекомендуется использовать Swift Argument Parser.
Переписывание Toolbox
Все устаревшие подкоманды были удалены, и единственная оставшаяся функция - это команда new.
Мы заменили оболочку mustach на swift-mustache от Hummingbird, которая представляет собой библиотеку рендеринга Mustache, полностью написанную на Swift.
На недавно завершившейся конференции Let's Vision 2025 я получил множество вопросов о SwiftData: «Достаточно ли SwiftData развита, чтобы использовать ее в реальных проектах?» и „Как начинающему разработчику эффективно использовать SwiftData?“. Эти вопросы не только отражают живой интерес разработчиков к новейшему фреймворку Apple для хранения данных, но и свидетельствуют о нерешительности при выборе технологии.
Эта статья призвана стать руководством для разработчиков, заинтересованных в SwiftData, и помочь вам понять ее сильные стороны и ограничения, чтобы вы могли принимать обоснованные решения, исходя из потребностей вашего проекта. Независимо от того, рассматриваете ли вы возможность использования SwiftData в новом проекте или планируете переход с другого устоявшегося решения, приведённый ниже материал может помочь в процессе выбора.
Привет, Хабр! Меня зовут Дмитрий Сурков, я 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)
Аутентификация в мобильных приложениях с помощью Telegram Login Widget обделена информацией как официальной документации, так и в интернете. В этой статье поделюсь примером реализации входа в iOS приложение c помощью Telegram. В статье приведены сниппеты кода на Typescript + React, Go и Swift.
В этой статье мы рассмотрим различные подходы для работы с небезопасными операциями в языке программирования Swift. Swift предоставляет несколько способов для работы с указателями и низкоуровневой памятью.
Всем привет, меня зовут Ибрагим, я 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 (даже в бесплатном варианте). Он способен вас приятно удивить.
Когда смотришь на дизайн синтаксиса того или иного языка программирования невольно задумываешься, почему сделано так, а не иначе. Тут я обозреваю лишь некоторые идеи стоящие за этим: "программисту нельзя доверять", "язык должен быть удобен для пользователя", "каким качеством должен обладать язык программирования, чтобы заменить другой?".
В прошлой статье многие подметили некорректность сравнения Deepseek и ChatGPT-4o. Изначально идея была сравнить максимально доступные пользователю версии.
Но сперва всё же хочется посмотреть как с одной и той же задачей справляются разные версии ChatGPT. Я в прошлом году делала анимацию (да, мне прям нравится по выходным, когда отдыхаю, кодить что-то максимально ненапряжное), так вот я её сделала в ChatGPT-4o.
Не сказать, что я прям получила удовольствие, скорее наоборот, выбесилась знатно. А на этой неделе решила её повторить уже с ChatGPT-o3-mini-high. Разница, конечно, колоссальная. Но обо всём по порядку.
Привет, Хабр! Меня зовут Никита, я занимаюсь iOS-разработкой в Яндекс Диске. Как вы знаете, прошлой осенью зарелизился Swift 6, а вместе c ним появились и строгие проверки для защиты от датарейсов, связанные со Swift Concurrency.
В этой статье я постараюсь разобраться с основными изменениями в каждом пропозале и поделюсь своими заметками, тем, что мне показалось самым важным или интересным. В конце статьи бонус — Playground с тестами для каждого пропозала, чтобы можно было поиграть с кодом, детальнее разобраться с изменениями и понять, как они влияют на код, написанный на Swift 5.
В этой статье я расскажу о том, как создать нативный Sheet
, который автоматически подсчитывает свою высоту в зависимости от котента (SwiftUI View
). Задача была в том, чтобы решение было c минимумом костылей и сохраняло поддержку iOS 15. Готового похожего решения мне не удалось найти, поэтому решил создать свой вариант.
Без лишних предисловий - давайте сделаем два абсолютно одинаковых запроса для создания приложения на SwiftUI и сравним, какая модель лучше справится с этими задачами.
Я решила дать два задания. Начнём с первого: нужно написать игру "Змейка", вот мой промпт:
Если лень читать - в конце ссылка на короткое видео сравнения (в телеграм канале).
Движок Fusion позволяет создавать многофункциональные экраны, но иногда это оборачивается избыточным потреблением ресурсов. Наше iOS-приложение продолжало крашиться на отдельных экранах даже после того, как мы раз за разом устраняли утечки памяти и оптимизировали код. Требовался более системный подход.
В результате мы внедрили полноценный мониторинг памяти: научились выявлять ресурсоёмкие участки кода, оперативно устранять утечки и отслеживать влияние изменений на стабильность приложения. О том, как мы это сделали, какие инструменты использовали и к каким результатам пришли, читайте в статье.
Привет, Хабр! Меня зовут Евгений Зорин, я ведущий разработчик в центре инноваций Future Crew. У моего проекта достаточно компактная команда. Нам постоянно нужно проверять критически важную функциональность, и часто это может сделать только сам разработчик. С появлением современных LLM, таких как ChatGPT, возникла идея об их внедрении для ревью кода. В качестве подопытного кролика был выбран Swift. В этом материале я расскажу, чего мы добились, какие инструменты использовали и как LLM справляется с поставленной задачей.
Пошаговое руководство по использованию OAuth 2.0 при доступе к защищенным API из iOS‑приложения на Swift с Auth0.