Обновить

Мобильная разработка

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

Кастомная галерея на iOS: от лага на 60 000 фото до lazy-загрузки и Combine

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

Если вы когда-нибудь разрабатывали мессенджер, то наверняка сталкивались с задачей выбора фотографий и видео для отправки. На первый взгляд кажется, что Apple предоставляет всё необходимое: UIImagePickerController, PHPickerViewController. Но стоит только копнуть чуть глубже, и оказывается, что стандартные компоненты не покрывают и половины того, что нужно в реальном продукте.

Читать далее

Как я 3 года делал мобильное приложение

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

Я не разработчик, но теперь у меня есть своё приложение в App Store, которое помогло мне больше ходить и в прошлом месяце я прошёл 500 000 шагов. В этой статье рассказываю как я к этому пришёл и какие инструменты помогли ускорить путь.

Читать далее

Повторяем профиль Телеграма, используя Metaballs

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

Я потратил много времени, чтобы разобраться, как работает анимация аватара с Dynamic Island в Telegram.

Затем я реализовал её на Flutter с помощью metaballs и шейдеров 🚀

Узнать, что скрывает Телеграм

Как мы написали React Native библиотеку для Яндекс Карт за два дня с Claude

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

Сначала коротко о том, зачем нам это было нужно.

Мы в основном пилим решения для фудтеха, а для мобилок используем React Native (почему, рассказывали тут). 

В одном из таких проектов (российская сеть ресторанов по франшизе) нам нужно было прикрутить Яндекс Карты. Изначально хотели взять либу react-native-yamap (респект тем, кто ее делал) — но как выяснилось, она работает только на старой архитектуре RN. 

После обновления до 0.76 версии, где Fabric стала использоваться по умолчанию, приложения на iOS начали падать: карта не рендерится, события не доходят до JS, приложение крашится при взаимодействии с картой и вот это вот всё. И судя по открытым тикетам, мы не одни, кто столкнулся с этой проблемой. 

Полезли искать, написал ли кто-то уже библиотеку под новую архитектуру — но либо таких людей нет, либо ни с кем не делятся. Спойлер: мы пока тоже не будем, ещё обкатываем либу на своих проектах — но уже сейчас хотим рассказать, как собрали новый пакет с помощью Claude Code за два дня.

Читать далее

С чего начать путь в мобильную разработку

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

Мобильная разработка — довольно понятное направление в IT. Почти у каждого в кармане есть телефон с iOS или Android, и результат работы разработчика виден сразу: установил приложение — вот оно, работает. Ну, или не работает.

За простым интерфейсом скрывается полноценная инженерия: архитектура, работа с сетью, безопасность, производительность, релизы и багфиксы.

Рассмотрим, чем занимается мобильный разработчик, что нужно знать, если хочется стартовать карьеру в этой профессии, как выстроить траекторию роста, сколько зарабатывают разрабы и где вообще учиться.

Читать далее

Off-channel scan — зло, без которого Wi-Fi не лечится

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

В управлении каналами и мощностью передатчика точек доступа Wi‑Fi есть один вечный конфликт: чтобы сеть работала хорошо, нужно знать реальную ситуацию в эфире.

Богатые Cisco, Aruba и прочий Ruckus используют «третий глаз» у точки — отдельный радиоприемник, который для передачи данных вообще не используется. Отдельное радио? В мирное время — премиум‑фича. В трудную годину — уже почти статья за растрату бюджетных денег.

Так что же делать нам, простым смертным?

Читать далее

Как слить токен авторизации через виджет iOS — и как этого не допустить

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

Если вы разрабатываете iOS-приложение с виджетом, Watch-компаньоном (это приложение для Apple Watch, которое работает в паре с основным приложением на iPhone) или Share Extension - рано или поздно вам придётся передавать данные между процессами. App Groups - стандартный механизм для этого, и на первый взгляд он прост: добавил capability, написал UserDefaults(suiteName:), поехали. Но именно эта кажущаяся простота и создаёт проблемы. Данные лежат в незашифрованном контейнере, любое приложение из вашей команды может их прочитать, а валидация входящих данных почти никогда не делается. Давайте же рассмотрим, как правильно настроить App Groups, что реально можно туда класть, какие риски существуют и как организовать безопасный обмен (в том числе с примером передачи токена авторизации между приложением и виджетом).

Продолжим

Прощай, Cursor

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

Claude добавил новую фичу в десктопной версии.

А именно, в интерфейсе появилась третья закладка — Code.

Главное нововведение — это возможность подключать код проекта прямо в чат и работать с ним без копипаста.

Читать далее

Как я добавил 10 фич в Android-приложение за один заход: Todo Budget v4.0

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

Как я добавил 10 фич в Android-приложение за один заход: Todo Budget v4.0

Привет, Хабр! Продолжаю серию о разработке Todo Budget — Android-приложения, объединяющего задачи, бюджет, заметки и помодоро-таймер в одном месте.

Читать далее

Ваше iOS-приложение не закончено, если им не может пользоваться незрячий: Гайд по Accessibility

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

Как превратить ваше приложение в инклюзивный продукт, который используют ВСЕ - от слабовидящих до людей с когнитивными нарушениями. Плюс секретные фишки, о которых молчит документация Apple.

Это руководство создано не для того, чтобы вы просто поставили галочку в Jira. Мы поговорим о том, как код может стать мостом или стеной для миллионов людей.

Продолжим

Пример оптимизации интерфейса динамического списка в мобильном приложении, сделанном на 1С при помощи HTML + CSS

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

Добрый день!

Хочу привести пример небольшой оптимизации интерфейса (frontend) мобильного приложения, сделанного на 1С.

Разницу вы сами можете проверить, скачав приложение и переключив флаг в настройках «Оформление HTML».

Читать далее

Мобильная разработка за неделю #620 (16 — 22 февраля)

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

В этом выпуске бесконечная история сторибордов и расцвет «достаточно хорошей» архитектуры в Android, Baseline Profiles и шейдеры, мягкая обводка текста, мобильный геймдев нулевых и многое другое. Заходите!

Читать далее

Как я сделал полностью бесплатное Android-приложение для задач и финансов — и почему не взял ни копейки

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

Мне нужен был простой инструмент: список задач, учёт расходов и таймер для фокусировки. Казалось бы — чего проще?

Но вот реальность...

Читать далее

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

Самый быстрый XML парсер для iOS в 2026 году?

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

История, как я докатился до измерения скорости iOS xml парсеров в 2026 году.

Имеется один пет проект, где на старте приложения происходит скачивание большого xml файла на 500 тыс. строк (вес файла 65 Мб) и потом парсинг, на результате которого строится UI приложения. Так как я не люблю тянуть зависимости без лишней необходимости, то написал простой парсер на базе Foundation.XMLParser в паре с его делегатом XMLParserDelegate. Результат мне выдал 15 секунд ожидания на старте приложения, именно столько времени требовалось чтобы парсить пару String и пару Date типов полей. Думал на тот момент 500К строк и 15 секунд, наверное, пойдет для пет проекта, быстрее наврятли сделать, потому что визуально по коду парсер уже не улучшить, так как сделал кеширование ключ-значение и еще микро-хаки. И так прошло 3 года, приложением пользуюсь каждый день, уже привык к 15 секундам на старте, всегда думал, можно улучшить только поиском более быстрого xml парсера, но было лень для каждого парсера изучать API и руками писать бенчмарк, так и оставил до лучших времен.

Лучшие времена настали и дальше история, как ИИ мне помог сделать бенчмарк, который я откладывал 3 года. И какой отчасти низкосортный одноразовый код приложения он мне сгенерировал.

Читать далее

Мобильное приложение Sminex: как мы строим единый бэкенд на современном стеке

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

Создание комфортной среды для жизни — это не только архитектура и дизайн. Технологичность — такая же часть комфорта, как удобство двора или качество сервиса. Сегодня жители ожидают, что всё, что связано с домом, доступно из смартфона: от оплаты счетов до вызова мастера. В этой статье поделимся нашим опытом — как в Sminex мы создаём собственную цифровую экосистему Sminex — нативное мобильное приложение и единый бэкенд, построенные на современном стеке. Расскажем, почему мы отказались от коробочных вариантов, как выстраивали архитектуру и какие инженерные решения легли в основу продукта.

Почему мобильное приложение — это база

Мобильное приложение стало основным каналом коммуникации между жителем и управляющей компанией. Для жителей это привычный, удобный и быстрый способ решать любые вопросы. Для компании — прозрачные процессы и снижение нагрузки на кол-центр.

В Sminex за обслуживание домов отвечает своя Служба комфорта. Это больше, чем классическая управляющая компания. Служба комфорта Sminex — это команда, обеспечивающая премиальный уровень сервиса, инфраструктуру и цифровые инструменты для комфортной жизни. Очевидно, что приложение для клиентов должно соответствовать этим стандартам — быть современным, удобным и технологичным.

Как мы работали раньше и почему ушли от готовых решений

Раньше мы работали с личным кабинетом на SharePoint и нативным мобильным приложением. Оно выполняло базовые задачи, но со временем стало очевидно: архитектура достигла предела масштабируемости, производительность просела, а развивать функционал стало сложно. Требуемую доступность 24/7 оно не обеспечивало.

Читать далее

Эволюция приоритизации: как мы перешли от харизмы стейкхолдеров к ROI

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

Представьте ситуацию: у вашего продукта 50+ стейкхолдеров (30 бизнес-заказчиков, 5 архитекторов и еще 20 связанных систем)  и все одновременно чего-то хотят.

Есть «очевидное» решение: нанимать больше людей. Но это порочная практика. Сколько бы людей вы ни наняли, если нет фильтра на входе, задач всегда будет больше, чем ресурсов.

Меня зовут Денис Тучин, я отвечаю за процессы разработки мобильного приложения ВкусВилл в IT-компании ТехВилл. В этой статье я расскажу, как мы прошли путь: квоты → RICE → ROI, с какими проблемами столкнулись на каждом этапе и какие выводы сделали.

Читать далее

Как сделать GitLab CI/CD вашим лучшим другом для сборки и доставки Flutter приложений. Часть 3

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

Flutter & GitLab CI/CD. Доставка мобильного приложения в Significa, TestFlight и Google Play

Привет! Меня зовут Данил Абдрафиков, я мобильный разработчик в компании TAGES. После успешной настройки сборки и подписания Flutter-приложений во второй части, остался последний, но не менее важный этап — дистрибуция приложения.

В современных условиях автоматизация деплоя на такие платформы, как Google Play, TestFlight и Significa, становится необходимостью. В этой статье мы разберем, как с помощью GitLab CI/CD настроить автоматическую отправку ваших приложений в магазины, чтобы вы могли сосредоточиться на разработке, а не на рутинных задачах.

Читать далее

Как мы упростили компонент из 272 миллионов комбинаций в дизайн-системе Яндекс 360

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

Привет, Хабр! На связи Дима Мандельштам, мобильный разработчик в core‑команде Яндекс 360, и Лёша Карпенко, руководитель команды дизайн‑системы. Дизайн — часть повседневной работы наших команд, и он не живёт отдельно. Поэтому сегодня в статье мы вместе поговорим о том, как мы собирали компонент List‑item.

Мобильные разработчики в этой статье найдут метод, с которым можно достичь баланса между гибкостью кода и простотой поддержки. Мы расскажем, как применили data‑driven‑подход к рефакторингу UI: написали анализатор AST для поиска реальных паттернов использования и вывели математическую метрику сложности API. А ещё расскажем о том, как аргументировать и провести масштабную переработку legacy‑кода, не останавливая продуктовую разработку.

Продуктовым дизайнерам будет интересен альтернативный взгляд на проектирование List‑item в дизайн‑системе. Мы разберём, как собирать List‑item — как универсальный компонент с максимальной гибкостью или как набор семантических шаблонов под конкретные сценарии.

В отличие от подхода, где компонент выступает универсальной «болванкой» для любых задач, мы предлагаем смотреть на него как на архитектурную единицу с заранее определённой ролью, ограничениями и зонами ответственности. Такой взгляд помогает уменьшить количество интерпретаций одного и того же паттерна, повысить консистентность интерфейсов и упростить поддержку дизайн‑системы по мере её роста.

Читать далее

Как я за 2,5 месяца написал строительный калькулятор на Flutter с ИИ-прорабом, 45+ калькуляторами и 8000 тестами

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

В конце ноября 2025-го я сел писать строительный калькулятор для RuStore. Хотел собрать всё, что нужно при ремонте, в одном приложении - от расчёта обоев до ИИ-ассистента, который подскажет, где ты накосячил с расходом штукатурки. Через 2,5 месяца «Мастерок» вышел в продакшн: 45+ калькуляторов, 269 коммитов, 259 тысяч строк кода, рейтинг 4.9 в RuStore.

В этой статье расскажу про архитектуру, покажу реальный код и объясню, почему переписал систему калькуляторов с нуля на полпути разработки, как впихнул ИИ с характером ворчливого прораба через OpenRouter и зачем написал 8180 тестов на проект, который делает один человек.

Читать далее

Не убий: Гайд по UI/UX в Android Automotive, за который вас не посадят

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

В прошлой серии мы научились вытаскивать из машины данные. Мы знаем скорость, обороты двигателя и даже какая дверь открыта. Руки чешутся вывести всё это на огромный экран в 4K, добавить анимаций, графиков и запустить YouTube на фоне, да?

Не спешите.

Если вы сделаете это, ваше приложение никогда не попадет в стор. А если вы работаете на OEM (автопроизводителя) и протащите это в прод — вас, возможно, проклянут водители, въехавшие в столб, пока разглядывали ваш красивый график расхода топлива.

Сегодня говорим о Driver Distraction — главной боли и главной фишке разработки под авто. О том, как сделать интерфейс, который не убивает.

Читать далее