#mobile_development

2025-12-19

От ощущений к цифрам: как мы внедрили метрики перформанса в андроид приложение

Всем привет! Меня зовут Тимур, я платформенный Android-разработчик с опытом 5+ лет в ритейле и e-com. В этой статье разберём, почему перформанс на мобильных устройствах это не ощущения, а фактор, который влияет на конверсию и GMV. Покажу, какие метрики имеет смысл собирать на клиенте, как их мониторить, и приведу примеры кода для Android. Присаживайтесь, наливайте чай/кофе — поехали.

habr.com/ru/articles/978170/

#performance #performance_optimization #kotlin #android #grafana #mobile_development #mobile_performance

2025-11-19

Как всплывающее окно в WebView съело мои два дня

Иногда в разработке случается баг, который не просто не даёт спать, а заставляет пересмотреть свои жизненные ценности. У меня это произошло со скромным всплывающим окном внутри WebView. Задача была максимально скучной: на экране с WebView пользователь нажимает кнопку “Exit”, а веб-страница показывает попап подтверждения. На старом коде — всё идеально. На браузере — идеально. На новом инфраструктурном слое WebView — попап появляется на миг и тут же закрывается сам, как будто кто-то тайно играет в “крестики” за пользователя. Никаких ошибок. Никаких исключений. Просто “блип”… и пустота. То самое чувство, когда ты нажимаешь кнопку, а мир делает вид, что “ничего не было”. И это — пролог к истории о том, как два дня моей жизни сгорели на алтаре WebView.

habr.com/ru/articles/968206/

#webview #kotlin #android #mobile_development #chromium #javascript #web

2025-11-16

Два года с Duit — история взросления фреймворка

Когда-то Duit был всего лишь экспериментом — попыткой упаковать интерфейс Flutter в JSON и заставить его ожить. Сегодня это уже не технический трюк, а осмысленный подход к тому, как можно описывать UI данными, а не кодом, создавая управляемые интерфейсы нового поколения. Новый релиз — история взросления и поиска архитектурного баланса. За два года проект прошёл путь от набора идей до зрелой архитектуры, где принципы гибкости, тестируемости и производительности стали фундаментом проекта. Приглашаю тебя прочитать статью и узнать, как Duit v4 меняет представление о том, каким может быть BDUI-фреймворк.

habr.com/ru/articles/963884/

#bdui #sdui #duit #flutter #dart #mobile_development #framework #ui

2025-10-31

Собираем «тот самый» экран блокировки: без лишних виджетов и с защищенным доступом

Меня зовут Светлана Палицына, я старший разработчик в мобильной команде «Лаборатории Касперского» . Мы занимаемся разработкой EMM-решения для управления корпоративными телефонами и защиты хранящейся на них корпоративной информации. Защита мобильного начинается с экрана блокировки, и в этой статье расскажу про разные способы оформления этого экрана на Android, предоставляемые классом DevicePolicyManager . Экран блокировки — своего рода визитная карточка всего мобильного интерфейса. Каждый виджет и UI-элемент тут требует особого внимания, чтобы не перегружать пользователя информацией и обеспечивать защиту корпоративных данных (например, скрывать показ содержимого уведомлений от посторонних, которым аппарат случайно может попасться на глаза). Но главное — важно, чтобы разблокировать его можно было исключительно одобренным корпоративными политиками методом. Многие компании, к примеру, запрещают биометрические методы разблокировки как не самые безопасные. В идеале для бизнеса (и самого пользователя) такой экран должен быть лаконичным, понятным и безопасным. И лучший способ достичь этого идеала — подробная кастомизация!

habr.com/ru/companies/kaspersk

#KeyguardFeatures #android #mobile_development #экран_блокировки #экраны_защиты_информации #интерфейсы #биометрия #биометрическая_аутентификация #гаджеты #смартфоны

2025-10-30

Подстраиваемся под новые требования Google: переходим на 16 KB memory page (гайд для разработчиков React Native)

Ну как, вы уже обновили свои приложения для поддержки новых требований Google? Если нет, то эта статья будет вам особенно полезна =) Напомню, что с 1 ноября 2025 года приложения, таргетирующиеся Android 15 и выше, должны поддерживать 16-килобайтные страницы памяти . Как вы помните по предыдущим статьям, я работаю в МойОфис в команде разработки мобильной версии высоконагруженного корпоративного мессенджера Squadus (бэкенд на Node.js, NestJS и Meteor, а веб-интерфейс на React). Мы уже успешно перестроились на новые стандарты Google, и поэтому могу компетентно рассказать, что именно требуется, как адаптировать под это React Native-приложение и что делать, если используемая библиотека ещё не успела обновиться.

habr.com/ru/companies/ncloudte

#react_native #mobile_development #google #android #мобильная_разработка

2025-10-30

Подстраиваемся под новые требования Google: переходим на 16 KB memory page (гайд для разработчиков React Native)

Ну как, вы уже обновили свои приложения для поддержки новых требований Google? Если нет, то эта статья будет вам особенно полезна =) Напомню, что с 1 ноября 2025 года приложения, таргетирующиеся Android 15 и выше, должны поддерживать 16-килобайтные страницы памяти . Как вы помните по предыдущим статьям, я работаю в МойОфис в команде разработки мобильной версии высоконагруженного корпоративного мессенджера Squadus (бэкенд на Node.js, NestJS и Meteor, а веб-интерфейс на React). Мы уже успешно перестроились на новые стандарты Google, и поэтому могу компетентно рассказать, что именно требуется, как адаптировать под это React Native-приложение и что делать, если используемая библиотека ещё не успела обновиться.

habr.com/ru/companies/ncloudte

#react_native #mobile_development #google #android #мобильная_разработка

2025-10-24

От Android до кроссплатформы за 3 дня: опыт адаптации приложения под CMP

Привет! Я Тимур, разработчик мобильных приложений в KTS . В прошлом году мы решали любопытную задачу. Нам нужно было вдвоем за одну рабочую неделю собрать прототип мобильного приложения для сервиса бронирования отелей. Задача осложнялась тем, что заказчик рассматривал не только нашу команду на роль подрядчика. Мы не могли отдать сырой черновик, в котором просто нажимаются нужные кнопки и работают ключевые сценарии — мы должны были превзойти конкурентов-флаттеристов. И нам удалось это сделать с помощью KMP. Да, тема довольно холиварная, и в статье я не заявляю, что KMP лучше Flutter’а во всем. Каждая технология хороша под свои задачи. Вместо этого я расскажу о конкретном проекте, на котором KMP оказался более удачным выбором. Также коснусь вопросов архитектуры и миграции Android-приложения на iOS с помощью CMP, а заодно подсвечу подводные камни, с которыми пришлось разбираться в процессе.

habr.com/ru/companies/kts/arti

#kmp #CMP #kotlin_multiplatform_mobile #kotlin_multiplatform #mobile_development

2025-10-20

Что такое ANR и как с ним работать правильно

ANR — это не просто “зависание”, а молчаливый краш, который напрямую бьёт по удержанию пользователей. В статье разбираю, как работает механизм ANR, какие ошибки его вызывают, как анализировать traces.txt, какие библиотеки помогают отслеживать блокировки (ANR-WatchDog, ANR-Spy, Firebase Crashlytics), и как построить процессы, чтобы QA-команда научилась ловить их ещё до релиза.

habr.com/ru/articles/958278/

#anr #watchdog #kotlin #java #android #mobile_development #android_development #qa #mobile_qa

2025-08-05

Swipe to Pay, или Как мы переписали слайдер оплаты на Compose

В Дринкит был анимированный компонент на MotionLayout — слайдер быстрой оплаты в меню. Его и сейчас можно увидеть, когда вы добавляете продукты в корзину. Проведя по нему, вы оплатите заказ, а тапнув — перейдёте к покупкам. Так почему «был»? У компонента накопилось немало багов, а самому слайдеру понадобился новый функционал. Реализовать его на MotionLayout было сложно, так что мы решили переписать компонент на Compose. Привет! Меня зовут Дима Максимов, я — Android-разработчик. В этой статье я расскажу, почему на Compose проще пилить масштабируемые компоненты, разобрав процесс во всех деталях, покажу код и его реализацию в интерфейсе.

habr.com/ru/companies/dododev/

#Compose #androidразработка #jetpack_compose #animations #mobile_development #custom_layout #слайдер #мобильное_приложение

2025-07-21

Быстрые гипотезы, AI инструменты в мобильной разработке и зачем CTO самому писать код

Привет, Хабр! Сегодня публикуем интервью с Русланом Давлетшиным, CTO в Hyperskill и членом программного комитета серии митапов для мобильных разработчиков

habr.com/ru/companies/oleg-bun

#mobile_development #android #ios #ai #тестирование_мобильных_приложений #разработка_приложений #искусственный_интеллект #ииагенты #ииассистент #ии

2025-06-03

React Native тормозит? Проверь эти 8 узких мест в производительности, прежде чем винить фреймворк [ЧЕК-ЛИСТ]

Идея этой статьи родилась во время задушевных разговоров на кухне и за утренним кофе с коллегами. Началось все с вопроса: «Чтобы ты бы сказал себе прошлому, чтобы релизы стали легче, а спринты прекраснее?» Конечно, в тот момент я ничего дельного не ответил, но, кажется, наконец-то сформулировал идеальную фразу: «Настоящий разработчик, Слав, это не тот, кто с сияющим макбуком и вкусным смузи. Разработчик — тот, кто делает то, что нужно сделать. И в легаси покопаться приходится, и memory leak дебажить, а он всё равно делает, потому что так надо». Привет, Хабр! Меня зовут Вячеслав Чащухин, я — разработчик в МойОфис. Занимаюсь мобильной версией Squadus — цифрового рабочего пространства для совместной работы и деловых коммуникаций. Обращаю ваше внимание на то, что эта статья — не инструкция по решению всех проблем. Скорее, чек-лист причин, которые, по моему мнению, чаще всего приводят к тем или иным проблемам. Поэтому в некоторых пунктах будут ссылки или упоминания возможных решений. Я объединил проблемы по группам. Если вы обнаружили в своем приложении подлагивания или не хотите их обнаружить в будущем, рекомендую пройтись по пунктам:)

habr.com/ru/companies/ncloudte

#React_Native #crossplatform #mobile_development #crossplatform_mobile_programming #performance #react #мойофис #reactjs #reactjs

2025-06-03

React Native тормозит? Проверь эти 8 узких мест в производительности, прежде чем винить фреймворк [ЧЕК-ЛИСТ]

Идея этой статьи родилась во время задушевных разговоров на кухне и за утренним кофе с коллегами. Началось все с вопроса: «Чтобы ты бы сказал себе прошлому, чтобы релизы стали легче, а спринты прекраснее?» Конечно, в тот момент я ничего дельного не ответил, но, кажется, наконец-то сформулировал идеальную фразу: «Настоящий разработчик, Слав, это не тот, кто с сияющим макбуком и вкусным смузи. Разработчик — тот, кто делает то, что нужно сделать. И в легаси покопаться приходится, и memory leak дебажить, а он всё равно делает, потому что так надо». Привет, Хабр! Меня зовут Вячеслав Чащухин, я — разработчик в МойОфис. Занимаюсь мобильной версией

habr.com/ru/companies/ncloudte

#React_Native #crossplatform #mobile_development #crossplatform_mobile_programming #performance #react #мойофис #reactjs #reactjs

2025-05-12

Погружаемся в пуши. Создаём свою альтернативу сервисам рассылки Push

Всем привет! На связи Вадим, старший разработчик компании STM Labs. Хотите избавиться от ограничений пуш-сервисов и взять пуш-уведомления под полный контроль? В этой статье мы глубоко погрузимся в процессы работы пуш-уведомлений, рассмотрим пример создания своего транспорта пушей и создадим Flutter-плагин для поддержки собственного решения.

habr.com/ru/companies/stm_labs

#pushуведомления #ios #android #flutter #dart #mobile_development #java #swift

2025-04-11

Сделай удобно: подборка UI/UX-кейсов из цифровых и нецифровых продуктов (#12)

Продолжаю изучать различные UI/UX/CX кейсы в мобильных приложениях, веб-сайтах и в реальном мире. Дизайнерам и менеджерам по продукту, чтобы вдохновиться и добавить в заметки. Под катом: Aviasales, Яндекс.Карты, Яндекс.Поиск, Airbnb, Citroen.

habr.com/ru/articles/900014/

#мобильное_приложение #продукт #продакт_менеджмент #дизайн #ui #ux #дизайн_мобильных_приложений #ux_дизайн #mobile_development #mobile_design

2025-04-11

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

Flutter & GitLab CI/CD. Подготовка и настройка физической машины В мире мобильной разработки, где скорость и стабильность доставки приложений определяют успех, выбор инструментов для автоматизации становится особенно важным. Работая мобильным разработчиком в TAGES более пяти лет, я убедился, что использование self-hosted решений дает значительные преимущества в гибкости, надежности и контроле над процессами. Одним из таких мощных инструментов является GitLab – платформа, которая позволяет не только управлять кодом, но и настраивать полноценные CI/CD -процессы. Эта статья станет первым шагом на пути к полной автоматизации сборки и доставки Flutter -приложений. Мы разберем, как превратить вашу физическую машину в надежный инструмент для автоматизации. В конце статьи у вас будет готовая машина, которая сможет запускать и обрабатывать задачи из GitLab .

habr.com/ru/articles/899434/

#flutter #gitlab #gitlabrunner #gitlab_ci #cicd #mobile #mobile_development #dart #shell #bash

2025-03-28

Сделай удобно: подборка UI/UX-кейсов из цифровых и нецифровых продуктов (#11)

Продолжаю изучать различные UI/UX/CX кейсы в мобильных приложениях, веб-сайтах и в реальном мире. Дизайнерам и менеджерам по продукту, чтобы вдохновиться и добавить в заметки. Под катом: BBVA, Duolingo, Google Photos, Wise, Дзен.

habr.com/ru/articles/895242/

#дизайн #ux_дизайн #ui #ux #мобильное_приложение #продукт_менеджмент #mobile_development #mobile_design #дизайн_мобильных_приложений

2025-03-03

Сделай удобно: подборка UI/UX-кейсов из цифровых и нецифровых продуктов (#8)

«Сделай удобно» #1 . «Сделай удобно» #2 . «Сделай удобно» #3 . «Сделай удобно» #4 , «Сделай удобно» #5 , «Сделай удобно» #6 , «Сделай удобно» #7 . Продолжаю изучать различные UI/UX/CX кейсы в мобильных приложениях, веб-сайтах и в реальном мире. Дизайнерам и менеджерам по продукту, чтобы вдохновиться и добавить в заметки. Под катом: Github, BBVA, One, Google, Mimo.

habr.com/ru/articles/887586/

#дизайн #ui #ux #мобильное_приложение #продукт #продукт_менеджмент #mobile_development #mobile_design #дизайн_мобильных_приложений #дизайн_мобильных_сайтов

2025-02-07

Современные подходы к управлению UI: low-сode & Backend-Driven UI

Привет, меня зовут Михаил Шевченко. В Авито я проектирую и разрабатываю backend low-code платформы Bricks. В этой статье рассказываю о том, почему в Авито было принято решение развивать собственные low-code-решения и Backend-Driven UI, объясняю их устройство и делюсь достигнутыми результатами.

habr.com/ru/companies/avito/ar

#BDUI #интерфейсы #backend_driven_ui #android #ios #мобильные_приложения #mobile_development #backend_driven #low_code #lowcode

2025-01-19

О важности участия в офлайн-комьюнити и посещении офиса Google в Лондоне

Привет!) Меня зовут Анна Наумова, я Android-разработчик, пишу на языке Kotlin, живу в Санкт-Петербурге, уже два с половиной года тружусь в команде разработки самого популярного российского корпоративного мессенджера IVA Connect и периодически участвую в еженедельных офлайн-встречах IT-сообщества «Genesis - Изобретатели» в Санкт-Петербурге. В этой статье я хочу рассказать о том, как зарождалось и развивалось наше сообщество, что интересного произошло за это время, в каких событиях мы поучаствовали, и почему разработчикам крайне важно периодически собираться лично, а не только общаться в сети, а также о посещении офиса Google в Лондоне.

habr.com/ru/articles/874796/

#андроид #android #мобильная_разработка #комьюнити #сообщество #сообщество_разработчиков #mobile_development

Client Info

Server: https://mastodon.social
Version: 2025.07
Repository: https://github.com/cyevgeniy/lmst