Jetpack Navigation 3 versione 1.0 è stabile 🎉. Inizia subito a utilizzarla nelle tue app di produzione. JetBrains la sta già utilizzando nella sua app KotlinConf.
Navigation 3 è una nuova libreria di navigazione creata da zero per adottare lo stato di Jetpack Compose. Ti offre il pieno controllo del back stack, ti aiuta a conservare lo stato di navigazione e ti consente di creare facilmente layout adattivi (ad esempio list-detail). Esiste anche una versione multipiattaforma di JetBrains.
Perché una nuova libreria?
La libreria Jetpack Navigation originale (ora Nav2) è stata progettata 7 anni fa e, sebbene soddisfi bene i suoi obiettivi originali e sia stata migliorata in modo iterativo, il modo in cui le app vengono create ora è cambiato radicalmente.
La programmazione reattiva con un'interfaccia utente dichiarativa è ora la norma. Nav3 adotta questo approccio. Ad esempio, NavDisplay (il componente dell'interfaccia utente di Nav3 che mostra le schermate) osserva semplicemente un elenco di chiavi (ognuna che rappresenta una schermata) supportato dallo stato di Compose e aggiorna la sua interfaccia utente quando l'elenco cambia.
Nav2 può anche rendere difficile avere un'unica fonte di verità per lo stato di navigazione perché ha il proprio stato interno. Con Nav3, fornisci il tuo stato, il che ti dà il controllo completo.
Infine, ci hai chiesto maggiore flessibilità e personalizzazione. Anziché avere una singola API monolitica, Nav3 fornisce API più piccole e disaccoppiate (o "blocchi predefiniti") che possono essere combinate per creare funzionalità complesse. Nav3 stesso utilizza questi blocchi predefiniti per fornire valori predefiniti sensati per casi d'uso di navigazione ben definiti.
Questo approccio ti consente di:
- Personalizzare le animazioni delle schermate a livello globale e individuale
- Visualizzare più riquadri contemporaneamente e creare layout flessibili utilizzando l'API Scenes
- Sostituire facilmente i componenti Nav3 con le tue implementazioni se vuoi un comportamento personalizzato
Scopri di più sul design e sulle funzionalità nel blog di lancio.
Eseguire la migrazione da Navigation 2
Se utilizzi già Nav2, in particolare Navigation Compose, ti consigliamo di eseguire la migrazione a Nav3. Per aiutarti, è disponibile una guida alla migrazione. I passaggi principali sono:
- Aggiungi le dipendenze di Navigation 3.
- Aggiorna le route di navigazione per implementare NavKey. Le route non devono implementare questa interfaccia per utilizzare Nav3, ma se lo fanno, puoi sfruttare la funzione rememberNavBackStack di Nav3 per creare un back stack persistente.
- Crea classi per contenere e modificare lo stato di navigazione. Qui vengono memorizzati gli stack indietro.
- Sostituisci NavController con queste classi.
- Sposta le destinazioni da NavGraph di NavHost a un entryProvider.
- Sostituisci NavHost con NavDisplay.
Sperimentare la migrazione degli agenti AI
Potresti voler provare a utilizzare un agente AI per leggere la guida alla migrazione ed eseguire i passaggi sul tuo progetto. Per provare questa funzionalità con Gemini in modalità Agent di Android Studio:
- Salva questa versione Markdown della guida nel tuo progetto.
- Incolla questo prompt nell'agente (ma non premere Invio): "Migra questo progetto a Navigation 3 utilizzando ".
- Digita @migration-guide.md. In questo modo, la guida verrà fornita come contesto all'agente.
Come sempre, assicurati di esaminare attentamente le modifiche apportate dall'agente AI, perché può commettere errori.
Ci piacerebbe sapere come si è comportato tu o il tuo agente. Ti preghiamo di inviare il tuo feedback qui.
Ricette di navigazione utili per scenari comuni
Per i casi d'uso comuni ma sfumati, abbiamo un repository di ricette. Questo mostra come combinare le API Nav3 in un modo particolare, consentendoti di scegliere o modificare la ricetta in base alle tue esigenze specifiche. Se una ricetta si rivela popolare, valuteremo la possibilità di "promuovere" le parti non sfumate nella libreria Nav3 principale o nelle librerie aggiuntive.
Al momento sono disponibili 19 ricette, tra cui:
- Più stack indietro
- Modularizzazione e inserimento delle dipendenze
- Passare gli argomenti di navigazione ai ViewModel (incluso l'utilizzo di Koin)
- Restituire i risultati dalle schermate tramite eventi e stato condiviso
Stiamo lavorando a una ricetta per i link diretti, oltre a un'integrazione di Koin, e ne abbiamo in programma molte altre. Un ingegnere di JetBrains ha anche pubblicato una versione di Compose Multiplatform delle ricette.
Se hai un caso d'uso comune per cui ti piacerebbe vedere una ricetta, ti preghiamo di inviare una richiesta di ricetta.
Riepilogo
Per iniziare a utilizzare Nav3, consulta la documentazione e le ricette. Inoltre, non perderti un'intera settimana di contenuti tecnici, tra cui:
- Un video approfondito sull'API che tratta di modularizzazione, animazioni e layout adattivi.
- Una sessione di domande e risposte in diretta con gli ingegneri che hanno creato Nav3.
La settimana di approfondimento su Nav3 inizia il 1° dicembre 2025.
Come sempre, se riscontri problemi, segnalali qui.
Continua a leggere
-
Novità sui prodotti
Nel 2025, l'ecosistema Android è cresciuto molto oltre lo smartphone. Oggi, gli sviluppatori hanno l'opportunità di raggiungere oltre 500 milioni di dispositivi attivi, tra cui pieghevoli, tablet, XR, Chromebook e auto compatibili.
Fahd Imtiaz • Lettura di 2 minuti
-
Novità sui prodotti
Siamo felici di annunciare che è arrivato il supporto ufficiale per Unreal Engine e Godot per Android XR. Stiamo anche lanciando nuovi strumenti progettati per aumentare la produttività e abilitare nuove funzionalità XR: Android XR Engine Hub e Android XR Interaction Framework.
Luke Hopkins • Lettura di 4 minuti
-
Novità sui prodotti
Con il rilascio di Android 17, stiamo passando a uno standard di sviluppo adattivo. I tuoi utenti non si affidano più a un singolo fattore di forma; passano da smartphone, pieghevoli, tablet, laptop, display per auto e ambienti XR immersivi durante la giornata.
Fahd Imtiaz • Lettura di 4 minuti
Resta al passo con le novità
Ricevi settimanalmente nella tua casella di posta gli ultimi approfondimenti sullo sviluppo di Android.