30 % schnellere Apps – ein wichtiger Bestandteil des Erfolgsrezepts von Zomato

Zomato ist ein multinationales indisches Unternehmen, das Restaurants zusammenfasst und Speisen liefert. Es ist allein in Indien in 500 Städten tätig. Mit über 43 Millionen aktiven Kunden und durchschnittlich über 1, 5 Millionen Bestellungen pro Tag ist es einer der beliebtesten Essensbestell- und Lieferservices des Landes. Das bedeutet auch, dass Kunden eine Vielzahl von Geräten verwenden und die Netzwerkverfügbarkeit variiert. Neben schnellen Lieferungen ist es daher auch wichtig, dass die App reibungslos funktioniert.

Nutzer erwarten schnelle App-Öffnungszeiten und Reaktionsfähigkeit. Die Verbesserung dieser Messgröße wirkt sich nicht nur direkt auf die App-Vitals aus, sondern sorgt auch für mehr abgeschlossene Bestellungen und unterstützt die Strategie von Zomato, in neue Märkte zu expandieren und eine bessere Nutzererfahrung auf Geräten im unteren bis mittleren Preissegment zu ermöglichen.So kann das Unternehmen letztendlich die nächste Milliarde Nutzer erreichen. Die App-Öffnungszeiten sind auch ein Indikator für eine größere Trichtergröße, da die Nutzer den Verkaufstrichter weiter durchlaufen.

Zomato konnte durch die Konzentration auf App-Vitals beeindruckende Verbesserungen erzielen. Wenn Sie beispielsweise die Ladezeit der App um 30% verkürzen, kann die Kundenbindung am ersten Tag um etwa 90 % gesteigert werden.

Die Herausforderung

Das schnelle Entwicklungstempo von Zomato und die Konzentration auf das Hinzufügen von Funktionen, die zwar für die Kunden von Vorteil sind, führten dazu, dass der Code und die UX optimiert werden mussten. Zomato wollte nicht nur neue Funktionen hinzufügen, sondern auch die Leistung beibehalten. Da mehrere SDKs Ressourcen beanspruchten, die nicht immer erforderlich waren, musste die Codebasis optimiert und rationalisiert werden.

All das wurde durch die Expansion von Zomato in Städte der zweiten und dritten Kategorie in Indien unterstützt, in denen die Menschen hauptsächlich Geräte der unteren bis mittleren Preisklasse mit relativ begrenzter Verarbeitungskapazität verwenden. Mit der Einbeziehung dieser Geräte musste das Team dafür sorgen, dass die Nutzererfahrung genauso erstklassig ist wie bei Geräten der höheren Preisklasse.

Was haben sie getan?

Zomato hat eine einfache Rubrik verwendet, um die Gemeinkosten zu analysieren und herauszufinden, welche Lösung den besten ROI im Verhältnis zum Aufwand des Entwicklungsteams bietet. Anhand dieser Rubrik begann das Team mit einer viermonatigen Optimierungs- und Verbesserungsphase.

Der erste Schritt bestand darin, die System-Traces zu analysieren, um Probleme zu finden, eine zeitbasierte Analyse durchzuführen und die Probleme entsprechend zu priorisieren. Perfetto ist das perfekte Tool zum Analysieren, Profilieren und Tracen von Android-Prozessen. Zomato hat das Tool verwendet, um alle SDKs zu verfolgen, die beim Start der App initialisiert werden, und diejenigen zu identifizieren, die entfernt oder verzögert geladen werden können.

Das Entfernen der alten SDKs und ungenutzten Drittanbieterbibliotheken hatte oberste Priorität, da es sich um eine Aufgabe mit geringem Aufwand und hohem Nutzen handelte. Mit diesem Ansatz konnte Zomato die App-Startzeit um 20% verkürzen.

Viele Drittanbieterbibliotheken verwenden Contentanbieter, um beim Start der App initialisiert zu werden. Das wirkt sich auf die Startzeit der App aus. Zomato verwendet das Facebook SDK für die Anmeldung, aber der Nutzer hat auch andere Anmeldeoptionen. Daher ist die Initialisierung des SDK beim Start ineffizient. Mit der Einführung der App Startup-Bibliothek lädt Zomato das SDK nur, wenn der Nutzer die Facebook-Anmeldeoption auswählt. So konnten sie die Startzeit um etwa 6 % verkürzen.

Der nächste Schritt war die Verbesserung der Inflationszeit der Ansichten, da das Rendern und die Inflation der Ansicht selbst in einer komplexen UI-Struktur wie der von Zomato viel Zeit in Anspruch nehmen können. ViewStub kann die Effizienz steigern, da Ansichten erstellt, aber erst bei Bedarf in die Ansichtshierarchie eingefügt werden. ViewStubs sind effizienter als die Verwendung von View. GONE, da die Ansicht auch im Status GONE aufgebläht wird und Arbeitsspeicher und CPU-Auslastung beansprucht. Zomato hat die Ansichtshierarchie vereinfacht und Layouts zusammen mit ViewStubs in der Anmeldeaktivität zusammengeführt. Durch diese Änderungen konnte die Inflationszeit um 7 % verkürzt werden.

Der Android-Profiler hat uns bei der Optimierung der Speichernutzung geholfen, da er die CPU-Aktivität, den Speicher und das Netzwerk in Echtzeit verfolgt. Mithilfe des Profilers konnten sie die Ursache für die Sperrsituationen und den Speicher-Overhead ermitteln und das Problem entsprechend beheben. Zomato hat auch seinen Caching-Mechanismus überarbeitet, um die Anzahl der Speicherprobleme um 60% zu senken.

Aktion Vorher (Sek.) Nach (Sek.) Verbesserung
Alte SDKs und nicht verwendete Drittanbieterbibliotheken entfernt 4.873 3.813 21,74%
Lazy Loading von Bibliotheken 3.814 3.577 6,2 %
Layoutverbesserungen, ViewStubs 2.529 2.348 7,15%

App-Startzeit = App-Initialisierung + Ladezeit der Bibliotheken + Zeit für das Aufblähen der Ansicht

Ergebnisse

Die Leistungssteigerungen von Zomato haben dazu beigetragen, dass die Nutzererfahrung deutlich reibungsloser ist. Weitere Verbesserungen der Benutzeroberfläche und des Caching haben ebenfalls dazu beigetragen, die Ruckler zu reduzieren.

Die Zeit, die vergeht, bis die Startseite der App vollständig geladen und nutzbar ist, wenn Nutzer auf das App-Symbol klicken, ist ein wichtiger Geschäftsmesswert, den Zomato intern im Blick behielt. Nach der Umsetzung der Verbesserungen konnte das Unternehmen einen deutlichen Anstieg dieses Messwerts verzeichnen. Die Anzahl der Kunden, die auf einer vollständig geladenen Seite gelandet sind, ist in diesem Zeitraum um etwa 20% gestiegen.

Dadurch konnte die Kundenbindung am ersten Tag um etwa 90 % gesteigert werden. Diese Verbesserungen wirkten sich auch auf die Forward-Funnels aus.Die Gesamtrate für Bestellungen (Startseite –> Menü –> Warenkorb –> Bestellung) stieg um etwa 1,5 Prozentpunkte, was etwa 600.000 Bestellungen mehr pro Monat entspricht.

Laut dem Messwert für Kaltstarts von Firebase Performance wurde eine durchschnittliche Verbesserung von 25% erzielt. Bei Low-End- und Mid-End-Geräten betrug die Verbesserung der Kaltstartzeit der App sogar bis zu 30%.

Die Leistung der App-Startzeit ist ein wichtiger Messwert, der sich auf die Nutzerwahrnehmung auswirkt. Investitionen in die Leistungsoptimierung können sich auch erheblich auf das Unternehmen auswirken.

„Bei Zomato stand und steht die Bereitstellung und Entwicklung eines hervorragenden Kundenerlebnisses immer im Mittelpunkt unserer Philosophie. Wir sind der Meinung, dass die Leistung einer der wichtigsten Hebel ist. Daher hat unser Team mit den Entwicklertools von Google auf eine hervorragende technische Umsetzung hingearbeitet, um die Ladezeiten von Apps zu verbessern. Das hat sich in Echtzeit deutlich bemerkbar gemacht. Wir hoffen, dass wir damit eine blitzschnelle App für die Onlinebestellungen in Indien anbieten und einen Maßstab für unsere zukünftige Entwicklung setzen können.“

– Sajal Gupta, Engineering Manager, Zomato