Перейти к содержанию

Google Play

Google переписала пользовательский интерфейс Play Store с помощью Jetpack Compose, сократив код до 50% и ускорив рендеринг

Jetpack Compose — это то, как Google хочет, чтобы разработчики Android создавали пользовательские интерфейсы приложений в будущем. Сегодня Google подробно рассказала, как Play Store использовал Jetpack Compose для переписывания своего пользовательского интерфейса.

В 2020 году Google решила обновить весь технологический стек витрины Play Store, поскольку «существующий код был старше 10 лет и накопил огромное количество технического долга за бесчисленные выпуски платформы Android и обновления функций».

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

Рассмотрев варианты, компания остановилась на Jetpack Compose, который тогда еще находился на стадии pre-Alpha и не достиг бы стабильной версии 1.0 до июля 2021 года.

Что касается продуктивности разработчиков — над приложением работают «сотни инженеров», и команда Google Play обнаружила, что «написание пользовательского интерфейса требует гораздо меньше кода, иногда до 50%» благодаря природе декларативного UI фреймворка. Например, таблица рейтингов в списках приложений сократилась с примерно 350 строк Java и 55 строк XML до примерно 210 строк Kotlin. Еще одним преимуществом является то, что стало проще добавлять анимации и другие функции движения, такие как кольцо загрузки/обновления вокруг значков приложений.

Google Play Jetpack Compose

Производительность была другим важным аспектом:

В результате внедрения базовых профилей Play Store отметил сокращение времени начального рендеринга страницы результатов поиска на 40%. Это колоссальный результат!

При создании часто используемых компонентов пользовательского интерфейса в Play Store, которые часто применялись в ситуациях прокрутки, мы обнаружили, что ненужные перекомпозиции приводили к пропущенным кадрам и, как следствие, к рывкам. Мы также разработали модификатор для легкого обнаружения этих перекомпозиций в наших отладочных настройках. Применив эти методы к нашим компонентам пользовательского интерфейса, мы смогли уменьшить рывки на 10-15%.

Отметив «значительное улучшение качества и состояния кода», Google использует Jetpack Compose уже более года для написания кода пользовательского интерфейса, при этом «все новые функции Play Store строятся на основе этого фреймворка».

Телефоны Samsung Galaxy получают КРУПНОЕ обновление
Хорош ли Google Pixel 8 Pro?
Google Chrome получает новый дизайн
Google Сообщения позволяют реагировать на сообщения любым смайликом
Google теперь использует Mastodon