Обновить

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

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

РСПКДС: мнемонический шаблон для  обработки данных в Dart -шпаргалка для начинающих

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

В статье разберём РСПКДС — простой мнемонический шаблон, который поможет новичкам в Dart структурировать базовые операции обработки данных. Покажу, как использовать формулу для решения типовых задач, приведу примеры кода и дам практические рекомендации. Вы узнаете, как за 6 шагов превратить сырые данные в осмысленный результат.

Читать далее

Todo Budget v5.0: переписал весь UI с нуля на Jetpack Compose — и теперь ищу тех, кто его сломает

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

До пятой версии главный экран был функциональным, но визуально скучным. Типичный Material Design без характера. Я получил несколько честных отзывов — в том числе жёстких — и решил переделать всё.

Читать далее

Зачем нужен companion object в Hilt-модулях

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

Замечали некий companion object в интерфейсах Hilt-модулей? Что он делает, как он работает под капотом, почему так популярен в Hilt-модулях, и почему нельзя обойтись обычными классами? Сегодня я развею эту магию!

Читать далее

Навигация как нервная система: Как мы подружили немецкий автопром с японскими платными дорогами через AIDL

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

Если вы думаете, что навигационная система в современном автомобиле — это просто красивое приложение, которое рисует синюю линию на карте и говорит «через 200 метров поверните направо», вы застряли в 2010 году.

В Android Automotive OS (AAOS) навигация часто становится одним из самых жирных и критически важных системных компонентов. Это «пространственный мозг» машины. Десятки других модулей постоянно дергают её за рукав с вопросами: «Где мы?», «Какое ограничение скорости?», «Сколько полос на дороге?», «В какой полосе мы сейчас едем?».

В этой статье я поделюсь опытом из своей практики разработки навигационной системы для крупного немецкого автопроизводителя. Мы разберем, как построить надежное межпроцессное взаимодействие (IPC) внутри автомобиля на примере передачи ADAS-атрибутов для японского модуля ETC 2.0.

Читать далее

Сравнение MVI и KoTEA

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

В мире Android-разработки существуют различные архитектурные паттерны.
Многие из вас хорошо знакомы с MVVM, и возможно сталкивались с MVP. В последнее время всё чаще звучит аббревиатура MVI (Model-View-Intent). Однако наряду с MVI существует похожий на неё подход – KoTEA (Kotlin The Elm Architecture).

Давайте сравним их и разберём их различия.

Читать далее

Вертикальный timeline для видео — спорно?

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

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

Читать далее

Малоизвестная возможность Swift: for case let, о которой не знают многие iOS-разработчики

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

Swift известен системой pattern matching. Большинство разработчиков используют её в switch, иногда в if case или guard case. Но в языке есть ещё одна конструкция, которую многие никогда не видели — for case let.

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

В этой статье я хочу разобраться:

Читать далее

Оформление и настройка тем во Flutter: руководство для разработчиков

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

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

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

Читать далее

Что упало — не пропало? EXC_BAD_ACCESS vs. LLDB

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

В работе постоянно сталкиваешься с багами. В топе самых неприятных — крэш. Еще хуже — когда он неочевидный, и сразу сложно сказать, откуда "растут ноги". В этой статье попробуем воспользоваться LLDB для разбора проблемы на реальном примере.

Читать далее

Как нарезать Android-монолит с помощью compile-time плагинов?

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

Привет на связи Федотов Михаил и Абдульманов Эдуард, мы технические лидеры Android разработки в Альфа-Банке и занимаемся приложением для физических лиц.

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

Переход к таким мини-приложениям позволяет ускорить конфигурацию Gradle и уменьшить время компиляции проекта как локально так и на CI.

Думаю это будет полезно тем кто интересуется архитектурой android приложений, KSP, Dagger, а также тем у кого крупное многомодульное приложение и есть проблемы с производительностью работы Gradle в проекте.

Читать далее

Не Vibe-Coding, а инженерия с AI: как я за полгода сделал Android-приложение: социальный трекер привычек

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

Не Vibe-Coding, а инженерия с AI: Как за полгода я сделал Android‑приложение «Трекер привычек» с социальными функциями, синхронизацией, офлайн-режимом и виджетом

Читать далее

Flutter в феврале: релизы Flutter и Dart, Roadmap 2026, Toyota Fluorite и главное из экосистемы

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

Привет, Flutter-разработчики! 👋

Февраль — это тот месяц, когда экосистема не просто жила, а перестраивалась. Два ключевых релиза, публичный вектор развития на 2026, неожиданный 3D-движок от Toyota и тонна полезных материалов!

Читать далее

Между логином и 401: как устроена JWT-авторизация во Flutter

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

Привет, Хабр! Я — Роза, Flutter Dev Friflex. Сегодня я расскажу о веб-токенах JWT: как с их помощью безопасно передавать данные и реализовать авторизацию во Flutter. Разберем, чем JWT отличаются от классической схемы с сессиями, как работают Access- и Refresh-токены, зачем нужен Blacklist и как все это собрать в рабочее решение.

Читать далее

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

Как я добавил функциональность в приложение Telegram с помощью ИИ

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

Привет! Меня зовут Абакар, я работаю главным техническим лидером разработки в Альфа-Банке.

Когда-то давно мне приходилось работать над стартапом, цель которого была — форкнуть основной клиент приложения Telegram и доработать его, а именно добавить в него ИИ-чат-ботов, с которыми можно было общаться. Но это было в далёкие времена, когда ИИ ещё не был на таком «хайпе», как сейчас.

Боль каждого лида — это ответы на сообщения в чатах, и вот недавно я задумался: а что, если спасти себя и заодно опробовать ИИ? Попробовать добавить в Telegram функциональность генерации ответа на сообщение и сделать это без глубокого погружения в исходный код, просто как продакт, который просит своего разработчика что-то для него сделать. Для этих целей я выбрал инструмент — Cursor, с которым общался в визуальном редакторе. Давайте посмотрим, получилось у меня или нет!

Читать далее

Нет соединения — не значит нет UX. Как не потерять доверие пользователя вместе с интернетом

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

Большинство разработчиков думают об офлайн-режиме в последнюю очередь - когда приложение уже готово, дизайн согласован, а PM давит на дедлайн. В результате пользователь видит белый экран, зависший спиннер или, что хуже - молча потерянные данные. Эта статья про то, как выстроить честный UX для состояний без сети: от психологии тревоги до кода с экспоненциальным откатом, от визуального языка ошибок до стратегий разрешения конфликтов. Всё это пригодится при разработке любого мобильного или веб-приложения, которое работает в условиях нестабильного соединения - а таких большинство.

Продолжим

Нейросеть на пассажирском сиденье: Скрещиваем Android Automotive и Machine Learning

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

В предыдущих сериях мы научились ковыряться под капотом: доставать данные с датчиков через VHAL и прятать кнопки от водителя, когда машина едет. Но давайте честно: просто выводить скорость на экран — это скучно. Этим занимались инженеры еще в 90-х.

Сегодня мы живем в эпоху ИИ. У нас есть железка стоимостью в десятки тысяч евро, напичканная датчиками, и операционная система, которая может всё это читать. Так давайте дадим машине «мозги»!

В этой статье мы напишем концепт Smart Driving Assistant — фонового сервиса на Android Automotive, который будет анализировать телеметрию (руль, педали, скорость) и с помощью локальной нейросети (On-Device ML) понимать, что водитель начал "играть в шашечки" на дороге.

Читать далее

Мобильная разработка за неделю #621 (23 февраля — 1 марта)

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

В новом дайджесте новая статья про шейдеры Metal и переход от Dagger к Metro, 10 фич в Android-приложение за один заход и лучшая производительность Flutter, новый подход к прогнозированию погоды, настройка конвейера доставки и многое другое. Заходите!

Читать далее

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

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

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