Обновить

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

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

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

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

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

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

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

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

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

Читать далее

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

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

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

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

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

Читать далее

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

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

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

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

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

Читать далее

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

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

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

Продолжим

Как я в одиночку написал полноценное финансовое Android-приложение на Jetpack Compose

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

Это не очередной TODO-лист и не очередной трекер расходов. Это комбайн, в котором живут задачи, заметки, бюджет, аналитика, помодоро-таймер и цели накоплений

Читать далее

Прощай, Cursor

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

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

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

Продолжим

KMP, XCode и 5% мазохистов: как мы писали AI-агентов на 4 платформы

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

Все говорят, что AI заменит разработчиков. Я решил зайти с другой стороны — написать AI-агента, который заменит пользователей. Альфа версию для macOS уже зарелизил.

Послдение полгода работали с коллегой над двумя приложениями, одно десктопное (по ссылке выше), другое на 4 платформы — android, ios, web, backend. Много чего повидали, хочу поделиться опытом.

Дисклеймер. Статья содержит последствия массового использования expect/actual, сцены жестокого обращения с XCode и эпизоды длительного ожидания нотаризации на релизных сборках под OSX. Не рекомендуется лицам, планирующим запуск KMP-проекта на несколько платформ без предварительной консультации с психотерапевтом.

Читать далее

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

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

Добрый день!

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

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

Читать далее

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

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

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

Читать далее

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

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

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

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

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

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

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

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

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

Читать далее

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

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

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

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

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

Читать далее

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

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

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

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

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

Читать далее

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

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

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

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

Не спешите.

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

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

Читать далее

Все, но не сразу: мастерство сосредоточенной декомпозиции

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

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

Узнать больше