Duolingo ist die weltweit beliebteste Sprachlern-App, weil sie es geschafft hat, etwas, das Menschen in der Vergangenheit als entmutigend empfunden haben, einfach und unterhaltsam zu gestalten. Diese lockere Sprache erfordert einen ständigen Strom neuer Funktionen und Tests – und eine reibungslos funktionierende App, die all das bieten kann. Für Duolingo könnte eine nicht reagierende App auf einem Gerät irgendwo auf der Welt einen potenziell demotivierten Lernenden bedeuten. Damit verpflichten sie sich zu einer herausragenden App, insbesondere auf den Android-Geräten, die von 60 % ihrer Lernenden verwendet werden. Dazu gehört auch der CEO, der die App auf einem Einsteiger-Smartphone im Blick behält. Als das Android-Entwicklungsteam von Duolingo einen Anstieg der Fehler „App reagiert nicht“ und der verworfenen Frames bemerkte und sogar handschriftliche Beschwerden erhielt, reagierte es sofort.
Sie fanden bald die Ursache für die Leistungsprobleme der App: Die vorhandene Softwarearchitektur ließ sich nicht gut mit dem Wachstum des Teams skalieren. Notwendige Updates führten zu Leistungseinbußen bei der App. Die Entwickler verbrachten mehr Zeit mit dem Beheben von Fehlern und weniger mit der Einführung neuer umsatzgenerierender Funktionen. Die veraltete Softwarearchitektur wurde langsam zu einer unzumutbaren Belastung – für das Unternehmen, die Geschwindigkeit des Teams und vor allem für die Nutzer. Sie mussten ihre Codebasis von Grund auf neu aufbauen.
Umsetzung
Am Anfang war das Team gespalten. Sollte das jetzt ihre einzige Priorität sein? Eine Gruppe war der Meinung, dass es wichtiger sei, weiterhin neue Funktionen zu veröffentlichen und den Umsatz zu steigern, während die andere glaubte, dass es der richtige Weg sei, sich ganz auf einen Android-Neustart zu konzentrieren. Schließlich kamen sie zu dem Schluss, dass der zunehmende Aufwand zur Bekämpfung von Regressionen das Risiko birgt, dass ihre Roadmap völlig aus dem Ruder läuft. Sie mussten alles geben.
Das Team entschied sich für eine immer beliebtere Lösung. Sie beschlossen, ihre App mit Model-View-ViewModel neu zu schreiben. Dieses von Google unterstützte Softwaremuster ermöglicht es Entwicklern, die Architektur einer App zu optimieren, indem sie für eine klare Trennung der Zuständigkeiten sorgen. Mit MVVM konnten sie die Entwicklung der grafischen Benutzeroberfläche (der Ansicht) von der Entwicklung der Geschäftslogik (dem Modell) trennen. Sie könnten klare und vereinbarte Muster festlegen, um sowohl ihren Ansatz für neue Funktionen als auch die Einarbeitung neuer Entwickler zu erleichtern.
Durch die Aufteilung jeder Funktion in ein eigenes Modul konnte das Team schnell wieder produktiv werden, da es kleinen Gruppen die Möglichkeit gab, parallel an jeder Funktion zu arbeiten. So wurde die Geschwindigkeit erhöht und gleichzeitig die Anzahl der Fehler reduziert.
Sie haben diese neue Architektur mit Bibliotheken aus dem Android Jetpack implementiert, darunter Dagger und Hilt, um Code zu schreiben, der auf allen Android-Versionen und Geräten konsistent funktioniert. Durch diese beiden Ergänzungen konnten sie besser gekapselte Funktionen erstellen und die integrierten Android-Module effizienter nutzen.
Ergebnisse
Diese Leistungssteigerungen haben die Nutzerfreundlichkeit für Lernende auf Android-Geräten und insbesondere auf Einstiegsgeräten erheblich verbessert. Außerdem ist die App auf Flaggschiffgeräten jetzt reaktionsschneller und Animationen werden flüssiger dargestellt. Die tägliche Rate der ANR-Fehler („App reagiert nicht“) ist um 41 % gesunken. Der Prozentsatz der Zeit, in der die App unter die Ziel-Framerate gefallen ist, ist um 28 % gesunken. Vor allem aber konnten sie die Geschwindigkeit beim Scrollen durch wichtige Bildschirme um 40% steigern.
Hände halten Notizen mit den folgenden Informationen: 41% weniger ANR-Fehler, 28% höhere Framerate und 40% schnellere Ausführung.
Die Überarbeitung dauerte acht Wochen und machte die App für alle Duolingo-Nutzer deutlich ansprechender und unterhaltsamer. In den sechs Monaten seitdem hat das Team keine signifikanten neuen Leistungseinbußen festgestellt, sodass es sich wieder auf die Einführung umsatzgenerierender Funktionen konzentrieren kann. Die Entscheidung, die Bemühungen des Teams auf die Qualität zu konzentrieren, hatte sich ausgezahlt.
Dank des Engagements von Duolingo ist die App weltweit führend im Bereich Sprachlern-Apps. Ihr Engagement für herausragende Apps – die Entwicklung innovativer Lernangebote ohne Beeinträchtigung der Barrierefreiheit – hat sie dazu bewogen, bei Google zu bleiben.
Erste Schritte
Wenn Sie mehr darüber erfahren möchten, wie Duolingo die Jetpack-Bibliotheken integriert hat und wie Model-View-ViewModel die App verbessert hat, lesen Sie unsere technische Fallstudie für Entwickler.