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