Monzo to bank i aplikacja oferująca cyfrowe usługi finansowe. Misją firmy jest uczynienie pieniędzy narzędziem do osiągania sukcesu przez wszystkich. System projektowania Monzo zaczął odbiegać od Material Design, więc zespół chciał łatwo pisać i utrzymywać niestandardowe komponenty, które stale się rozwijają. Dlatego wybrał Jetpack Compose.
Rozwiązanie
W Compose komponenty Material Design są udostępniane jako warstwa na interfejsach API podstawowych, niezależnych od systemu projektowania. Firma Monzo wykorzystała podstawowe interfejsy API do stworzenia własnej biblioteki komponentów, korzystając z komponentów Material Design jako odniesienia. Na początku migrowali po jednym ekranie, a teraz używają usługi Compose na wszystkich nowych ekranach. Teraz wszyscy inżynierowie Androida używają Compose w produkcji: „Nie napotkaliśmy żadnych poważnych problemów, więc byliśmy na tyle pewni, że możemy zacząć używać tej technologii w przypadku wybranych nowych funkcji, a potem we wszystkich nowych funkcjach”.
Wyniki
Zespół Monzo stworzył komponenty, które umożliwiają łatwe tworzenie nowych ekranów: „Komponenty, które udostępniamy, znacznie ułatwiają tworzenie ekranów podczas nauki obsługi Compose”. Interfejsy API oparte na slotach to fantastyczny wzór, który ułatwia nam tworzenie większych komponentów z wielu małych elementów”.
Dzięki Compose zespół Monzo mógł stworzyć lepszej jakości aplikację, dodając do niej przydatne funkcje, których wcześniej nie udało się wdrożyć w ramach sprintów: „Przykładem są animacje – w Compose można je dodawać tak łatwo, że nie ma powodu, aby nie animować elementów, takich jak zmiany koloru, rozmiaru czy wysokości. Te animacje „fajne do oglądania” są często zbyt skomplikowane, aby opłacało się stosować je w systemie View”.
Ich kod jest teraz krótszy, a co za tym idzie, łatwiejszy do odczytania, zrozumienia i utrzymania: „Kod deklaratywny jest znacznie łatwiejszy do analizy niż kod, który manipuluje zmienną hierarchią UI. Łatwiej też prześledzić kod, gdy jest on napisany w tym samym języku i często w tym samym pliku, niż przełączać się między Kotlinem a XML-em. Nie wspominam nawet o tematach i stylach w pliku XML. Tematyzacja jest znacznie łatwiejsza do zrozumienia w sekcji Tworzenie. Nasza tematyka składa się tylko z zdefiniowanych przez nas właściwości, a wartości są spójne na wszystkich urządzeniach. Tematyka jest napisana w języku Kotlin, więc można ją łatwo wyszukiwać i śledzić w IDE.
Compose ułatwiło zespołowi Monzo testowanie aplikacji i zapewnienie dostępności: „Dzięki temu narzędziu udało nam się napisać testy, które są mniej podatne na błędy, działają niezawodnie i dają nam pewność, że nasza aplikacja działa prawidłowo w rękach użytkowników. Testowanie za pomocą systemu semantycznego zapewnia też, że nasze ekrany są co najmniej „w rozsądnym stopniu dostępne domyślnie”.
Rozpocznij
Dowiedz się więcej o Compose.