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 wykorzystało podstawowe interfejsy API do stworzenia 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 poczuliśmy się na tyle pewnie, że zaczęliśmy używać go w przypadku niektórych nowych funkcji, a ostatecznie w przypadku wszystkich nowych funkcji”.
Wyniki
Zespół Monzo stworzył 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 prostsze. 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 tak łatwo je dodać, ż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 warte były 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ż znacznie ł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 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ło 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.