Twitter ist eine der am häufigsten genutzten Social-Media-Plattformen, auf denen Nutzer jederzeit sehen können, was in der Welt passiert. Das Entwicklerteam begann, Jetpack Compose zu verwenden, um sein Designsystem zu modernisieren.
Vorgehensweise
Die UI-Komponenten und das Theming-System der Twitter App wurden vor etwa 10 Jahren entwickelt und bestanden aus Legacy-Komponenten, die einen enormen Wartungsaufwand erforderten. Das Entwicklerteam wollte daher ein neues, skalierbares Designsystem mit zustandslosen UI-Komponenten entwickeln, die einfach zu verwenden und zu warten sind und sich intuitiv implementieren, erweitern und anpassen lassen. Aus diesem Grund entschied es sich für Compose.
Das Team begann mit dem Ersetzen von Komponenten über das interne Designsystem und führte Compose auf neuen Bildschirmen ein, die nicht von der alten Einrichtung abhängig sind.
Ergebnisse
Compose hat eine solide Antwort auf das Ziel geliefert, die Entwicklergeschwindigkeit, die Zufriedenheit der Entwickler und die Wartbarkeit von UI-Code/-Komponenten zu verbessern. Nachdem die Entwickler von Twitter begonnen hatten, Compose zu verwenden, sagten sie, dass es „mit einem Wort: unglaublich. Intern bezeichnen wir es als Android UI 2.0. Es ist sehr schwierig, wieder auf unser altes View-System zurückzugreifen. Dadurch konnten wir Effizienz und Geschwindigkeit steigern bei Dingen, die wir speziell in Compose entwickelt haben.“
Sie haben Verbesserungen bei der Geschwindigkeit der Entwicklung und des Testens festgestellt: „Die Bearbeitungszeit für Designänderungen für alles, was wir in Compose übernommen haben, ist viel kürzer als zuvor. Außerdem führen wir sehr viele Tests bei unseren Produktänderungen durch. Das geht mit Compose und Kotlin viel besser und schneller.“
Der Code ist nicht nur intuitiver, sondern lässt sich auch schneller schreiben und ist leichter zu lesen: „Außerdem ist unsere Theming-Ebene viel intuitiver und lesbarer. Wir konnten in einer einzigen Kotlin-Datei das erreichen, was sonst über mehrere XML-Dateien verteilt war, die für Attributdefinitionen und Zuweisungen über mehrere Ebenen von Theme-Overlays verantwortlich waren. Die Implementierung unserer gesamten Theming-Struktur im Kontext von Compose dauerte nur wenige Tage bis Wochen und hat sich bereits als viel robuster und intuitiver erwiesen als unser altes Theming-System.“