Jetpack compose è un toolkit per la composizione di interfacce utente per app native Android. Il suo utilizzo semplifica e velocizza lo sviluppo lato UI riducendo la quantità di codice necessaria e consentendo l'accesso ad un completo e moderno set di api Kotlin.
Storicamente la creazione di interfacce grafiche in Android è sempre stato un processo che, sebbene ben congegnato, tendeva a diventare molto macchinoso e ripetitivo, a causa di continue inizializzazioni, con cast e lookup agli elementi nei layout XML. Si è fatto e si fa ancora uso delle classi layout (Linear, Relative e i più recenti Constraint) sfruttando il supporto dei tool di Design che ci vengono offerti da Android Studio, andando sovente a manipolare i widget in maniera ibrida anche nel codice stesso.
Jetpack Compose invece ci permette di invocare set di funzioni dichiarative e instanziare elementi e contenitori, lasciando al compilatore il resto del lavoro.
Utilizzando le cosidette "composable functions" nelle nostre classi (tramite l'utilizzo di annotazioni) è possibile andare a definire la UI in maniera programmatica, mediante un approccio che verte sulla definizione delle dipendenze tra i componenti, sfruttando al contempo i vantaggi offerti da Kotlin e dalla programmazione dichiarativa sia per accellerare l'intero processo di costruzione della UI, sia per consentire un corretto e veloce riutilizzo dei componenti, di cui sovente si tende a perdere visibilità, considerando la miriade di file che si vanno a creare nel progetto e le personalizzazioni nascoste nelle classi stesse.
Jetpack Compose può essere utilizzato anche in progetti già esistenti in maniera modulare, il framework permette agli sviluppatori di decidere quali componenti utilizzare senza dover ricostruire tutto da zero.
Qui il link ufficiale al tutorial della developer preview.