Organisationen weltweit wetteifern darum, Anwendungen zu entwickeln, die ihre Kunden dort erreichen, wo sie sich aufhalten – und das bedeutet häufig auf Mobiltelefonen und Tablets. Langsame und fehlerbehaftete mobile Apps frustrieren die Nutzer oder treiben sie sogar zur Konkurrenz.
Hervorragende Nutzererlebnisse auf einer Vielzahl mobiler Geräte und Plattformen zu schaffen, ist unerlässlich, doch Performance-Probleme zu erkennen und zu beheben, kann schwierig und zeitaufwendig sein. Zwar ist es wichtig, eine Anwendung vor ihrer Veröffentlichung zu testen, doch Testumgebungen bilden die realen Bedingungen häufig nicht ab, sodass Performance-Regressionen möglicherweise unentdeckt bleiben.
Um die frustrierendsten Performance-Probleme zu erkennen, müssen Teams für die Entwicklung mobiler Anwendungen untersuchen, was auf den Geräten der Nutzer geschieht. Dazu benötigen sie Einblick darin, wie schnell die App startet, wie lange HTTP-Anfragen dauern, wie viele langsame und eingefrorene Frames es gibt, wie schnell Ansichten geladen werden und mehr.
Zwar gibt es zahlreiche zu berücksichtigende Kennzahlen, doch im Folgenden werden die fünf wichtigsten vorgestellt, die jedes mobile Team erfassen sollte, um besser zu verstehen, wie sich eine App verhält.
1. Absturzfreie Nutzer und Sitzungen
Ein Absturz gilt als nicht behandelter Fehler. Er kann während der anfänglichen Ladephase einer Anwendung oder jederzeit während ihrer Nutzung auftreten. Der Prozentsatz der Nutzer, bei denen kein Absturz aufgetreten ist, sowie die Anzahl der Sitzungen, die nicht mit einem Absturz der Anwendung endeten, sind wichtige KPIs zur Messung der Stabilität einer Anwendung.
Das Erfassen und Vergleichen dieser Zahlen von Release zu Release kann außerdem Trends sichtbar machen und wertvolle Erkenntnisse über den Zustand des Codes liefern.
2. Kalt- und Warmstartzeiten von Apps
Wenn ein Nutzer auf ein App-Symbol tippt, sollte die App schnell starten. Die Startzeit einer App bezeichnet die Zeitspanne zwischen dem Start des Prozesses und dem Abschluss der Darstellung der zugehörigen Aktivität auf dem Bildschirm.
Apple empfiehlt, dass iOS-Apps höchstens 400 ms benötigen, um den ersten Frame darzustellen. Die Google Play Console warnt Android-Entwickler, wenn die Startzeiten einer App zu lang sind. Das gilt unter anderem, wenn ein Kaltstart (also der Start einer App zum ersten Mal oder nach einem Neustart oder Update) länger als 5 Sekunden dauert oder ein Warmstart (der Start einer App, die mindestens einmal geöffnet wurde und sich teilweise im Speicher befindet) länger als 2 Sekunden dauert.
Unabhängig von der Plattform ist es entscheidend, dass eine App schnell startet, denn dies ist der erste Kontakt eines Nutzers mit einem Unternehmen, und lange Ladezeiten hinterlassen einen schlechten ersten Eindruck. Unter iOS, Mac Catalyst, tvOS und Android sollten Unternehmen erfassen, wie lange ihre App benötigt, um den ersten Frame darzustellen. Diese Informationen können dazu beitragen, die Dauer des App-Starts zu verbessern.
3. Langsame und eingefrorene Frames
Eine nicht reagierende Benutzeroberfläche, ruckelnde Animationen und andere Ruckler in Apps verärgern Nutzer und beeinträchtigen das Nutzererlebnis. Zwei mobile Kennzahlen zur Messung dieser Probleme sind langsame und eingefrorene Frames.
Ein Smartphone oder Tablet stellt typischerweise 60 Frames pro Sekunde (fps) dar, wobei die Bildrate bis zu 120 fps betragen kann. Bei 60 fps gilt ein Frame als langsam, wenn eine App für seine Darstellung länger als 16,67 ms benötigt. Eingefrorene Frames sind UI-Frames, deren Darstellung länger als 700 ms dauert. Bei einer reibungslos laufenden App sollte keines von beidem auftreten.
4. User Misery
User Misery ist eine nutzergewichtete Performance-Kennzahl zur Bewertung des relativen Ausmaßes der Anwendungs-Performance. Entwickler können zwar das Verhältnis verschiedener Schwellenwerte für Antwortzeiten untersuchen, doch User Misery zählt die Zahl der eindeutigen Nutzer, die auf Grundlage des Vierfachen des Schwellenwerts für eine zufriedenstellende Antwortzeit (ms) frustriert waren. User Misery hebt Transaktionen mit den größten Auswirkungen auf die Nutzer hervor.
Behebung von Performance-Problemen bei mobilen Anwendungen
Diese mobilen Kennzahlen können wertvolle Einblicke in das Nutzererlebnis liefern und Entwicklern helfen, besser zu verstehen, wie sich Codeänderungen auf ihre Anwendungen auswirken. Rückgänge bei absturzfreien Sitzungen oder Nutzern, langsame Kalt- und Warmstarts sowie langsame oder eingefrorene Frames sind allesamt wichtige Anzeichen dafür, dass die Performance nachlässt. Es sollte unverzüglich gehandelt werden, um die Ursache der Probleme zu ermitteln.
Eine effektive Methode zur Behebung von Performance-Problemen bei mobilen Anwendungen ist verteiltes Tracing, also eine Methode zur Aufzeichnung der miteinander verbundenen Vorgänge mehrerer Services. Diese Vorgänge werden typischerweise durch Anfragen von einem Service an einen anderen ausgelöst, wobei eine „Anfrage“ eine tatsächliche HTTP-Anfrage oder eine über eine Aufgabenwarteschlange beziehungsweise auf andere asynchrone Weise angestoßene Verarbeitung sein kann.
Obwohl es sich dabei um eine Standardtechnologie handelt, mit der sich nachvollziehen lässt, was in verteilten Services geschieht, ist sie für mobile Anwendungen noch relativ neu. Teams, die die Performance mobiler Anwendungen verwalten und optimieren möchten, werden letztlich großen Erfolg haben, wenn sie die richtigen Kennzahlen überwachen und Techniken des verteilten Tracings einsetzen, um mobile Anwendungen effizienter zu debuggen.
Über den Autor:
Philipp Hofmann, Softwareentwickler, Sentry


