La versione 1.0 di Jetpack Navigation 3 è stabile 🎉. Puoi iniziare a utilizzarla nelle tue app di produzione oggi stesso. JetBrains lo sta già utilizzando nella sua app KotlinConf.
Navigation 3 è una nuova libreria di navigazione creata da zero per supportare lo stato di Jetpack Compose. Ti offre il controllo completo sul back stack, ti aiuta a mantenere lo stato di navigazione e ti consente di creare facilmente layout adattivi (come elenco-dettaglio). 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 è ormai la norma. Nav3 adotta questo approccio. Ad esempio, NavDisplay (il componente UI di Nav3 che mostra le schermate) osserva semplicemente un elenco di chiavi (ognuna delle quali rappresenta una schermata) supportate dallo stato di Compose e aggiorna la UI quando l'elenco cambia.
Nav2 può anche rendere difficile avere una Single Source Of Truth per lo stato di navigazione, perché ha un proprio stato interno. Con Nav3, fornisci il tuo stato, il che ti dà il controllo completo.
Infine, hai chiesto maggiore flessibilità e personalizzazione. Anziché avere un'unica API monolitica, Nav3 fornisce API più piccole e disaccoppiate (o "componenti di base") che possono essere combinate per creare funzionalità complesse. Nav3 utilizza questi componenti di base per fornire valori predefiniti sensati per casi d'uso di navigazione ben definiti.
Questo approccio ti consente di:
- Personalizza le animazioni dello schermo sia a livello globale che individuale
- Visualizza più riquadri contemporaneamente e crea layout flessibili utilizzando l'API Scenes
- Sostituisci 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.
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 i percorsi di navigazione per implementare NavKey. I tuoi percorsi non devono implementare questa interfaccia per utilizzare Nav3, ma se lo fanno, puoi sfruttare la funzione rememberNavBackStack di Nav3 per creare un back stack permanente.
- Crea classi per contenere e modificare lo stato di navigazione, ovvero dove vengono conservati i back stack.
- Sostituisci NavController con queste classi.
- Sposta le destinazioni dal NavGraph di NavHost in un entryProvider.
- Sostituisci NavHost con NavDisplay.
Sperimentazione della migrazione degli agenti AI
Potresti voler sperimentare l'utilizzo di un agente AI per leggere la guida alla migrazione ed eseguire i passaggi sul tuo progetto. Per provare questa funzionalità con Gemini in Android Studio in modalità Agente:
- Salva questa versione markdown della guida nel tuo progetto.
- Incolla questo prompt nell'agente (ma non premere Invio): "Esegui la migrazione di 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, che può commettere errori.
Ci piacerebbe sapere come è andata la tua esperienza o quella del tuo agente, quindi inviaci il tuo feedback qui.
Ricette di navigazione gustose per scenari comuni
Per i casi d'uso comuni ma con sfumature, abbiamo un repository di formule. Questo mostra come combinare le API Nav3 in un modo particolare, consentendoti di scegliere o modificare la formula in base alle tue esigenze specifiche. Se una formula si rivela popolare, prenderemo in considerazione la possibilità di "promuovere" le parti non sfumate nella libreria Nav3 principale o nelle librerie dei componenti aggiuntivi.
Al momento sono disponibili 19 ricette, tra cui:
- Più back stack
- Modularizzazione e dependency injection
- Passaggio di argomenti di navigazione ai ViewModel (anche utilizzando Koin)
- Restituzione dei risultati dalle schermate in base agli eventi e allo stato condiviso
Al momento stiamo lavorando a una ricetta per i deep link, oltre a un'integrazione di Koin, e ne abbiamo in programma molte altre. Un ingegnere di JetBrains ha anche pubblicato una versione Compose Multiplatform delle ricette.
Se hai un caso d'uso comune per cui vorresti vedere una formula, invia una richiesta di formula.
Riepilogo
Per iniziare a utilizzare Nav3, consulta la documentazione e le formule. Inoltre, tieni d'occhio un'intera settimana di contenuti tecnici, tra cui:
- Un video di approfondimento sull'API che tratta la modularizzazione, le animazioni e i layout adattivi.
- Una sessione di domande e risposte dal vivo con gli ingegneri che hanno creato Nav3.
La settimana Nav3 Spotlight inizia il 1° dicembre 2025.
Come sempre, se riscontri problemi, segnalali qui.
-
Novità sui prodottiAddio mobile-only, benvenuto adattivo: tre aggiornamenti essenziali del 2025 per creare app adattive
Nel 2025 l'ecosistema Android è cresciuto ben 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 • Tempo di lettura: 2 min -
Novità sui prodottiOggi, all'Android Dev Summit, annunciamo l'ampia disponibilità di molti strumenti e API progettati per rimuovere gli attriti quotidiani e offrirti maggiore flessibilità per creare app per Android di qualità.
Matthew McCullough • Tempo di lettura: 4 min -
Novità sui prodottiAndroid Studio Rabbit 2 è ora stabile e pronto per l'uso in produzione. Questa release include funzionalità chiave per migliorare lo sviluppo, come Bring Your Own Agent, nuove funzionalità di XR Emulator, un aggiornamento di LeakCanary, un nuovo strumento di gestione delle competenze dell'agente, la revisione del codice AI e altro ancora.
Matthew Warner • Tempo di lettura: 3 min
Ricevi gli ultimi approfondimenti sullo sviluppo Android direttamente nella tua casella di posta ogni settimana.