Обновить
256K+

iOS *

Мобильная ОС компании Apple

88,88
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

iPad как инструмент разработчика в эпоху агентного программирования

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели8.6K

Ещё несколько лет назад разговоры об iPad как полноценном инструменте разработчика воспринимались скептически. Машинка для Netflix, блокнот для набросков, планшет для презентаций — но только не рабочая среда для написания и деплоя кода. У этого скептицизма были основания: iPadOS долго не имела нормальной многозадачности, инструментов для работы с серверами почти не существовало, а необходимость постоянно переключаться между приложениями делала любой серьёзный рабочий процесс мучительным.

Сегодня картина изменилась кардинально, и сразу по двум причинам, которые усиливают друг друга.

Читать далее

Как мы переводим миллионы iOS-пользователей на новое приложение каждые несколько месяцев

Время на прочтение9 мин
Охват и читатели12K

Всем привет! Apple удалила «РСХБ Онлайн» из App Store в 2022 году. С тех пор мы выпустили пять новых iOS-приложений — «Учёт надоя», «Ягодный фест», «АгроСкан», «PRO Зерно» и «ПРО Жарка». Каждое рано или поздно удаляли. И каждый раз перед нами вставала одна и та же задача: перевести клиентскую базу со старого приложения на новое. Без App Store. Без возможности обновить бинарник. Без push-уведомлений в устаревшем клиенте.

Я Кирилл Адещенко, в прошлой статье я делился кейсом публикации мобильного банковского приложения РСХБ в условиях ужесточения правил магазинов приложений и санкционных ограничений. В этой статье буду говорить про миграцию: как технически и организационно переселять людей, когда главный канал дистрибуции у тебя отобрали, а клиенты цепляются за привычное.

Читать далее

Capacitor: от веба к мобильным приложениям. Часть 4. Интегрируем локальный LLM в проект

Уровень сложностиПростой
Время на прочтение13 мин
Охват и читатели11K

В этой уже 5 по счету статье мы поговорим про актуальность локального AI в мобильных приложениях а также займемся интеграцией плагина для локальных LLM в Capacitor приложение.

Читать далее

Год разработки iOS-игры, 266 тысяч показов и $33: как я делал Vault и почти ничего не заработал

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели8.6K

Я год делал iOS-игру Vault: the board game: онлайн, профили, друзья, локализация, сезонные ивенты, премиум-паки и нормальная страница в App Store. За последние 90 дней App Store Connect показал 266 тысяч показов, 6 тысяч первых загрузок и $33 proceeds. Это честный рассказ о том, почему хороший инди-проект сам по себе не становится бизнесом.

Читать далее

Мобильная разработка за неделю #631 (18 — 24 мая)

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели11K

В новом дайджесте лаги Телеграм на флагманах и анонсы Google I/O 2026, переезд с XML на Jetpack Compose и новый Flutter с Dart-ом, счет на €3167от ошибки в Firebase двухлетней давности, как Apple боролась с мошенничеством в App Store в 2025, ИИ-система code-review от DoorDash, которая действительно работает, и многое другое. Заходите!

Читать далее

Обход блокировок внутри iOS-приложения: VLESS + Reality через sing-box, и грабли по дороге

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели18K

Мы делаем мессенджер. Весной 2026 наш бэкенд начал отваливаться у части пользователей из России: HTTPS‑запросы к API таймаутятся, WebSocket не поднимается. Картина знакомая всем, кто держит сервис с одним доменом и одним IP.

Для мессенджера это приговор. Не «неудобно», а именно приговор: приложение, которое не может даже подключиться, бесполезно. И вариант «попросите пользователя сначала включить VPN» нас не устраивал совсем. Ниже разберу, почему мы в итоге встроили обход прямо в приложение, на чём он работает и на какие грабли мы наступили. Без маркетинга, по делу.

Читать далее

Как я делал ping и traceroute на iOS без entitlements — и почему это оказалось проще, чем UMP-консент для AdMob

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели7.5K

Я выпустил небольшое iOS-приложение — NetDiag+. Это набор сетевых утилит: ping, traceroute, DNS lookup, whois, LAN-сканер, port scanner, проверка SSL-сертификатов, BGP/ASN lookup, Wi-Fi info и фоновый мониторинг хостов с пушами при падении. Я начинал его как пет-проект для собственных нужд, потому что на iOS приходилось переключаться между четырьмя разными приложениями для базовой диагностики, и в трёх из четырёх была реклама.

Хочу поделиться тем, что мне самому хотелось бы прочитать в начале — почему некоторые вещи на iOS работают не так, как ожидаешь от Unix-фона, и где грабли лежат не там, где кажется.

Сразу спойлер по выводам: самым болезненным оказалось не сетевое программирование, а интеграция UMP-консента для AdMob.

Читать далее

Flutter 3.44 Конец эпохи CocoaPods и начало расцвета Swift Package Manager

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели8.7K

Экосистема Flutter совершила один из самых значительных скачков вперед. С выходом Flutter 3.44 команда официально сделала Swift Package Manager (SwiftPM) менеджером зависимостей по умолчанию для iOS и macOS, ознаменовав начало конца эпохи CocoaPods.

Но это еще не все. Этот релиз также знаменует собой серьезный архитектурный сдвиг в том, как поставляются виджеты Material и Cupertino. Давайте углубимся в детали.

Читать далее

Код Telegram iOS — лучший в индустрии. Почему же он так лагает на флагманах?

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели23K

Telegram — технически самый сложных мессенджер в мире. В iOS приложении 2.1M+ строк, 700+ модулей, 86% Swift, 13 лет кодовой базы, и мало ObjC — это колоссальный труд.

Но при этом приложение лагает на флагманах, AsyncDisplayKit открывает по 10 дублей окон разом(а это явно тормозит ARC), крэши на редактировании изображений стабильны годами.

Почему?

Потому что 86% кода написаны на Swift, но разработчики мыслят все еще в парадигме ООП.

ООП в Swift — это не просто устаревший стиль, это потерянная производительность.

Читать далее

Мобильная разработка за неделю #630 (11 — 17 мая)

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели9.8K

Возвращаемся после небольшого майского перерыва с новым дайджестом - советы и хитрости Xcode 16 и как добиться 0 рекомпозиций в сложном кастомном UI, три раунда войны с Android-клавиатурой в WebView и обновление без разрешения пользователя, 10 оптимизаций Swift, которые улучшат производительность, тестирование Compose по-новому, декларативная навигация для Flutter, под капотом перезапуска приложения Бургер Кинг и многое другое. Заходите!

Читать далее

Push-уведомления в мессенджере: production-грабли которых нет в туториалах

Уровень сложностиСложный
Время на прочтение9 мин
Охват и читатели13K

Это девятая статья про инженерные решения в ONEMIX. Тема узкая, push-уведомления. Но я её давно хотел разобрать, потому что туториалов в интернете много, а production-граблей в них почти нет.

Если коротко, туториал по push выглядит так. Регистрируешь токен через Notifications.getExpoPushTokenAsync(). Отправляешь на бэкенд. Когда приходит пуш — addNotificationResponseReceivedListener ловит тап, навигируешь в нужный экран. Всё.

В реальном мессенджере таких туториалов недостаточно. Появляется десяток узких проблем. Пуш приходит когда юзер уже в этом чате. Пуш приходит когда приложение убито системой. Navigation после открытия из пуша добавляет дублирующийся экран в стек. На iOS звонки идут через отдельный канал VoIP который требует совершенно другой инфраструктуры. Эти грабли я и разберу.

Читать далее

Синергия E2E и скриншотных тестов: создание надежной системы тестирования iOS с помощью XCTest

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели6.9K

Всем привет! Меня зовут Артур Поляков, я инженер по тестированию в отделе мобильной разработки в компании iSpring. Наша команда работает над iSpring LMS — мобильным приложением для дистанционного обучения сотрудников.

В этой статье я поделюсь опытом автоматизации ручных проверок регресса в iOS-приложении. Хотя материалов об автотестах для iOS на Хабре достаточно, наш подход обладает уникальными особенностями, о которых я подробно расскажу дальше.

Читать далее

Первый реальный технический бенчмарк ИИ или ищем самый быстрый XML парсер для Apple платформы

Уровень сложностиПростой
Время на прочтение16 мин
Охват и читатели9.3K

Нет, это не déjà vu, это продолжение моей прошлой статьи Самый быстрый XML парсер для iOS в 2026 году? Чтобы вам не тратить время на ее чтение, вот краткий пересказ. В прошлой статье происходит поиск самого быстрого XML парсера со следующими характиристиками:

Для Apple платформы (iOS, tvOS, macOS)

Язык Objective-C или Swift

GitHub как источник исходников

Популярный (хотя бы больше 500 звезд)

Любая интеграция (CocoaPods, SwiftPM)

И самое важное, весь бенчмарк я писал сам с небольшой помощью ИИ, не спеша, под несколько чашечек кофе за 3 часа я нашел нужный мне XML парсер.

Спустя пару месяцев после выхода первой статьи, мне пришла мысль, зачем я тратил 3 часа на эту задачу, если можно было просто это самое задание “скормить” ИИшке и она бы за 5 минут решила бы ее (так пишут в интернетах). Тут же пришла вторая идея. Так как у меня есть мною лично проверенный результат, то я могу загрузить этой задачей все популярные ИИ и их результаты сравнить со своим. Даже не исключаю, что у меня где-то есть ошибка и тогда рейтинг парсеров будет выглядеть совсем иначе и я выбрал не самый быстрый как хотел.

Собственно, что я и сделал. Загнал задачу в топ 15 ИИ и сравнил их результаты со своим. Если вам интересно, кто справился с задачей, кто спасовал, будет описано в развернутой статье под катом.

Для затравки, наихудший результат и последнее место занимает GPT 5.5 Pro. А Claude Opus 4.7 не смог взять первое место.

Читать далее

Ближайшие события

Live Activities: как мы сделали обновление без разрешения пользователя

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели7.2K

Привет! Меня зовут Сергей, я тимлид iOS-команды в Банки.ру. В разработке уже 11 лет — успел поработать и на аутсорсе, и в продуктовых финтех-компаниях.

Если вы iOS-разработчик и планируете внедрять Live Activities в своё приложение — эта статья для вас. Особенно если обновления LA у вас триггерятся на бэкенде, а не в коде приложения. Мы наступили на несколько граблей, нашли неочевидное решение и хотим сохранить вам пару недель отладки.

Читать далее

Foundation Models в iOS 26: разбор фреймворка для on-device LLM

Уровень сложностиПростой
Время на прочтение20 мин
Охват и читатели5.9K

Foundation Models в iOS 26: разбор фреймворка для on-device LLM

На WWDC 2025 Apple показала одну из самых недооценённых вещей презентации — Foundation Models Framework. Теперь iOS-разработчики получили доступ к системной языковой модели Apple буквально в несколько строк Swift-кода.

Без OpenAI API. Без интернета. Без отправки данных в облако.

Читать далее

Как мы сделали автогенерацию документации для CI/CD из комментариев в коде

Время на прочтение5 мин
Охват и читатели9.7K

Привет, Хабр! Меня зовут Николай Чурянин, я занимаюсь iOS-разработкой в ПСБ. Сегодня я хочу рассказать вам, как делал новую документацию для нашего модуля CI/CD. Конечно же, документация у нас была и раньше. И даже не одна — а это, как понимаете, только усугубляло проблему. Часть документации лежала в readme-репозитории — с него-то она по сути и началась. Но обновлялась она там нерегулярно, оказалось, что работать с ней было не очень-то удобно. В какой-то момент этот репозиторий перестали поддерживать, и я попытался оформить её на внутреннем портале. Увы, пользы от этого стало ещё меньше: там документация была оторвана от кода — от наших скриптов. Вдобавок, её было трудно обновлять. Надо ли говорить, что и её забросили?

«Совсем без документации тоже нельзя», —  решил я и принялся искать другой способ. И нашёл его (спойлер: без ИИ тут не обошлось). Покажу, что получилось и как всё теперь работает. 

Читать далее

Клонирование устройства на Mac mini через ABM/MDM: что не так с решением и почему оно лучшее из возможного

Время на прочтение5 мин
Охват и читатели7.1K

У команды MyBox из Мастерской прошел тест-драйв гипотезы: можно ли сделать воспроизводимый продукт (наш MyBox) на Apple-железе так, чтобы удалённый узел мог криптографически проверить, что перед ним «правильный» продукт, а не подмена с применением админского доступа.

Спойлер: через хэш бинарника не проверяется, это решение отмели на краудсорсинге, а вот предложенное клонирование через ABM/MDM работает, но не элегантно. Вышло скорее размножение через центр, чем красивое p2p‑клонирование.

В конце — ограничения (в том числе про Россию) и почему мы продолжаем считать этот маршрут практичным для PoC/MVP. В комментариях оставили ссылку на разбор других (менее удачных) решений.

Читать далее

Simplphoto для iPhone объединяет ручную камеру, stop motion и коллажи

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели8.5K

Разработка iOS-приложения для ручной съёмки на iPhone: ISO, выдержка, фокус, RAW, stop motion и попытка ограничить вычислительную обработку снимков. Описываю принцип работы приложения.

Читать далее

Как я написал лучшее приложение для изучения иностранных языков с помощью SFSpeechRecognizer (нет)

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели10K

Вообще‑то, я бэкендер последние лет 20, но недавно остался без работы (и AI тут не причём), решил «замутить» свой «стартап», пока ищу новую работу Java‑программиста. А заодно подтянуть новые технологии, поглубже изучить немецкий и английский и немного развеяться…

Писать приложения под iOS было моим хобби последние лет 10, и пару моих приложений до сих пор постоянно висят в топе в Российском AppStore, но это были всё «игрушки», а захотелось сделать что‑то взаправду стоящее, и так возникла идея написать лучшее (ни больше ни меньше) приложение для изучения языков с помощью аудирования. Точнее, товарищ подсказал идею. А ещё точнее — идея давно была реализована под Андроид, но аналогов под iOS нет, а очень хотелось. И мне, и товарищу:). Да и смартфона с андроидом у меня нет и никогда не было, не судите строго, но не люблю я вирусы и глюки.

Идея следующая: берёте любое аудио на любом нужном вам языке, загружаете в приложение, и оно автоматически (можно так же вручную) разбивает аудиофайл на нужные вам сегменты для «шэдоуинга», аудирования, многократного прослушивания и тому подобного. Аналогов в сторе я не нашёл, точнее, что‑то отдалённо похожее там есть, но без своих настроек, без выбора своего контента для изучения, без красивой визуализации аудио, короче, без всего того, что нам бы хотелось иметь.

Итак, идея есть, какие технологии использовать? В старых моих приложениях был UIKit, Realm/CoreData, и, сториборды. Не судите строго, я как бэкэндер тогда не знал, что использование сторибордов среди «трушных» айосников считается плохим тоном и плохой приметой. Но теперь‑то я решил использовать современные технологии! И выбрал такой стэк: SwiftUI, SwiftData, Speech Framework. Что касается последнего, то он вроде бы доступен ещё с iOS 10, но я решил, что технологии развиваются, и распознавание текста из аудио должно было бы сделать со времени iOS 10 огромный рывок вперёд. Но теперь я не так сильно в этом уверен, и об этом эта моя маленькая статья…

Читать далее

17 лучших бесплатных аналогов Photoshop (топ альтернатив)

Уровень сложностиПростой
Время на прочтение12 мин
Охват и читатели21K

Друзья, я снова с подборкой программ! Поскольку работаю с графикой и перепробовал много редакторов, то хочу подсказать, чем заменить Photoshop. Нашел варианты и для обработки фотографий, и для серьезного дизайна. Каждый по праву можно назвать лучшим бесплатным аналогом Фотошопа на русском языке.

Читать далее