Twitter ist eine der am weitesten verbreiteten 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: „In einem Wort: unglaublich. Intern bezeichnen wir sie als Android UI 2.0. Es ist sehr schwierig, wieder auf unser altes View-System zurückzugreifen. Das hat unsere Effizienz und Geschwindigkeit bei Dingen gesteigert, die wir speziell in Compose entwickelt haben.“
Sie haben Verbesserungen bei der Geschwindigkeit von Entwicklung und Tests festgestellt: „Die Bearbeitungszeit für Designänderungen bei allem, was wir in Compose übernommen haben, ist viel kürzer als zuvor. Außerdem führen wir sehr viele Tests im Rahmen unserer 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 umsetzen, was sonst über mehrere XML-Dateien verteilt war, die für Attributdefinitionen und Zuweisungen über mehrere Ebenen von Theme-Overlays verantwortlich waren. Die Reimplementierung 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.“