La versione 1.0 di Jetpack Navigation 3 è stabile 🎉. Inizia a utilizzarla oggi stesso nelle tue app di produzione. JetBrains lo utilizza già nella sua app KotlinConf.
Navigation 3 è una nuova libreria di navigazione creata da zero per integrare lo stato di Jetpack Compose. Ti offre il controllo completo del back stack, ti aiuta a mantenere lo stato di navigazione e ti consente di creare facilmente layout adattivi (come list-detail). Esiste anche una versione multipiattaforma di JetBrains.
Perché una nuova raccolta?
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 vengono create le app è cambiato radicalmente.
La programmazione reattiva con un'interfaccia utente dichiarativa è ormai la norma. Nav3 adotta questo approccio. Ad esempio, NavDisplay (il componente UI Nav3 che mostra le schermate) osserva semplicemente un elenco di chiavi (ognuna delle quali rappresenta una schermata) supportato dallo stato di Compose e aggiorna la UI quando l'elenco cambia.
Nav2 può anche rendere difficile avere un'unica fonte di verità 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 più flessibilità e personalizzazione. Anziché avere un'unica API monolitica, Nav3 fornisce API più piccole e disaccoppiate (o "blocchi di costruzione") che possono essere combinate per creare funzionalità complesse. Nav3 utilizza questi componenti di base per fornire valori predefiniti ragionevoli per casi d'uso di navigazione ben definiti.
Questo approccio ti consente di:
- Personalizzare le animazioni dello schermo a livello globale e 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.
Eseguire la migrazione da Navigazione 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 tre dipendenze di navigazione.
- Aggiorna le route 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 uno stack indietro 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 dal NavGraph di NavHost in un entryProvider.
- Sostituisci NavHost con NavDisplay.
Sperimentare la migrazione degli agenti AI
Ti consigliamo di provare a utilizzare un agente AI per leggere la guida alla migrazione ed eseguire i passaggi del tuo progetto. Per provare questa funzionalità con la modalità Agent di Gemini in Android Studio:
- Salva questa versione in formato Markdown della guida nel tuo progetto.
- Incolla questo prompt nell'agente (ma non premere Invio): "Esegui la migrazione di questo progetto a Navigazione 3 utilizzando ".
- Digita @migration-guide.md. 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. Invia 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 esempio 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, prenderemo in considerazione la possibilità di "promuovere" le parti non sfumate nella libreria principale Nav3 o nelle librerie aggiuntive.
Al momento sono disponibili 19 ricette, tra cui:
- Più back stack
- Modularizzazione e inserimento delle dipendenze
- Passaggio di argomenti di navigazione ai ViewModel (incluso l'utilizzo di Koin)
- Restituzione dei risultati dalle schermate per eventi e per stato condiviso
Stiamo attualmente 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 multipiattaforma di Compose delle ricette.
Se hai un caso d'uso comune per cui vorresti una ricetta, invia una richiesta di ricetta.
Riepilogo
Per iniziare a utilizzare Nav3, consulta la documentazione e le ricette. Inoltre, tieni d'occhio una settimana intera di contenuti tecnici, tra cui:
- Un video di approfondimento sull'API che tratta di modularizzazione, animazioni e layout adattivi.
- Una sessione di domande e risposte live con gli ingegneri che hanno creato Nav3.
La settimana di Nav3 Spotlight inizia il 1° dicembre 2025.
Come sempre, se riscontri problemi, segnalali qui.
Continua a leggere
-
Novità sul prodotto
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à sul prodotto
Android Studio supporta Gemma 4: il nostro modello locale più potente per la programmazione agentica
Il flusso di lavoro e le esigenze di ogni sviluppatore in materia di AI sono unici ed è importante poter scegliere in che modo l'AI può aiutarti nello sviluppo. A gennaio abbiamo introdotto la possibilità di scegliere qualsiasi modello di AI locale o remoto per potenziare la funzionalità di AI in Android Studio
Matthew Warner • Lettura di 2 minuti
-
Novità sul prodotto
Android Studio Panda 3 è ora stabile e pronto per l'uso in produzione. Questa release ti offre ancora più controllo e personalizzazione sui tuoi flussi di lavoro basati sull'AI, rendendo più facile che mai creare app per Android di alta qualità.
Matt Dyor • Lettura di 3 minuti
Segui gli aggiornamenti
Ricevi ogni settimana gli ultimi approfondimenti sullo sviluppo per Android direttamente nella tua casella di posta.