Monzo — это банк и приложение, предлагающее цифровые финансовые услуги. Их миссия — заставить деньги работать на всех. Дизайн-система Monzo начала отходить от принципов Material Design, поэтому им требовался простой способ создания и поддержки постоянно развивающихся пользовательских компонентов . Поэтому они выбрали Jetpack Compose.
Что они сделали?
Благодаря Compose компоненты Material Design предоставляются как слой поверх базовых API, не зависящих от системы дизайна. Monzo использовала базовые API для создания собственной библиотеки компонентов, используя компоненты Material в качестве основы. Сначала они переносили по одному экрану за раз, а теперь используют Compose на всех новых экранах. Сейчас Compose используется в продакшене всеми разработчиками Android: «Мы не столкнулись с какими-либо серьёзными проблемами и поэтому были достаточно уверены, чтобы начать использовать его для некоторых избранных новых функций, а в конечном итоге и для всех новых функций».
Результаты
Команда Monzo создала компоненты, которые позволяют легко создавать новые экраны: «Компоненты, которые мы предоставляем «из коробки» , значительно упрощают процесс создания экрана во время обучения Compose. API на основе слотов — это фантастический шаблон, который позволяет нам легко создавать более крупные компоненты из множества небольших строительных блоков».
Благодаря Compose команда Monzo смогла создать более качественное приложение, добавив замечательные функции, которые раньше не могли реализовать в рамках своих спринтов: «В качестве примера можно привести анимацию — её так легко добавить в Compose, что нет причин не анимировать такие вещи , как изменение цвета, размера или высоты. Эти «приятные» анимации часто слишком сложны, чтобы оправдать усилия и сложность системы View».
Их код стал короче, его стало проще читать, понимать и поддерживать: «Декларативный код гораздо проще понимать, чем код, управляющий изменяемой иерархией пользовательского интерфейса. Кроме того, гораздо проще отслеживать код , когда он написан на одном языке и часто в одном файле, чем переключаться между Kotlin и XML. Даже не заставляйте меня начинать говорить о темах и стилях XML! В Compose гораздо проще разобраться с темами . Наша тема состоит только из определяемых нами свойств, значения одинаковы на всех устройствах, а поскольку она написана на Kotlin, её очень легко искать и отслеживать в IDE».
Compose позволил команде Monzo легко протестировать своё приложение и убедиться в его доступности: «Это помогло нам писать менее уязвимые тесты, которые работают надёжно и дают нам уверенность в том, что наше приложение действительно работает в руках пользователей. Тестирование через систему семантики также гарантирует, что наши экраны по крайней мере достаточно доступны по умолчанию ».
Начать
Узнайте больше о Compose .