Jetpack Compose offre prestazioni eccellenti fin dal primo avvio. Configura la tua app utilizzando le best practice per evitare gli errori comuni e ottimizzare le prestazioni dell'applicazione Compose.
Concetti principali
Ecco alcuni dei concetti chiave per il rendimento in Compose:
- Fasi: comprendere le fasi di composizione, layout e disegno è fondamentale per ottimizzare il modo in cui Compose aggiorna la UI.
- Profili di riferimento: questi profili precompilano il codice essenziale, garantendo lanci più rapidi delle app e interazioni più fluide.
- Stabilità: aumenta la stabilità della tua app per saltare in modo più efficiente le ricomposizioni non necessarie, migliorando le prestazioni.
Configura correttamente la tua app
Se la tua app ha prestazioni scarse, potrebbe esserci un problema di configurazione. Un buon primo passaggio consiste nel controllare le seguenti opzioni di configurazione:
- Crea in modalità di rilascio con R8: prova a eseguire l'app in modalità di rilascio. La modalità di debug è utile per individuare molti problemi, ma impone un costo in termini di prestazioni e può rendere difficile l'individuazione di altri problemi. Devi inoltre abilitare l'ottimizzazione e la riduzione con il compilatore R8 per garantire una build della release efficiente e ad alte prestazioni.
- Utilizza i profili di riferimento: i profili di riferimento migliorano le prestazioni precompilando il codice per i percorsi degli utenti critici. Compose include un profilo predefinito, ma idealmente dovresti anche crearne uno specifico per l'app. Scopri di più sui profili di riferimento nella documentazione generale sul rendimento di Android
Strumenti
Acquisisci familiarità con la suite di strumenti disponibili per misurare e analizzare le prestazioni della tua app Compose.
Best practice
Quando sviluppi la tua app con Compose, tieni a mente queste best practice:
- Evita calcoli costosi: usa
remember
per memorizzare nella cache i risultati di calcoli costosi. - Aiuta i layout lenti: fornisci chiavi stabili per i layout lenti utilizzando il parametro
key
per ridurre al minimo le ricomposizioni non necessarie. - Limita le ricomposizioni non necessarie: usa
derivedStateOf
per limitare le ricomposizioni quando si cambia rapidamente lo stato. - Rimanda letture dello stato: posticipa le letture dello stato il più a lungo possibile aggregandole nelle funzioni lambda.
- Usa modificatori lambda per cambiare stato: usa modificatori
basati su lambda come
Modifier.offset { ... }
per le variabili di stato che cambiano spesso. - Evita scritture a ritroso: non scrivere mai su uno stato che è già stato letto in un componibile.
Per ulteriori dettagli, consulta la guida alle best practice.
visualizzazioni
Se utilizzi le viste anziché la funzionalità Scrivi, consulta la guida dedicata Migliorare le prestazioni del layout.
Risorse aggiuntive
- Guida alle prestazioni delle app: scopri best practice, librerie e strumenti per migliorare le prestazioni su Android.
- Esaminare le prestazioni: controlla le prestazioni dell'app.
- Benchmarking: consente di confrontare le prestazioni dell'app.
- Avvio dell'app: ottimizza l'avvio dell'app.
- Profili di riferimento: interpreta i profili di riferimento.