Monzo to bank i aplikacja oferująca cyfrowe usługi finansowe. Misją firmy jest sprawienie, aby pieniądze pracowały dla każdego. System projektowania Monzo zaczął odbiegać od Material Design, więc firma potrzebowała łatwego sposobu na pisanie i utrzymywanie niestandardowych komponentów, które stale się rozwijają. Dlatego wybrała Jetpack Compose.
Rozwiązanie
W Compose komponenty Material Design są udostępniane jako warstwa nad interfejsami API niezależnymi od systemu projektowania. Monzo użył podstawowych interfejsów API do utworzenia własnej biblioteki komponentów, korzystając z komponentów Material jako punktu odniesienia. Zaczęli od migracji po jednym ekranie, a teraz używają Compose na wszystkich nowych ekranach. Obecnie Compose jest używany w produkcji przez wszystkich inżynierów Androida: „Nie napotkaliśmy żadnych poważnych problemów, więc czuliśmy się na tyle pewnie, aby zacząć używać go w przypadku niektórych nowych funkcji, a ostatecznie w przypadku wszystkich nowych funkcji”.
Wyniki
Zespół Monzo utworzył komponenty, które ułatwiają tworzenie nowych ekranów: „Komponenty, które udostępniamy od razu po wyjęciu z pudełka, sprawiają, że tworzenie ekranu podczas nauki Compose jest znacznie łatwiejsze. Interfejsy API oparte na slotach to świetny wzorzec, który bardzo ułatwia nam tworzenie większych komponentów z wielu małych elementów składowych”.
Dzięki Compose zespół Monzo mógł stworzyć aplikację o wyższej jakości, dodając atrakcyjne funkcje, których wcześniej nie udało się wprowadzić w ramach sprintów: „Jednym z przykładów są animacje – w Compose można je dodawać tak łatwo, że nie ma prawie żadnego powodu, aby nie animować takich elementów jak zmiany koloru, rozmiaru czy wysokości. Te „przydatne” animacje są często zbyt trudne, aby były warte wysiłku i złożoności w systemie View”.
Ich kod jest teraz krótszy i łatwiejszy do odczytania, zrozumienia i utrzymania: „Kod deklaratywny jest znacznie łatwiejszy do zrozumienia niż kod, który modyfikuje zmienną hierarchię interfejsu. Śledzenie kodu jest też dużo łatwiejsze, gdy jest on napisany w tym samym języku i często w tym samym pliku, a nie trzeba przełączać się między Kotlinem a XML-em. Nie wspominając już o motywach i stylach XML. Tworzenie motywów jest znacznie łatwiejsze w Compose. Nasz motyw zawiera tylko zdefiniowane przez nas właściwości, wartości są spójne na różnych urządzeniach, a dzięki temu, że jest napisany w Kotlinie, można go łatwo wyszukiwać i śledzić w IDE”.
Compose umożliwił zespołowi Monzo łatwe testowanie aplikacji i zapewnienie jej dostępności: „Pomogło nam to pisać 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 w systemie semantycznym zapewnia też, że nasze ekrany są przynajmniej w rozsądnym stopniu domyślnie dostępne”.
Rozpocznij
Dowiedz się więcej o tworzeniu.