Boehrsi.de - Blog

Jetpack Compose - Meine ersten Erfahrungen

Erstellt am event Uhr von account_circle Boehrsi in label Development
Jetpack Compose - Meine ersten Erfahrungen Bild

Ich habe in den letzten Wochen relativ eingehend erste Schritte mit Jetpack Compose gemacht. Dies ist Androids neues Framework zu Erstellung des User Interfaces. Dabei entfernt man sich weit vom bekannten Ansatz, bei welchem ausgelagertes XML genutzt und später auf die eine oder andere Art mit der eigentlichen Logik verbunden wird.
Mit Compose bewegt man sich in sehr ähnlichen Welten wie bei Flutter. Die gesamte UI wird direkt im Code definiert und entsprechend ist eine extra Verbindungsschicht unnötig. Dadurch spart man sich natürlich einiges an Boilerplate Code. Auf der anderen Seite muss man natürlich umdenken, was mir persönlich durch meinen Flutter Hintergrund relativ leicht fällt.

Announcing Jetpack Compose 1.0
via Youtube ansehen
Mit dem Abspielen des eingebundenen Videos akzeptieren Sie die Datenschutzbestimmungen von Youtube open_in_new.

Eine Struktur die vorher in LinearLayouts oder ConstraintLayouts aufgeteilt war, ist nun meist eine Verschachtelung von Columns und Rows. Selbige sind, wie auch alle andere Jetpack Compose Komponenten, @Composable Funktionen. Diese Annotation bindet die Methoden an den Jetpack Compose Kontext. Darin könnt ihr auf Komponenten der normalen Welt zugreifen, ihr könnt aber auch State gebundene Variablen erzeugen. Diese Variablen haben bei der Nutzung dann normale Werte, wie z.B. Boolean oder Int, können von Compose aber überwacht werden. Dies führt dazu das ihr einfach nur einen Wert setzt und Compose automatisch alle davon abhängigen Teile der UI neu zeichnet. Dadurch fallen wiederum einige Boilerplate Aufgaben weg. Auch hier sind die parallelen zum Flutter Denkansatz sehr deutlich spürbar, denn dort gehen Widgets quasi einen identischen Weg.
Compose ist seit wenigen Tagen in der Version 1.0 verfügbar, einige relevante angeschlossene Libraries sind allerdings noch als Beta oder Alpha verfügbar. Aufgrund der modularen Struktur von Compose kann es sein das ihr 5 bis 10 neue Libraries einbindet, die teilweise verschiedenen Versionen nutzen. Außerdem sollte ihr darauf achten möglichst aktuelle AndroidX Libraries in euren restlichen Abhängigkeiten zu nutzen, denn hier gibt es teilweise Anforderungen seitens Compose.

Nach dieser Einleitung kommen wir nun zu meinen ersten Erfahrungen. Compose ist meiner Meinung nach ein extrem guter Ansatz, welcher vor allem Flutter Nutzern sehr bekannt vorkommen wird. Aufpassen muss man allerdings etwas, denn diverse Libraries sind noch sehr frisch und somit sind Bugs nicht ausgeschlossen. Ich bin über den einen oder anderen gestolpert und entsprechend sollte man dies bei produktiv genutzten Apps im Hinterkopf behalten. Durch die einfache Integration mit z.B. ViewModels ist man mit Compose schneller beim Erstellen und Verbinden von UI und Logik. Es lohnt sich aber neben den Einsteigertutorials auch tiefergehende Informationen zu z.B. Side-Effects open_in_new zu lesen, denn diese sind teilweise Gold wert.
Während der Nutzung selbst sollte man den Wiederverwendungscharakter von Compose Methoden im Hinterkopf behalten. Baut man kleinere unabhängige Methoden, kann man selbige wiederverwenden. So kann man sich schnell eine Auswahl von häufig genutzten Komponenten erstellen. Da Compose eine direkte Preview bietet, vergesst nicht selbige auch mittels kleiner dafür erstellter Methoden zu nutzen.
Alles in allem kommt Compose bei mir gut an und ich freue mich darauf wenn weitere UI-Komponenten direkt zur Verfügung gestellt werden. Außerdem hoffe ich auf weitere Optimierungen im Bereich der IDE (Android Studio), denn die Preview ist manchmal etwas langsam und auch die IDE ist hier und da noch etwas überfordert mit der neuen Art von Methoden.

Jetpack Compose basics | Workshop
via Youtube ansehen
Mit dem Abspielen des eingebundenen Videos akzeptieren Sie die Datenschutzbestimmungen von Youtube open_in_new.

Alles in allem sind diese Kinderkrankheiten aber absolut im Rahmen und ich freue mich drauf in den nächsten Wochen meine ersten Gehversuche zu vertiefen. Da ich nun eine komplexere UI baue, könnte es sein das mir weitere Dinge auffallen, welche ich in weiteren Beiträgen niederschreiben werde. Solltet ihr Fragen haben meldet euch gerne direkt in den Kommentaren.

Related Links
Kommentare  
Kommentar erstellen
Mit dem Abschicken des Kommentars erklären sie sich mit der in der Datenschutzerklärung dargelegten Datenerhebung für Kommentare einverstanden. Spam, unangebrachte Werbung und andere unerwünschte Inhalte werden entfernt. Das Abonnieren via E-Mail ist nur für E-Mail Adressen erlaubt die Sie rechtmäßig administrieren. Widerrechtliche Abonnements werden entfernt.