Мобильная разработка за неделю #495 (26 июня — 2 июля)
В нашем Telegram-канале Mobile Insights, еще больше материалов для мобильных разработчиков, а в IT Insights — об интересном коде и технологиях. Подключайтесь!


Пишем под самую популярную мобильную ОС


Привет из Google I/O 2023. Сегодня, в прямом эфире из Маунтин-Вью, мы объявляем о выпуске Dart 3 - самого крупного релиза Dart на сегодняшний день! Dart 3 содержит три основных усовершенствования. Во-первых, мы завершили путь к 100% надёжная null безопасности. Во-вторых, мы добавили новые возможности языка для записей, шаблонов и модификаторов классов. В-третьих, мы заглядываем в будущее, где мы расширим поддержку наших платформ, добавив нативный код для веб с помощью Wasm-компиляции. Давайте разберемся во всём в деталях.
Практика скриншот-тестирования получает все большее распространение в сфере андроид-разработки, одним из свидетельств чего можно считать появление новых библиотек.
Меня зовут Олег Осипенко и эта статья является развитием моего доклада, посвященного опыту внедрения скриншот-тестирования, который я презентовал на прошедшей недавно в Екатеринбурге конференции DUMP. Отдельную часть доклада я посвятил разбору имеющихся библиотек, но, будучи ограничен временными рамками доклада, я не мог подробно остановиться на их особенностях. И сейчас я хотел бы восполнить это упущение.

Server Driven UI в Альфа Банке — это низкоуровневый и гибкий подход для реализации динамической отрисовки UI, управляемый с сервера. Если дословно перевести, то SDUI переводится как пользовательский интерфейс (UI), управляемый сервером. На деле так и получается — API сообщает фронту, что и с каким содержимым отображать.
Например, если дизайнер указал, что цвет фона в UI-компоненте кастомизируется, то SDUI модель для этого компонента должна по умолчанию уметь настраивать цвет с бэкэнда. Аналогично со всеми другими свойствами компонентов: шрифт, размер, форма.
В статье расскажу, как мы максимально приблизили SDUI к дизайн-системе Альфа Мобайла, чтобы с его помощью отрисовать любой UI, который нам позволяет сделать дизайн-система. А также о том, как развивался SDUI, что в нём содержится, как работает и когда SDUI использовать всё же не стоит.


В современном мире мобильные приложения играют важную роль в нашей повседневной жизни. Разработка мобильных приложений стала все более популярной, и существует множество фреймворков и инструментов для создания кросс-платформенных приложений. В этой статье мы рассмотрим процесс разработки мобильных приложений с использованием Ionic, Vue 3 и Capacitor, сочетающих в себе преимущества гибкости Vue.js и возможности кросс-платформенной разработки Ionic и Capacitor. Вперед под кат)

Приветствую всех читателей. Меня зовут Роман Доронин. Уже 2 года я iOS-разработчик в компании СберЗдоровье, работаю в платформенной команде. Именно здесь я близко познакомился с понятием фича флага и увидел всю силу этого инструмента.
Цель этой статьи — не рассказывать про механизм работы фича флагов, а показать, как можно сделать удобный инструмент управления ими. Поэтому эта статья подойдет тем, кто уже знаком с этим инструментом и знает принципы его работы.

Jetpack Compose — относительно молодая технология написания декларативного UI. Множество разработчиков даже не предполагают, что пишут неоптимальный код в такой критически важной части, и впоследствии это приводит к неожиданной низкой производительности и проседании метрик.
Наша команда Ozon Seller также столкнулась с этой проблемой. Мы решили собрать воедино все советы и наработки по написанию оптимизированного Compose-кода. Активное применение этих советов при оптимизации существующих экранов и написании новых существенно улучшило наши метрики: длительность лага по отношению к длительности скролла (hitch rate; чем меньше, тем лучше) экранов со списками упала в среднем с 15-19 % до 5-7 % (на 90-м перцентиле). Все эти советы и наработки мы описали в этой статье. Она будет полезна и начинающим, и опытным разработчикам, в ней подробно описаны оптимизации и механизмы Compose, а также рассказано про слабо задокументированных особенности и исправления ошибок, которые есть в других статьях. Давайте же начнём.

Как инструмент проектирования может работать лучше для разработчиков? Этот вопрос мы задаем себе и нашему сообществу. Сегодня мы рады представить Dev Mode - новое рабочее пространство в Figma, созданное для того, чтобы разработчики получали то, что им нужно, когда им это нужно, используя инструменты, которые они используют каждый день.

История развития приложений для Android прошла несколько заметных этапов. Были небольшие приложения, работающие локально, клиент-серверные приложения, экосистемы приложений и, наконец, суперапы (super-app). Каждый из этих этапов повышал планку сложности, порождал новые уязвимости и заставлял разработчиков все больше заботиться о безопасности как самих приложений, так и данных, которыми они оперируют. Развивалась и сама операционная система — она давала разработчикам больше возможностей и механизмов обеспечения безопасности.
Эта статья о том, как эволюционировали уязвимости мобильных приложений, что на это влияло, какие уязвимости актуальны сейчас и какие ждут нас в будущем.

Ранее мы с вами познакомились с 2 группами тестирования, расположенными в основании и на вершине пирамиды тестирования. Пришло время познакомиться с единственной, не рассмотренной на данный момент и наиболее интересной по моему мнению частью – интеграционным тестированием.

Всем привет! Меня зовут Иван, я - android-разработчик в компании Joy Dev.
Здесь будет знакомство с Compose и его магическими побочными эффектами . Статья рассчитана на новичков и любителей. Первая часть статьи будет посвящена экскурсу в термины и особенности Compose, вторая - расскажет о таком явлении, как побочные эффекты: что это и как работает.

Такой вопрос возник у меня однажды. А потом еще раз. И я решил разобраться.
Спойлер: конкретного ответа у меня нет. Зато есть исследование.

Писать стабильные UI-тесты для Android-приложений — непростая задача. Здесь против ваших тестов работают обилие девайсов, нестабильность эмуляторов, многообразие поддерживаемых версий ОС, а ещё — ваши бэкенд-разработчики. Почти все мобильные приложения требуют для своей работы бэкенд и не могут показать даже приветственный экран без подгрузки данных. Поэтому для UI-тестов очень важно уметь приводить бэкенд в нужное для каждого тестового сценария состояние.
Сегодня мы выпускаем в open-source собственную библиотеку MockWebServer DSL. Она помогает удобно писать обработчики запросов на бэкенд в Android-тестах.


В процессе публикации своего приложения в RuStore, я столкнулся с проблемой обновления сборки, первоначально-установленной из Google Play. Дело в том, что несколько лет назад, когда я размещал приложение в Google Play, я доверил управление ключами подписи Google App Signing. Это значит, что мой локальный ключ используется в качестве "загрузочного", а пользователи на устройства получают уже сборки, подписанные внутренним ключом Google. Прямого доступа к этому ключу нет, и, соответственно, я не могу подписать им сборку для RuStore для бесшовного обновления приложения.

Когда-то в Android были времена, когда запустить задачу в фоне было просто и гарантии ее работы были высоки. Теперь же в ОС есть множество ограничений: работа в фоне, доступ к файловой системе, системы оптимизации расхода батарейки, разрешения, часть которых требует одобрения модераторов Google Play. Разработчикам приходится работать в условиях всех этих ограничений и учитывать их при разработке функций. В рамках этой статьи я хочу разобраться с ограничениями, которые есть на разных версиях Android, чтобы вы смогли лучше понимать, что может происходить.

Российский магазин приложений RuStore собирает самые интересные и важные новости, которые вы могли пропустить. В этом дайджесте — обновление Flutter, Android Studio и библиотеки Android Jetpack, а также аналитика по заработку на мобильных приложениях и включение монетизации самозанятых в нашем сторе.


Всем привет! Меня зовут Миша Вассер. Я руковожу мобильной разработкой в AGIMA, а ещё я наставник на курсе «Android-разработчик» в Яндекс Практикуме. Мы на курсе регулярно делимся со студентами полезными материалами. Сегодня публикую подборку, которая поможет новичку начать свой путь в Android-разработке.