Notizie sui prodotti

Festeggiamo i 5 anni di Jetpack Compose

Lettura: 4 minuti

Oggi celebriamo ufficialmente i cinque anni dal rilascio di Jetpack Compose 1.0. Dalla versione 1.0, annunciata il 28 luglio 2021, alla nostra ultima release 1.11, abbiamo assistito a una notevole evoluzione delle API 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. Se guardiamo 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 prime 1000 app che lo utilizzano oggi in produzione. 

Cronologia

Negli ultimi cinque anni, Compose è cresciuto costantemente. Nei primi giorni, abbiamo esplorato come mostrare 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 per TV, WearOS, Glance per i widget e persino sugli 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 responsabili del team, Romain Guy e Chet Haase, insieme a Tor Norbye, Senior Engineering Director. In questo episodio, discutono della storia di Compose e dei primi giorni di sviluppo.

timeline.png
Compose nel corso degli anni

Un tuffo nel passato

Gli inizi di Scrivi erano molto diversi da quello che conosci oggi. Il team Android stava lavorando in parallelo a due progetti. 

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 all'interno di 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 voi, la community, ci avete aiutato fin dall'inizio. Prima del 2021, Compose aveva una fase pre-alpha, che ha contribuito a garantire che 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
Materiale 2 in Compose

Prospettive future

A partire da oggi, Compose 1.11 è l'ultima versione, 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 API più adattive, come FlexBox, Grid, MediaQuery e Styles. Queste API ti consentono di passare al livello successivo di sviluppo di UI adattive 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 della UI avverrà solo in Compose, mentre il toolkit Views entrerà in modalità di manutenzione. Material Design sta anche spostando l'attenzione interamente su Compose, segnalando la fine di findViewById era. 

La community è al centro di Scrivi 

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

Abbiamo apprezzato molto le nostre newsletter preferite,  da Dispatch di JetpackCompose.app e AndroidWeekly a jetc, che aiutano gli sviluppatori Android a rimanere aggiornati sulle ultime novità del mondo di Compose e Android. 

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

ribbon_modifier_sinasamaki.gif

Saket Narayan è sempre stato 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 delle 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 (ad esempio 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, tra cui la nostra preferita più recente, Haze per la sfocatura dello sfondo, e molti Android Google Developer Experts come Akshay Chordiya, Huyen Tue Dao e Katie Barnett, che hanno contribuito al successo di Compose. Ma non si tratta di selezionare singole persone: ci sono stati così tanti fantastici collaboratori al codebase di Compose e molti di voi continuano a ispirarci con i vostri 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 a molti altri ancora. 

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

Questa settimana festeggeremo con alcune feste di compleanno in presenza in tutto il mondo e con una "festa di compleanno" in diretta sul canale YouTube di Android Developers il 30 luglio alle 13:00 UTC. Durante questo periodo, ci incontreremo per discutere di Compose e rispondere alle tue domande.

Brindiamo ai prossimi 5 anni e buona composizione!

Continua a leggere