In qualità di sviluppatore mobile, spesso sviluppi la UI della tua app passo dopo passo, anziché sviluppare tutto in una volta. Android Studio adotta questo approccio con Jetpack Compose fornendo strumenti che non richiedono una build completa per ispezionare, modificare i valori e verificare il risultato finale.
Iterazione della UI assistita dall'AI
Puoi utilizzare l'agente AI in Android Studio per perfezionare e trasformare in modo iterativo la tua UI di Compose direttamente dall'anteprima del design. Fai clic con il tasto destro del mouse su un'anteprima di Compose e seleziona una delle seguenti Azioni AI:
- Abbina l'interfaccia utente all'immagine target: seleziona questa opzione per caricare un modello di progettazione di riferimento. L'agente suggerisce quindi modifiche al codice per fare in modo che l'implementazione corrisponda il più possibile al design.
- Trasforma UI: utilizza prompt in linguaggio naturale (ad esempio, "cambia il colore del pulsante in blu") per descrivere le modifiche specifiche che vuoi apportare alla UI.
Live Edit
Modifica in tempo reale è una funzionalità che ti consente di aggiornare i composabili negli emulatori e nei dispositivi fisici in tempo reale. Questa funzionalità riduce al minimo i cambi di contesto tra la scrittura e la creazione dell'app, consentendoti di concentrarti sulla scrittura del codice più a lungo senza interruzioni.
Modifica in tempo reale ha tre modalità:
- Manuale: le modifiche al codice vengono applicate quando vengono inviate manualmente utilizzando Ctrl+' (Comando+' su macOS)
- Manuale al salvataggio: le modifiche al codice vengono applicate quando vengono salvate manualmente utilizzando Ctrl+S (Cmd+S su macOS).
- Automatico: le modifiche vengono applicate al dispositivo o all'emulatore quando aggiorni una funzione componibile.
La funzionalità Modifica in tempo reale si concentra sulle modifiche al codice relative alla UI e alla UX. Modifica in tempo reale non supporta modifiche come gli aggiornamenti delle firme dei metodi, l'aggiunta di nuovi metodi o le modifiche alla gerarchia delle classi. Per saperne di più, consulta l'elenco delle limitazioni di Live Edit.
Questa funzionalità non sostituisce la creazione e l'esecuzione dell'app o l'utilizzo di Applica modifiche. È invece progettato per ottimizzare il tuo flusso di lavoro durante la creazione, il deployment e l'iterazione per sviluppare l'interfaccia utente di Compose.
Il flusso di lavoro della best practice è il seguente:
- Configura l'applicazione in modo che possa essere eseguita.
- Utilizza Modifica in tempo reale il più possibile finché non devi apportare una modifica non supportata da Modifica in tempo reale, ad esempio l'aggiunta di nuovi metodi mentre l'app è in esecuzione.
- Dopo aver apportato una modifica non supportata, fai clic su Esegui
per riavviare l'app e riprendere Modifica in tempo reale.
Inizia a utilizzare Live Edit
Per iniziare, segui questi passaggi per creare un'attività di Compose vuota, attivare Modifica in tempo reale per il tuo progetto e apportare modifiche con Modifica in tempo reale.
Configura il nuovo progetto
Prima di iniziare, assicurati di aver installato Android Studio Giraffe o versioni successive e che il livello API del tuo dispositivo fisico o emulatore sia almeno 30.
Apri Android Studio e seleziona Nuovo progetto nella finestra di dialogo Benvenuto in Android Studio. Se hai già un progetto aperto, puoi crearne uno nuovo andando su File > Nuovo > Nuovo progetto.
Scegli il modello Empty Compose Activity per Phone and Tablet, quindi fai clic su Next.
Figura 3. Modelli tra cui scegliere. Per Modifica in tempo reale, scegli Empty Compose Activity. Completa la finestra di dialogo Nuovo progetto con le informazioni richieste: nome, nome del pacchetto, posizione di salvataggio, SDK minimo e linguaggio di configurazione di compilazione.
Figura 4. Esempio di impostazioni progetto. Fai clic su Fine.
Attiva Live Edit
Vai alle impostazioni per attivare Live Edit.
- Su Windows o Linux, vai a File > Impostazioni > Editor > Modifica in tempo reale.
- Su macOS, vai ad Android Studio > Impostazioni > Editor > Modifica live.
Seleziona l'opzione Modifiche in tempo reale e la modalità che vuoi eseguire dalle impostazioni.
In modalità manuale, le modifiche al codice vengono applicate ogni volta che premi Ctrl+' (Comando+' su macOS). In modalità manuale al salvataggio, le modifiche al codice vengono applicate ogni volta che salvi manualmente utilizzando Ctrl+S (Command+S su macOS). In modalità automatica, le modifiche al codice vengono applicate al dispositivo o all'emulatore man mano che le apporti.
Figura 5. Impostazioni di Live Edit. Nell'editor, apri il file
MainActivity, che è il punto di ingresso per la tua app.Fai clic su Esegui
per eseguire il deployment dell'app.Dopo aver attivato Modifica in tempo reale, nell'angolo in alto a destra della finestra degli strumenti Dispositivi in esecuzione viene visualizzato il segno di spunta verde Aggiornato:

Apporta e rivedi le modifiche
Man mano che apporti modifiche supportate nell'editor, il dispositivo di test virtuale o fisico si aggiorna automaticamente.
Ad esempio, modifica il metodo Greeting esistente in MainActivity nel seguente modo:
@Composable fun Greeting(name: String) { Text( text = "Hello $name!", Modifier .padding(80.dp) // Outer padding; outside background .background(color = Color.Cyan) // Solid element background color .padding(16.dp) // Inner padding; inside background, around text) ) }
Le modifiche vengono visualizzate immediatamente sul dispositivo di test, come mostrato nella Figura 6.
Greeting.Risolvi i problemi di Live Edit
Se non vedi le modifiche sul dispositivo di test, è possibile che Android Studio non sia riuscito ad aggiornarle. Controlla se l'indicatore di Modifica in tempo reale indica Non aggiornato, come mostrato nella Figura 7, che indica un errore di compilazione. Per informazioni sull'errore e suggerimenti su come risolverlo, fai clic sull'indicatore.
Limitazioni di Live Edit
Di seguito è riportato un elenco delle limitazioni attuali.
[Si applica solo ad Android Studio Giraffe e versioni successive] Modifica in tempo reale richiede Compose Runtime 1.3.0 o versioni successive. Se il tuo progetto utilizza una versione precedente di Compose, Modifica in tempo reale è disattivata.
[Si applica solo ad Android Studio Giraffe e versioni successive] Modifica in tempo reale richiede AGP 8.1.0-alpha05 o versioni successive. Se il tuo progetto utilizza una versione precedente di AGP, Modifica in tempo reale è disattivata.
Modifica in tempo reale richiede un dispositivo fisico o un emulatore con livello API 30 o superiore.
Live Edit supporta solo la modifica del corpo di una funzione, il che significa che non puoi modificare il nome o la firma della funzione, aggiungere o rimuovere una funzione o modificare campi non relativi alla funzione.
Modifica in tempo reale reimposta lo stato dell'app la prima volta che modifichi una funzione di Compose in un file. Questo accade solo dopo la prima modifica al codice. Lo stato dell'app non viene reimpostato dalle successive modifiche al codice apportate alle funzioni di composizione in quel file.
Le classi modificate con Modifica in tempo reale potrebbero comportare una riduzione delle prestazioni. Esegui l'app e utilizza una build di release pulita se stai valutando le sue prestazioni.
Devi eseguire un'esecuzione completa affinché il debugger operi sulle classi che hai modificato con Modifica in tempo reale.
Un'app in esecuzione potrebbe arrestarsi in modo anomalo quando la modifichi con Modifica in tempo reale. In questo caso, puoi rifare il deployment dell'app con il pulsante Esegui
.Modifica in tempo reale non esegue alcuna manipolazione del bytecode definita nel file di build del progetto, ad esempio la manipolazione del bytecode che verrebbe applicata quando il progetto viene creato utilizzando le opzioni nel menu Build o facendo clic sui pulsanti Build o Esegui.
Le funzioni non componibili vengono aggiornate in tempo reale sul dispositivo o sull'emulatore e viene attivata una ricomposizione completa. La ricomposizione completa potrebbe non richiamare la funzione aggiornata. Per le funzioni non componibili, devi attivare le funzioni appena aggiornate o eseguire nuovamente l'app.
La modifica in tempo reale non viene ripresa al riavvio dell'app. Devi eseguire di nuovo l'app.
Modifica in tempo reale supporta solo i processi abilitati al debug.
Modifica in tempo reale non supporta i progetti che utilizzano valori personalizzati per
moduleNameinkotlinOptionsnella configurazione di compilazione.La modifica in tempo reale non funziona con i deployment multi-deployment. Ciò significa che non puoi eseguire il deployment su un dispositivo e poi su un altro. La funzionalità Modifica in tempo reale è attiva solo sull'ultimo insieme di dispositivi su cui è stato eseguito il deployment dell'app.
Modifica in tempo reale funziona con i deployment su più dispositivi (deployment su più dispositivi creati tramite Seleziona più dispositivi nel menu a discesa dei dispositivi di destinazione). Tuttavia, non è ufficialmente supportato e potrebbero verificarsi problemi. Se riscontri problemi, segnalali.
Applica modifiche/Applica modifiche al codice non sono compatibili con Modifica in tempo reale e richiedono il riavvio dell'app in esecuzione.
Al momento, Modifica in tempo reale non supporta i progetti Android Automotive.
Domande frequenti su Modifiche dal vivo
Qual è lo stato attuale di Live Edit?
La funzionalità Modifica in tempo reale è disponibile in Android Studio Giraffe. Per attivarla, vai a File > Impostazioni > Editor > Modifica in tempo reale (Android Studio > Impostazioni > Editor > Modifica in tempo reale su macOS).
Quando devo utilizzare Live Edit?
Utilizza Modifica in tempo reale quando vuoi vedere rapidamente l'effetto degli aggiornamenti degli elementi UX (come gli aggiornamenti dei modificatori e le animazioni) sull'esperienza complessiva con l'app.
Quando è preferibile evitare di utilizzare Live Edit?
La funzionalità Modifica in tempo reale si concentra sulle modifiche al codice relative alla UI e alla UX. Non supporta modifiche come gli aggiornamenti della firma del metodo, l'aggiunta di nuovi metodi o le modifiche alla gerarchia delle classi. Per ulteriori informazioni, vedi Limitazioni di Live Edit.
Quando devo utilizzare l'anteprima di Compose?
Utilizza l'anteprima di Compose quando sviluppi singoli elementi componibili. L'anteprima visualizza gli elementi di Compose e si aggiorna automaticamente per mostrare l'effetto delle modifiche al codice. L'anteprima supporta anche la visualizzazione degli elementi UI in diverse configurazioni e stati, come il tema scuro, le impostazioni internazionali e la scala dei caratteri.
Sviluppo iterativo del codice con Compose
La modifica in tempo reale e il ricaricamento rapido per Compose Multiplatform sono funzionalità che possono farti risparmiare tempo e aumentare la produttività durante lo sviluppo con Compose. Tuttavia, soddisfano le esigenze di diversi tipi di sviluppo:
Modifica in tempo reale supporta lo sviluppo iterativo con Jetpack Compose per le app per Android. Ti consente di aggiornare i componibili in emulatori e dispositivi fisici in tempo reale. Questa funzionalità riduce al minimo i cambi di contesto tra la scrittura e la creazione dell'app, consentendoti di concentrarti sulla scrittura del codice più a lungo senza interruzioni.
Il ricaricamento rapido di Compose soddisfa la stessa esigenza, ma supporta le applicazioni desktop create con Compose Multiplatform. Ti consente di apportare modifiche al codice della UI in un'applicazione Compose Multiplatform e di visualizzare i risultati in tempo reale ricaricando in modo intelligente il codice ogni volta che viene modificato.
Sebbene queste due funzionalità condividano molte tecnologie all'interno del motore di Compose e supportino molti casi d'uso simili, non hanno le stesse funzionalità perché si applicano a diversi tipi di sviluppo di Compose.
Se stai sviluppando un'app per Android, devi utilizzare Modifica in tempo reale per accelerare il processo di sviluppo. Se stai sviluppando un'applicazione desktop utilizzando Compose Multiplatform, devi utilizzare il ricaricamento rapido di Compose.
Modifica in tempo reale dei valori letterali (deprecata)
Android Studio può aggiornare in tempo reale alcuni valori letterali costanti utilizzati nei componibili all'interno di anteprime, emulatore e dispositivo fisico. Ecco alcuni tipi supportati:
IntStringColorDpBoolean
Puoi visualizzare i valori letterali costanti che attivano gli aggiornamenti in tempo reale senza il passaggio di compilazione attivando le decorazioni dei valori letterali tramite l'indicatore della UI di Modifica in tempo reale dei valori letterali:
Applica modifiche
Applica modifiche ti consente di aggiornare il codice e le risorse senza dover rifare il deployment dell'app su un emulatore o un dispositivo fisico (con alcune limitazioni).
Ogni volta che aggiungi, modifichi o elimini elementi componibili, puoi aggiornare l'app senza dover rifare il deployment facendo clic sul pulsante Applica modifiche al codice:

Consigliati per te
- Nota: il testo del link viene visualizzato quando JavaScript è disattivato
- Personalizza le animazioni {:#customize-animations}
- Animazioni basate sul valore