Sviluppo di codice iterativo

In qualità di sviluppatore mobile, spesso sviluppi l'UI della tua app passo dopo passo anziché sviluppare tutto in una volta sola. Android Studio adotta questo approccio con Jetpack Compose, fornendo strumenti che non richiedono una build completa per ispezionare, modificare valori e verificare il risultato finale.

Modifica live

Live Edit è una funzionalità che ti consente di aggiornare in tempo reale componenti componibili negli emulatori e nei dispositivi fisici. Questa funzionalità riduce al minimo il cambio di contesto tra la scrittura e la creazione dell'app, consentendoti di concentrarti sulla scrittura del codice più a lungo senza interruzioni.

La funzionalità Live Edit prevede tre modalità:

  • Manuale: le modifiche al codice vengono applicate quando viene eseguito il push manuale utilizzando Ctrl+\ (Command+\ su macOS)
  • Manuale al momento del salvataggio: le modifiche al codice vengono applicate quando vengono salvate manualmente con Ctrl+S (Comando+S su macOS).
  • Automatica: le modifiche vengono applicate nel dispositivo o nell'emulatore quando aggiorni una funzione componibile.

La funzionalità Modifica live streaming è incentrata sulle modifiche al codice relative all'interfaccia utente e all'esperienza utente. La 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 ulteriori informazioni, consulta l'elenco dei limiti della modifica in tempo reale.

Questa funzionalità non sostituisce la creazione e l'esecuzione dell'app o la funzionalità Applica modifiche. ma è progettato per ottimizzare il flusso di lavoro mentre crei, esegui il deployment e l'iterazione per sviluppare l'interfaccia utente di Compose.

Ecco il flusso di lavoro delle best practice:

  1. Configura la tua applicazione in modo che possa essere eseguita.
  2. Il più possibile finché non devi apportare una modifica non supportata dalla funzionalità Live Edit, ad esempio aggiungere nuovi metodi mentre l'app è in esecuzione.
  3. Dopo aver apportato una modifica non supportata, fai clic su Esegui Icona Esegui per riavviare l'app e riprendere la modifica dal vivo.

Guida introduttiva alla modifica dal vivo

Per iniziare, segui questi passaggi per creare un'attività Scrivi vuota, abilitare la modifica dal vivo per il tuo progetto e apportare modifiche con la modifica dal vivo.

Configura il nuovo progetto

  1. Prima di iniziare, assicurati di avere installato Android Studio Giraffe o versione successiva e che il livello API del tuo emulatore o dispositivo fisico sia almeno 30.

  2. Apri Android Studio e seleziona Nuovo progetto nella finestra di dialogo Ti diamo il benvenuto in Android Studio. Se hai già un progetto aperto, puoi crearne uno nuovo andando su File > Nuovo > Nuovo progetto.

  3. Scegli il modello Attività di scrittura vuota per Telefono e tablet, quindi fai clic su Avanti.

    Selezione dei modelli in Android Studio
    Figura 1. Modelli tra cui scegliere. Per la modifica dal vivo, scegli Attività di scrittura vuota.
  4. Completa la finestra di dialogo Nuovo progetto con le informazioni richieste: nome, nome del pacchetto, posizione di salvataggio, SDK minimo e lingua di configurazione della build.

    Impostazioni progetto di esempio del passaggio 4 inserite in Android Studio
    Figura 2. Esempi di impostazioni progetto.
  5. Fai clic su Fine.

Abilita modifica dal vivo

  1. Vai alle impostazioni per attivare la modifica dal vivo.

    • Su Windows o Linux, vai a File > Impostazioni > Editor > Live Edit.
    • Su macOS, vai ad Android Studio > Impostazioni > Editor > Live Edit.
  2. Seleziona l'opzione Modifica dal vivo e la modalità che vuoi eseguire dalle impostazioni.

    In modalità manuale, le modifiche al codice vengono inviate 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 (Comando+S su macOS). In modalità automatica, le modifiche al codice vengono applicate nel dispositivo o nell'emulatore quando apporti le modifiche.

    UI della casella di controllo Live Edit nelle impostazioni di Android Studio
    Figura 3. le impostazioni di Modifica dal vivo.
  3. Nell'editor, apri il file MainActivity, che è il punto di ingresso della tua app.

  4. Fai clic su Esegui Pulsante UI per eseguire il deployment dell'app.

  5. Dopo aver attivato la modifica dal vivo, in alto a destra nella finestra dello strumento Dispositivi in esecuzione viene visualizzato il segno di spunta verde Aggiornato:

    Interfaccia utente con segno di spunta verde di Live Edit

Apportare e rivedere 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 come segue:

@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 istantaneamente sul dispositivo di test, come mostrato nella Figura 4.

Modifiche al metodo di saluto applicate su un dispositivo
Figura 4. Dispositivo di test che mostra le modifiche della modifica in tempo reale al metodo Greeting.

Risolvere i problemi relativi alla modifica dal vivo

Se non vedi le modifiche sul dispositivo di test, è possibile che in Android Studio non siano state aggiornate. Controlla se l'indicatore della modifica in tempo reale indica Non aggiornata, come mostrato nella Figura 5, a indicare un errore di compilazione. Per informazioni sull'errore e suggerimenti su come risolverlo, fai clic sull'indicatore.

Icona Modifica live non aggiornata
Figura 5. Indicatore di stato della modifica dal vivo.

Limiti della modifica dal vivo

Di seguito è riportato un elenco delle limitazioni attuali.

  • [Si applica solo ad Android Studio Giraffe e versioni successive] La modifica dal vivo richiede Compose Runtime 1.3.0 o versioni successive. Se il tuo progetto utilizza una versione precedente di Compose, la modifica in tempo reale è disattivata.

  • [Si applica solo ad Android Studio Giraffe e versioni successive] La funzionalità Modifica dal vivo richiede AGP 8.1 o versione successiva. Se il tuo progetto usa una versione precedente di AGP, la modifica dal vivo è disabilitata.

  • Live Edit richiede un emulatore o un dispositivo fisico con livello API 30 o successivo.

  • La modifica in tempo reale supporta solo la modifica del corpo di una funzione, il che significa che non puoi modificare il nome della funzione o la firma, aggiungere o rimuovere una funzione o modificare i campi non funzionali.

  • La modifica in tempo reale reimposta lo stato dell'app la prima volta che modifichi una funzione Scrivi in un file. Questo si verifica solo dopo la prima modifica al codice: lo stato dell'app non viene reimpostato dalle successive modifiche al codice apportate alle funzioni di Compose in quel file.

  • I corsi modificati dal vivo tramite editing potrebbero comportare un peggioramento delle prestazioni. Esegui l'app e utilizza una build di release pulita se ne valuti le prestazioni.

  • Devi eseguire un'esecuzione completa affinché il debugger funzioni sulle classi che hai modificato con Live Edit.

  • Un'app in esecuzione potrebbe arrestarsi in modo anomalo quando la modifichi con la modifica dal vivo. In questo caso, puoi eseguire nuovamente il deployment dell'app con il pulsante Esegui Pulsante UI.

  • La modifica in tempo reale non esegue alcuna manipolazione del bytecode definita nel file di build del progetto, ad esempio la manipolazione del bytecode che verrà applicata quando il progetto viene creato utilizzando le opzioni del menu Crea o facendo clic sui pulsanti Crea o Esegui.

  • Le funzioni non componibili vengono aggiornate in tempo reale sul dispositivo o nell'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 aggiornate di recente o eseguire di nuovo l'app.

  • La modifica dal vivo non riprende al riavvio dell'app. Devi eseguire di nuovo l'app.

  • La modifica in tempo reale supporta solo i processi di cui è possibile eseguire il debug.

  • La modifica in tempo reale non supporta i progetti che utilizzano valori personalizzati per moduleName in kotlinOptions nella configurazione della build.

  • La modifica in tempo reale non funziona con i deployment con deployment multi-deployment. Ciò significa che non puoi eseguire il deployment su un dispositivo e poi su un altro. La modifica in tempo reale è attiva solo sull'ultimo set di dispositivi su cui è stata implementata l'app.

  • Live Edit funziona con deployment multidispositivo (deployment su più dispositivi creati tramite Seleziona più dispositivi nel menu a discesa dei dispositivi di destinazione). Tuttavia, non è ufficialmente supportata e potrebbero verificarsi problemi. Se riscontri problemi, segnalali.

  • Le funzionalità Applica modifiche/Applica modifiche al codice non sono compatibili con la modifica dal vivo e richiedono il riavvio dell'app in esecuzione.

Domande frequenti sulla modifica dal vivo

  • Qual è lo stato attuale della Live Edit?

    La funzionalità Modifica dal vivo è disponibile in Android Studio Giraffe. Per attivarla, seleziona File > Impostazioni > Editor > Modifica dal vivo (Android Studio > Impostazioni > Editor > Modifica dal vivo su macOS).

  • Quando conviene utilizzare la modifica dal vivo?

    Utilizza la funzionalità Modifica in tempo reale per vedere rapidamente l'effetto degli aggiornamenti degli elementi UX (come animazioni e aggiornamenti dei modificatori) sull'esperienza generale con l'app.

  • Quando devo utilizzare la funzionalità Modifica dal vivo?

    La funzionalità Modifica live streaming è incentrata sulle modifiche al codice relative all'interfaccia utente e all'esperienza utente. Non supporta modifiche come gli aggiornamenti delle firme dei metodi, l'aggiunta di nuovi metodi o le modifiche alla gerarchia delle classi. Per ulteriori informazioni, consulta la sezione Limiti di Live Edit.

  • Quando devo utilizzare l'anteprima di Scrivi?

    Utilizza l'anteprima di Scrivi quando stai sviluppando singoli componibili. L'anteprima mostra gli elementi di Compose e si aggiorna automaticamente per vedere l'effetto delle modifiche al codice. L'anteprima supporta anche la visualizzazione di elementi UI in diversi stati e configurazioni, ad esempio tema scuro, impostazioni internazionali e scala dei caratteri.

Modifica in tempo reale di valori letterali (deprecata)

Android Studio può aggiornare in tempo reale alcuni valori letterali costanti utilizzati negli elementi componibili all'interno di anteprime, emulatore e dispositivo fisico. Ecco alcuni tipi supportati:

  • Int
  • String
  • Color
  • Dp
  • Boolean

Video in cui l'utente modifica i valori letterali nel codice sorgente e l'anteprima si aggiorna dinamicamente

Puoi visualizzare i valori letterali costanti che attivano aggiornamenti in tempo reale senza il passaggio di compilazione abilitando le decorazioni letterali tramite la Modifica live dell'indicatore UI dei valori letterali:

Consentire l'editing live

Applica modifiche

Applica modifiche ti consente di aggiornare il codice e le risorse senza dover eseguire nuovamente il deployment dell'app in un emulatore o in un dispositivo fisico (con alcune limitazioni).

Ogni volta che aggiungi, modifichi o elimini elementi componibili, puoi aggiornare l'app senza dover ripetere il deployment facendo clic sul pulsante Applica modifiche al codice:

L'utente fa clic sul pulsante
"Applica modifiche"