Case Studies
Monzo zwiększa wskaźniki skuteczności nawet o 35% dzięki prostej aktualizacji R8
2 minuty czytania
Monzo to brytyjski bank cyfrowy, który ma 15 milionów klientów i stale się rozwija. W miarę skalowania aplikacji zespół inżynierów uznał czas uruchamiania aplikacji za kluczowy obszar do poprawy, ale obawiał się, że będzie to wymagało znacznych zmian w bazie kodu.
Dzięki pełnemu włączeniu optymalizacji R8 firma Monzo osiągnęła ogromny spadek o 35% wskaźnika błędów ANR (Aplikacja nie odpowiada). Ta prosta zmiana pokazała, że skuteczne optymalizacje nie zawsze wymagają złożonych prac inżynieryjnych.
Zwiększanie skuteczności dzięki trybowi pełnemu R8
Firma Monzo uznała tryb pełny R8 za łatwe rozwiązanie, które warto wypróbować. Okazało się, że działa i poprawia skuteczność w każdym obszarze:
- Niezawodność uruchamiania: uruchamianie „na zimno” poprawiło się o 30%, uruchamianie „na ciepło” o 24%, a uruchamianie „na gorąco” o 14%.
- Szybkość uruchamiania: czasy uruchamiania P50 poprawiły się o 11%, a czasy uruchamiania P90 o 12%.
- Skuteczność: ogólny rozmiar aplikacji zmniejszył się o 9%.
- Stabilność: zmniejszenie liczby błędów ANR o 35%.
Włączanie optymalizacji za pomocą jednej zmiany
Wiele aplikacji na Androida używa nieaktualnego domyślnego pliku konfiguracyjnego, który wyłącza większość funkcji optymalizatora R8. Główną zmianą, jaką wprowadziła firma Monzo, aby odblokować te ulepszenia wydajności, było zastąpienie domyślnego pliku proguard-android.txt plikiem proguard-android-optimize.txt. Ta zmiana usuwa instrukcję -dontoptimize i umożliwia R8 prawidłowe działanie.
buildTypes {
release {
isMinifyEnabled = true
isShrinkResources = true
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
)
}
}
Po wprowadzeniu tej zmiany warto sprawdzić pliki konfiguracyjne Keep. Te pliki informują R8, które części kodu mają pozostać bez zmian (zwykle dlatego, że są wywoływane dynamicznie lub przez biblioteki zewnętrzne). Uporządkowanie niepotrzebnych reguł Keep oznacza, że R8 może zrobić więcej.
Poprawa wydajności przewijania dzięki profilom podstawowym
Aby jeszcze bardziej poprawić wrażenia użytkowników, firma Monzo wdrożyła profile podstawowe, które są ukierunkowane na wydajność przewijania i renderowania w głównym pliku danych. Ta strategia zapewniła pełną optymalizację najczęstszych ścieżek użytkowników – otwierania aplikacji i przewijania pliku danych. Wpływ na renderowanie był znaczny: wydajność przewijania P90 wzrosła o 71%, a wydajność przewijania P95 o 87%. Przewijanie w aplikacji jest teraz płynniejsze niż wcześniej.
Firma Monzo wbudowała to w proces publikowania, aby utrzymać te ulepszenia w czasie. „Generowanie profilu podstawowego uruchamiamy codziennie (przed uruchomieniem kompilacji nocnych) i po zakończeniu zatwierdzamy najnowsze zmiany” – wyjaśnia Neumayer.
Bądź na bieżąco z nowoczesnym tworzeniem aplikacji na Androida
Doświadczenie firmy Monzo pokazuje, co jest możliwe, gdy na bieżąco śledzisz rekomendacje dotyczące narzędzi do tworzenia aplikacji na Androida. Starsze aplikacje często mają problemy ze złożonym użyciem odbicia, ale firma Monzo uznała przejście za proste dzięki odpowiedniemu udokumentowaniu reguł Keep. „Zawsze dodajemy komentarz wyjaśniający, dlaczego reguły Keep są na miejscu, abyśmy wiedzieli, kiedy można je usunąć” – mówi Neumayer.
Rada Neumayera dla innych zespołów? Regularnie sprawdzaj swoje praktyki pod kątem aktualnych standardów: „Zapoznaj się z najnowszymi rekomendacjami Google dotyczącymi wydajności aplikacji i sprawdź, czy stosujesz się do wszystkich najnowszych porad”.
Aby rozpocząć i dowiedzieć się więcej o R8, wejdź na https://d.android.com/r8.
Czytaj dalej
-
r.r.
Case Studies
Karrot to hiperlokalna aplikacja na rynku peer-to-peer oparta na społeczności, która umożliwia użytkownikom kupowanie, sprzedawanie i wymienianie przedmiotów z innymi zweryfikowanymi użytkownikami. Od czasu uruchomienia w Korei Południowej w 2015 r. platforma rozszerzyła się na rynki globalne, zdobywając ponad 43 miliony zarejestrowanych użytkowników.
Thomas Ezan, Tracy Agyemang • 2 minuty czytania
-
r.r.
Case Studies
W dynamicznym świecie mediów społecznościowych uwaga użytkowników jest szybko zdobywana lub tracona. Aplikacje Meta (Facebook i Instagram) należą do największych platform społecznościowych na świecie i obsługują miliardy użytkowników na całym świecie.
Mayuri Khinvasara Khabya, Tracy Agyemang • 4 minuty czytania
-
r.r.
Case Studies
Tworzenie aplikacji na Androida na urządzenie do noszenia oznacza, że prawdziwa praca zaczyna się, gdy ekran się wyłącza.
Breana Tate, Tracy Agyemang • 4 minuty czytania
Bądź na bieżąco
Otrzymuj co tydzień najnowsze informacje o tworzeniu aplikacji na Androida na swoją skrzynkę odbiorczą.