I’m leaving, with a jetpack

I’m leaving, with a jetpack
I’m leaving, with a jetpack

We grow – op alle vlakken, en dus ook in het gebruik van tools om ons werk te optimaliseren. Zo zijn enkele van onze mobile developers overgeschakeld naar het gebruik van Jetpack Compose, een Android-toolkit om user interfaces (UI) te bouwen. En waarom ook jij dat zou moeten gebruiken, dat vertelt iOS-developer Yannick je hieronder 😉 Let’s go!

via GIPHY

Om met de deur in huis te vallen: het allergrootste voordeel van Jetpack Compose is dat je sneller en intuïtiever native UI’s kan ontwikkelen. Dat doe je niet meer in XML maar door de lay-out rechtstreeks in code te definiëren. Die trend zien we ook bij andere frameworks en technologieën voorkomen, denk maar aan Flutter of SwiftUI. Zo’n manier van werken biedt enorm veel mogelijkheden om de zware labeur van onze mobile developers te verlichten.

“Vroeger moesten we met XML-files werken, dat was een goede oplossing voor statische pagina’s maar werd snel een hel van zodra componenten dynamisch moesten wijzigen, laat staan animeren. Die zaken moesten dan toch in code gedaan worden waardoor je het overzicht over de volledige lay-out gemakkelijk verloor. Dankzij Compose is dat probleem van de baan, gezien de lay-out in één code-file staat.”

Yannick, iOS developer bij RMDY

Normaal is het grote probleem van nieuwe libraries en toolkits dat ze vaak niet backwards compatible zijn en dus de nieuwste OS-versies vereisen. Dat is echter niet het geval bij Compose, dat kan gebruikt worden in projecten die minimaal Android 5 (Android Lollipop) ondersteunen. Kiezen voor Compose in een bestaand project betekent dus niet dat je lay-out meteen omgezet moet worden. Je kan nog steeds gebruik maken van XML-files en gewoon stapsgewijs oudere flows omzetten naar Compose.

Aangezien alles in code gedefinieerd wordt, kan je gebruik maken van alle handigheden dat de programmeertaal Kotlin biedt en is de leercurve niet zo groot.

Daar stoppen de voordelen niet:

  • Over het algemeen minder code nodig
  • Gemakkelijk te onderhouden code base
  • Snellere en intuïtievere UI development
  • Reactive development met automatische aanpassing van de UI naargelang de state
  • Interoperabiliteit waarbij compose componenten ook in XML gebruiken kunnen worden en vice versa

Verder kan je veel gemakkelijker animaties creëren, krijg je support voor Material Design, dark mode, toegankelijkheid, … en is het beschikbaar voor desktop en web.

Gemakkelijker te onderhouden:

Interoperabiliteit

Of er ook nadelen zijn? Welja, een paar:

  • Geautomatiseerde UI testing vormt een struikelblok omdat de UI componenten door de meeste systemen nog niet herkend worden.
  • Niet alle native componenten beschikken over een equivalent in compose vb. geen date picker of tekstschaduw.
  • Geen crossplatformtechnologie en dus enkel beschikbaar voor Android en niet voor iOS.

Onze conclusie?

Het is heel gemakkelijk in gebruik met een lage leercurve, het is productieklaar en versnelt het development process. We zien dus geen enkele reden om het niét te gebruiken in je bestaande projecten 😉 

Ga jij ermee aan de slag?

via GIPHY