Josh ist eine in Indien entwickelte App für Kurzvideos, die im August 2020 eingeführt wurde. Die App gehört mit über 124 Millionen monatlich aktiven Nutzern und 60 Millionen täglich aktiven Nutzern zu den am schnellsten wachsenden Short-Video-Apps in Indien.
Josh für eine Vielzahl von Geräten (High-End, Mittelklasse, Low-End) zu optimieren und auf allen Geräten eine einheitliche Nutzererfahrung zu bieten, ist für jeden App-Entwickler eine große Herausforderung. Die Entwickler von Josh waren sich dessen von Anfang an bewusst. Die Verbesserung der Android Vitals war eine wichtige Aufgabe in den Sprints. Dabei wurde darauf geachtet, die Nutzerzufriedenheit durch eine Verbesserung der App-Startzeit und Reaktionsfähigkeit zu steigern.
Auch die Reaktionsfähigkeit der App und die Startzeit waren wichtig, da Videos das primäre Format waren, mit dem Nutzer in der App interagierten und das sie sich ansahen. Ruckler im Videostream oder Unterbrechungen bei den verschiedenen Interaktionen konnten schnell dazu führen, dass Nutzer das Interesse verloren und die App beendeten.
Durch Investitionen in die Leistung der App-Startzeit konnte Josh die App-Startzeit für den durchschnittlichen Nutzer um 30% verbessern. Für etwa 10% der Nutzer auf älteren und Low-End-Geräten wurde die App sogar dreimal schneller.
Die Herausforderung
Die Josh-App hat in weniger als einem Jahr ein rasantes Wachstum auf über 100 Millionen MAU erlebt. Oftmals wird die App-Optimierung vernachlässigt, wenn es darum geht, produkt- oder ereignisbezogene Funktionen einzuführen. Mithilfe von App-Audits und strukturellem Feedback von Google konnten sie diese Probleme frühzeitig erkennen und einen Plan zur Behebung erstellen.
Die Umsetzung
Beim Überwachen von Android Vitals wurde eine Möglichkeit zur Verbesserung des App-Starts erkannt. Das Team beschloss, die Kaltstartzeiten zu optimieren, da sich dadurch automatisch auch die Warm- und Heißstartzeiten verbessern würden.
Mithilfe mehrerer benutzerdefinierter Traces, systrace, Android Studio Profiler und Perfetto konnte das Team eine umfassende Untersuchung durchführen und die Engpässe identifizieren. Es war klar, dass die Zeit, die von der onCreate-Methode der Application-Klasse und anderen synchronen Methoden benötigt wurde, optimiert werden konnte.
So ist das Team konkret vorgegangen:
- Jeder Codeblock, der beim Start der App ausgeführt wird, wurde profiliert.
- System-Traces mit Android-Leistungstools wie Perfetto, Systrace und Dumpsys analysiert
- Die Auswirkungen von Drittanbieter-SDKs beim Starten der App wurden untersucht und der automatische Start einiger Drittanbieter-SDKs wurde deaktiviert.
- Legacy-Bibliotheken entfernt
- Einige Module wurden zurückgestellt und im Hintergrund ausgeführt
- Die Größe der Drawables, die beim Start auf dem Splash-Screen verwendet werden, wurde reduziert und für die Bildschirmgröße optimiert.
Alle oben genannten Punkte wurden durch isolierte Tests gründlich validiert, um ihre positiven Auswirkungen auf die App zu bestätigen. Dabei wurden Kaltstarts simuliert und die neue Jetpack-Bibliothek Macrobenchmark eingebunden.
Ergebnisse
Diese Änderungen führten nicht nur zu einer sofortigen Verbesserung aller Messwerte, sondern trugen auch dazu bei, das Nutzererlebnis insgesamt zu verbessern. Außerdem konnte das Entwicklungsteam von Josh wertvolle Erkenntnisse gewinnen.
- Durch die Verbesserung der Absprungraten und der Nutzerbindung konnte Josh über 1 Million Nutzer mehr binden als im Referenzzeitraum. Durch die Konzentration auf diese beiden Messwerte konnte auch die allgemeine Interaktion in der App gesteigert werden.
- Nach der Einführung der App mit Verbesserungen beim Starten zeigten die Play Store-Bewertungen einen positiven Aufwärtstrend.
- Die App-Startzeit wurde für den durchschnittlichen Nutzer um 30% verbessert und für etwa 10% der Nutzer auf älteren und Low-End-Geräten um das Dreifache beschleunigt. Dadurch wurde die Reaktionsfähigkeit der App für diese Nutzer deutlich verbessert.
Vor allem aber hat diese Übung zur Verbesserung der Android-Vitals das gesamte Team zusammengebracht und die Motivation des Teams, insbesondere der Junior-Mitglieder, gesteigert. Das Team erkannte die Bedeutung von Vitals und nutzte einige der Erkenntnisse sogar für seine anderen Apps.
„Wenn Partner in einem Ökosystem zusammenkommen, wächst das Ökosystem gemeinsam. Die Möglichkeiten von Daten und Analysen sind beispiellos. Als Plattform, die sich in erster Linie an Creator richtet und auf Inhalte und Nutzer ausgerichtet ist, haben wir uns immer darauf konzentriert, die bestmögliche Nutzererfahrung zu schaffen. Diese hängt stark von der Stabilität der App ab. Nach der Einführung von Josh war sofort ein beschleunigtes Wachstum zu beobachten. Die enge Zusammenarbeit mit dem Google Play-Team hat uns geholfen, Probleme wie App-Stabilität und Optimierung frühzeitig zu erkennen und zu beheben. Dank unserer Zusammenarbeit mit Google konnten wir die Stabilität verbessern und die Nutzerbindung und das Nutzer-Engagement steigern.“
– Shailendra Sharma, SVP Product and Engineering, VerSe Innovation.