Monzo to bank i aplikacja oferująca cyfrowe usługi finansowe. Misją firmy jest sprawienie, aby pieniądze pracowały dla wszystkich. 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, że zaczęliśmy używać go w przypadku niektórych nowych funkcji, a potem wszystkich nowych funkcji”.
Wyniki
Zespół Monzo stworzył komponenty, które ułatwiają tworzenie nowych ekranów: „Komponenty, które udostępniamy od razu, 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 – tak łatwo je dodać w Compose, ż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, a także łatwiejszy do odczytania, zrozumienia i utrzymania: „Kod deklaratywny jest znacznie łatwiejszy do zrozumienia niż kod, który manipuluje 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 chcę nawet zaczynać tematu motywów i stylów XML. Tworzenie motywów jest znacznie łatwiejsze do zrozumienia 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 za pomocą systemu semantycznego zapewnia też, że nasze ekrany są przynajmniej w rozsądnym stopniu domyślnie dostępne”.
Rozpocznij
Dowiedz się więcej o tworzeniu.