Josh zwiększa utrzymanie klientów, skracając czas uruchamiania aplikacji o 30%

Josh to indyjska aplikacja do tworzenia krótkich filmów, która została uruchomiona w sierpniu 2020 r. Jest to też jedna z najszybciej rozwijających się aplikacji z krótkimi filmami w Indiach, z której korzysta ponad 124 miliony aktywnych użytkowników miesięcznie i 60 milionów aktywnych użytkowników dziennie.

Optymalizacja aplikacji Josh na różnych urządzeniach (z wyższej, średniej i niższej półki) oraz utrzymanie standardowego działania na wszystkich z nich to trudne zadanie dla każdego dewelopera. Twórcy aplikacji Josh zdawali sobie z tego sprawę od samego początku. Ulepszanie Android Vitals było ważnym zadaniem w ich sprintach. Dużą wagę przywiązywano do zwiększania zadowolenia użytkowników poprzez skracanie czasu uruchamiania aplikacji i poprawę jej responsywności.

Ważna była też szybkość reakcji aplikacji i czas jej uruchamiania, ponieważ użytkownicy korzystali z niej głównie w celu oglądania filmów. Wszelkie zakłócenia w strumieniu wideo lub przerwy w różnych interakcjach mogły szybko spowodować utratę zainteresowania i opuszczenie aplikacji przez użytkownika.

Dzięki inwestycji w wydajność czasu uruchamiania aplikacji Josh skrócił go o 30% w przypadku przeciętnego użytkownika i 3-krotnie w przypadku ok. 10% użytkowników starszych i tańszych urządzeń.

Wyzwanie

Aplikacja Josh w ciągu niecałego roku osiągnęła ponad 100 mln aktywnych użytkowników miesięcznie. Często w wyścigu o wprowadzenie funkcji opartych na produktach lub wydarzeniach optymalizacja aplikacji schodzi na dalszy plan. Audyty aplikacji i informacje zwrotne od Google pomogły im wcześnie wykryć te problemy i wyznaczyć ścieżkę ich rozwiązania.

Jak to zrobili

Podczas monitorowania wskaźników Android Vitals wykryliśmy możliwość poprawy uruchamiania aplikacji. Zespół postanowił skupić się na skróceniu czasu zimnego startu, ponieważ automatycznie skróci to czas ciepłego i gorącego startu.

Korzystając z wielu niestandardowych śladów, narzędzi systrace, profilera Androida Studio i Perfetto, zespół przeprowadził szczegółowe badanie i wykrył wąskie gardła. Było jasne, że czas potrzebny na wykonanie metody onCreate klasy Application i innych metod synchronicznych można zoptymalizować.

Oto, co konkretnie zrobił zespół:

  • Profilowanie każdego bloku kodu wykonywanego podczas uruchamiania aplikacji.
  • Analizowanie śladów systemu za pomocą narzędzi do pomiaru wydajności Androida, takich jak Perfetto, Systrace czy Dumpsys.
  • Zbadano wpływ pakietów SDK innych firm na uruchamianie aplikacji i wyłączono automatyczne uruchamianie niektórych z nich.
  • Wyeliminowane starsze biblioteki
  • Niektóre moduły zostały odroczone i wykonane w tle
  • Zmniejszyliśmy rozmiar elementów rysowalnych używanych na ekranie powitalnym podczas uruchamiania i zoptymalizowaliśmy je pod kątem rozmiaru ekranu.

Wszystkie powyższe zmiany zostały dokładnie sprawdzone w izolacji, aby potwierdzić ich pozytywny wpływ na aplikację. Przeprowadziliśmy symulacje zimnego startu i zintegrowaliśmy nową bibliotekę Jetpack Macrobenchmark.

Wyniki

Zmiany te nie tylko spowodowały natychmiastową poprawę wszystkich danych, ale także zwiększyły ogólną wygodę użytkowników i dostarczyły zespołowi deweloperów w Josh cennych informacji.

  • Poprawa współczynnika odrzuceń i utrzymania użytkowników pomogła aplikacji Josh utrzymać ponad milion użytkowników w porównaniu z wartością bazową. Skupienie się na tych 2 rodzajach danych poprawiło też ogólne zaangażowanie w aplikacji.
  • Po wprowadzeniu ulepszeń w aplikacji oceny w Sklepie Play wykazywały tendencję wzrostową.
  • Czas uruchamiania aplikacji został skrócony o 30% w przypadku przeciętnego użytkownika i 3-krotnie w przypadku ok. 10% użytkowników starszych i tańszych urządzeń, co znacznie poprawiło szybkość reakcji aplikacji.

Co ważniejsze, to ćwiczenie w zakresie poprawy podstawowych wskaźników Androida zjednoczyło cały zespół i zwiększyło motywację jego członków, zwłaszcza tych z mniejszym doświadczeniem. Potwierdziło to znaczenie wskaźników i spowodowało, że zespół wykorzystał niektóre wnioski w innych aplikacjach.

„Gdy partnerzy w ekosystemie współpracują ze sobą, ekosystem rozwija się jako całość. Potęga danych i analityki jest bezprecedensowa. Jako platforma, która stawia na pierwszym miejscu twórców, treści i konsumentów, zawsze koncentrowaliśmy się na tworzeniu jak najlepszych wrażeń użytkownika, co w dużej mierze zależy od stabilności aplikacji. Po wprowadzeniu tej funkcji Josh od razu zauważył przyspieszony wzrost. Ścisła współpraca z zespołem Google Play pomogła nam na wczesnym etapie zidentyfikować i wyeliminować problemy, takie jak stabilność i optymalizacja aplikacji. Dzięki współpracy z Google udało nam się zwiększyć stabilność oraz poprawić utrzymanie i zaangażowanie użytkowników”.

– Shailendra Sharma, starszy wiceprezes ds.produktów i inżynierii, VerSe Innovation