Novità sui prodotti

Festeggiamo i 5 anni di Jetpack Compose

Lettura di 5 minuti

Oggi festeggiamo ufficialmente i cinque anni dalla release di Jetpack Compose 1.0. Dalla versione 1.0, annunciata il 28 luglio 2021, alla nostra ultima release 1.11, abbiamo visto le API evolversi in modo significativo nel corso degli anni e ci prendiamo un momento per festeggiare.

Quando abbiamo annunciato ufficialmente la release 1.0, abbiamo promesso un modo più semplice, veloce e intuitivo per creare interfacce native su Android. Guardando indietro, possiamo affermare con certezza che Compose non solo ha mantenuto la promessa, ma ha anche cambiato completamente l'ecosistema Android, con oltre il 68% delle 1000 app più importanti che lo utilizzano in produzione oggi. 

Cronologia

Negli ultimi cinque anni, Compose è cresciuto costantemente. Nei primi tempi,  abbiamo esplorato come creare layout con Box, Row e Column di base. Oggi, abbiamo ampliato Compose per farlo funzionare non solo sui dispositivi mobili, ma anche su altri fattori di forma come Compose for TVWearOSGlance for Widgets e persino occhiali con display con Jetpack Compose Glimmer

jetpack_compose_everywhere.png

Abbiamo registrato un episodio di Android Developers Backstage con Clara Bayarri, Engineering Lead per Jetpack, e due ex lead del team, Romain GuyChet Haase, insieme a Tor Norbye, Senior Engineering Director. In questo episodio, parlano della storia di Compose e dei primi giorni di sviluppo.

timeline.png
Punti salienti di Compose nel corso degli anni

Guardando indietro

Gli inizi di Compose erano molto diversi da quelli che conosci oggi. All'interno del team Android si stavano svolgendo due progetti in parallelo. 

All'epoca, il team del toolkit Views stava pensando di separare il toolkit UI in una libreria per velocizzare lo sviluppo e semplificare l'adozione e il controllo degli aggiornamenti da parte degli sviluppatori. Nel frattempo, un team stava lavorando a un'idea innovativa per creare layout dichiarativi incorporando XML in Kotlin, che si presentava in questo modo:

jetpack_compose_early_code.png

Questi due sforzi si sono uniti per produrre ciò che conosci oggi: un toolkit UI completamente dichiarativo che utilizza la potenza di un plug-in del compilatore, del runtime e di Kotlin:

@Composable
fun Newsfeed(stories: List<Story>) {
    LazyColumn {
        items(stories) { story ->
            Card {
                val author = story.author
                Image(painterResource(author.profilePhoto),
                    contentDescription = author.name)
                Text(author.name)
                Text(story.content)
                if (story.hasCommentsEnabled()) {
                    for(comment in story.comments) {
                        Text(comment.mainContent)
                    }
                }
            }
        }
    }
}

E tu, la community, ci hai aiutato fin da subito. Prima del 2021, Compose aveva una fase pre-alpha, che ha contribuito a garantire che Compose fosse adatto a risolvere i problemi dei nostri sviluppatori.

Uno dei nostri ricordi preferiti è l'Android Dev Challenge. Abbiamo sfidato la community a creare quattro attività diverse con Compose, riempiendo i nostri feed con app per cuccioli, orologi e app meteo e fornendoci una miriade di feedback diretti che hanno contribuito a dare forma alla release 1.0.

Compose ha continuato a evolversi, dal lancio con un insieme di componenti Material 2 al supporto di Material 3 Expressive.

material2.png
Material 2 in Compose

Prospettive future

A oggi, Compose 1.11 è la versione più recente, mentre la 1.12 sarà disponibile a breve e offre molto di più rispetto alla 1.0 di 5 anni fa. Quest'anno abbiamo introdotto altre API adattive, come FlexBoxGridMediaQueryStyles. Queste API ti consentono di passare al livello successivo di sviluppo di UI adattive e premium con Compose. 

In occasione di Google I/O 2026, abbiamo annunciato che ora siamo Compose-first, il che significa che tutto lo sviluppo futuro dell'UI avverrà solo in Compose, mentre il toolkit Views entrerà in modalità di manutenzione. Anche Material Design sta spostando l'attenzione interamente su Compose, segnalando la fine del findViewById era

La community è al centro di Compose

Nel corso degli anni, ci hai ispirato con esempi creativi di come hai utilizzato Compose e ci piacerebbe evidenziare alcuni altri esempi di lavori entusiasmanti. JetBrains è stato un ottimo partner per Google con Compose, espandendo Compose per funzionare su più piattaforme con Compose Multiplatform e consentendo agli sviluppatori di app per desktop, iOS e web di usufruire dei vantaggi di Compose.  

Ci è piaciuto molto seguire le nostre newsletter più amate, da Dispatch di JetpackCompose.appAndroidWeekly, a jetc, aiutando gli sviluppatori Android a rimanere aggiornati sulle ultime novità del mondo di Compose e Android. 

Un altro contributore eccezionale è sinasamaki. Ha creato molte esperienze piacevoli utilizzando Compose, come questo divertente modificatore a nastro e l'effetto glitch:

ribbon_modifier_sinasamaki.gif

Saket Narayan è sempre stato anche una fonte di ispirazione per la creazione di strumenti utili per Compose, come telephoto, una libreria che supporta i gesti di panoramica e zoom e il sottocampionamento automatico di immagini di grandi dimensioni, o l'ultima libreria, Touch Robot, che consente di testare facilmente le animazioni di interazione:

paparazzi.gif(end = 3_000) {
  DebitCard(
    Modifier.testTag("card")
  )

  val touchRobot = rememberTouchRobot()
  LaunchedEffect(Unit) {
    touchRobot.onNode(hasTestTag("card")).performGesture {
      draw(
        path = createAndroidHeadPath(),
        duration = 3.seconds,
      )
    }
  }
}

/** A path drawing the Android head. */
fun createAndroidHeadPath(bounds: Rect): Path = TODO()
saket_touch_robot.gif

Jake Wharton, che ha utilizzato Compose in modi innovativi (come molecule e persino la creazione di UI con Compose per il terminale con mosaic). Chris Banes, che ha creato molte librerie Compose nel corso degli anni, con la nostra preferita più recente: Haze per la sfocatura dello sfondo, e molti Esperti Google Developers Android come Akshay ChordiyaHuyen Tue DaoKatie Barnett, che hanno contribuito al successo di Compose. Ma non si tratta di selezionare singoli individui: ci sono stati così tanti ottimi contributori al codebase di Compose e molti di voi continuano a ispirarci con i loro esempi divertenti, le librerie e i discorsi approfonditi. Senza la community, Jetpack Compose non avrebbe il successo che ha oggi. 

Brindiamo ai prossimi 5 anni e non solo.

Jetpack Compose è passato da un'idea sperimentale allo standard per lo sviluppo di UI Android. Grazie a tutto il team del toolkit di Google e all'incredibile community di sviluppatori globale che ha scritto librerie, segnalato bug e superato i limiti di ciò che l'UI dichiarativa può fare. 

Questa settimana festeggeremo con alcune feste di compleanno di persona in tutto il mondo e una "festa di compleanno" in live streaming sul canale YouTube di Android Developers il 30 luglio alle 13:00 UTC. Durante questo periodo, ci incontreremo, parleremo di Compose e risponderemo alle tue domande.

Brindiamo ai prossimi 5 anni e buon lavoro con Compose.

Scritto da:
Continua a leggere