L'architettura degli schermi e la navigazione è un sistema che determina come l'utente si sposta tra le schermate di un'applicazione mobile, torna indietro e trova le funzioni necessarie. L'architettura include regole di transizione, gerarchia degli schermi e modi per tornare alle sezioni precedenti. Secondo Apple Human Interface Guidelines (2025), una navigazione ben progettata riduce il carico cognitivo dell'utente del 40% e gli utenti impiegano il 25% in meno di tempo per cercare informazioni. Padroneggiando i principi di base dell'architettura degli schermi, potrete creare applicazioni con una struttura intuitivamente chiara.
Punti chiave
L'architettura degli schermi e la navigazione è la struttura portante di un'applicazione mobile che definisce le schermate disponibili e i modi per spostarsi tra di esse. Ogni schermata risolve un compito specifico: elenco prodotti, scheda prodotto, carrello o modulo di pagamento. Secondo Apple Human Interface Guidelines (2025), una navigazione ben progettata riduce il carico cognitivo dell'utente del 40%. Gli sviluppatori principianti dovrebbero iniziare con uno schema semplice di tre o cinque schermate.
Qualsiasi architettura di schermi include tre elementi di base: schermate, transizioni e contenitori di navigazione. Le schermate mostrano il contenuto, le transizioni gestiscono le animazioni di cambio schermata e i contenitori memorizzano la cronologia degli spostamenti dell'utente. Su Android questo ruolo è svolto da FragmentManager, su iOS — da UINavigationController. Comprendere questi tre componenti è il primo passo verso la progettazione di un'interfaccia user-friendly.
Nelle applicazioni mobili si distinguono quattro tipi principali di navigazione: a pila, modale, a schede e gestuale. Il modello a pila funziona come una pila di carte — ogni nuova schermata viene posizionata sopra e il pulsante "Indietro" rimuove la carta superiore. Secondo Nielsen Norman Group (2024), la navigazione a pila è il modello più prevedibile, compreso dal 94% degli utenti senza formazione. Iniziare con una pila è raccomandato perché è intuitivamente chiara per gli utenti di qualsiasi piattaforma.
Le finestre modali sono schermate temporanee che richiedono un'azione prima di tornare al contenuto principale. Vengono utilizzate per un singolo compito: confermare un'azione, modulo di accesso o selezione di un'opzione. A differenza di una pila, una finestra modale non viene salvata nella cronologia di navigazione. Il tipo di navigazione viene scelto in base ai casi d'uso dell'applicazione.
Su iOS, la navigazione è costruita attorno a UINavigationController — un controller che gestisce la pila di schermate. UINavigationController aggiunge automaticamente una barra di navigazione con titolo e pulsante "Indietro". Secondo Apple Developer Documentation (2025), l'85% delle app nell'App Store utilizza UINavigationController come modello di navigazione principale. Gli sviluppatori iOS principianti devono solo padroneggiare push e pop combinati con le basi del design UX/UI.
Durante una transizione push, una nuova schermata viene inserita nella pila di navigazione e l'utente vede un'animazione di scorrimento da destra. Durante una transizione pop, la schermata corrente viene rimossa dalla pila e l'utente torna a quella precedente. UINavigationController memorizza riferimenti a tutte le schermate nella pila, consentendo all'utente di tornare indietro di diversi passi. In IT Sectr, utilizziamo questo approccio in tutti i progetti iOS per costruire scenari utente lineari.
Su Android, l'architettura degli schermi è implementata tramite Navigation Component — una libreria di Google per costruire la navigazione. Navigation Component utilizza un grafo di navigazione (nav graph), dove ogni schermata è un nodo e le transizioni sono archi tra di essi. Secondo Android Developers Guide (2025), Navigation Component riduce gli errori di navigazione del 60% rispetto a FragmentManager manuale. Si consiglia agli sviluppatori Android principianti di padroneggiare subito Navigation Component.
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
}
// In nav_graph.xml:
<!--
<fragment android:id="@+id/homeFragment"
android:name=".HomeFragment" />
<fragment android:id="@+id/detailFragment"
android:name=".DetailFragment" />
<action android:id="@+id/toDetail"
app:destination="@id/detailFragment" />
-->
// Navigare al clic del pulsante:
view.findViewById<Button>(R.id.open_detail).setOnClickListener {
findNavController().navigate(R.id.toDetail)
}
Prima di Navigation Component, gli sviluppatori gestivano le transizioni tramite FragmentManager — una classe di sistema per sostituire i fragment. FragmentManager lavora con transazioni: replace, add, remove per cambiare i fragment sullo schermo. Tuttavia, richiede una gestione manuale della pila e degli stati, che spesso porta a errori. Google raccomanda ufficialmente Navigation Component come alternativa più sicura a FragmentManager manuale.
Gli sviluppatori principianti commettono spesso errori tipici quando progettano l'architettura degli schermi. Il più comune è l'assenza di un centro di controllo unico della navigazione, quando le transizioni sono sparse in tutto il codice. Secondo l'analisi di Google Play Console (2025), le app con navigazione caotica hanno il 37% in più di segnalazioni di crash relative alle transizioni. Un router unico o un grafo di navigazione risolve questo problema.
Molti principianti dimenticano di gestire il pulsante "Indietro" di sistema su Android o il gesto di scorrimento su iOS. Un ritorno non gestito porta al blocco dell'applicazione o all'uscita imprevista. Su Android, Navigation Component gestisce il pulsante "Indietro" automaticamente se il grafo di navigazione è configurato. Di seguito un esempio di gestione del pulsante "Indietro" con OnBackPressedDispatcher.
class MyFragment : Fragment() {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
val callback = OnBackPressedCallback(true) {
if (isSheetExpanded) {
collapseSheet()
isEnabled = false
} else {
isEnabled = false
requireActivity().onBackPressedDispatcher.onBackPressed()
}
}
requireActivity().onBackPressedDispatcher.addCallback(
viewLifecycleOwner, callback
)
}
}
Il codice verifica se il pannello Bottom Sheet è espanso: se sì — lo comprime, se no — passa l'evento al dispatcher di sistema. Questo è un modello standard per la gestione personalizzata di "indietro" in Android.
Domande frequenti
L'architettura degli schermi è la struttura delle transizioni tra le schermate di un'applicazione mobile. Determina quali schermate sono disponibili per l'utente, in quale ordine si aprono e come l'utente torna alla sezione precedente. Un'architettura ben progettata rende l'interfaccia intuitiva e riduce significativamente il numero di bug relativi alla navigazione durante lo sviluppo.
Nelle applicazioni mobili si distinguono i tipi di navigazione a pila, modale e a schede. La navigazione a pila funziona come una pila di schermate con ritorno indietro. La modale apre finestre temporanee per un singolo compito. La navigazione a schede divide l'app in sezioni con commutazione tra di esse. La scelta del tipo dipende dai compiti dello sviluppatore e dalle esigenze degli utenti.
La navigazione a pila viene salvata nella cronologia delle transizioni — l'utente può tornare a qualsiasi schermata precedente. Le finestre modali non vengono salvate: dopo la chiusura, l'utente torna direttamente alla schermata da cui ha aperto la finestra. La pila è adatta per compiti sequenziali (selezione prodotto — carrello — pagamento), le finestre modali per azioni singole.
Per Android si consiglia di utilizzare Navigation Component — una libreria moderna di Google. Gestisce automaticamente la pila, il pulsante "Indietro" e i deep link. FragmentManager è uno strumento più vecchio che richiede una gestione manuale dello stato. Google raccomanda ufficialmente Navigation Component per tutti i nuovi progetti.
Senza un'architettura degli schermi ben pianificata, l'applicazione si trasforma rapidamente in caos, dove ogni nuova schermata viene aggiunta senza sistema. Ciò porta a errori di transizione e difficoltà nell'aggiungere nuove funzionalità. Secondo Google Play Console, le app senza architettura di navigazione hanno il 37% di bug in più. Pianificare le schermate all'inizio fa risparmiare fino al 30% del tempo di sviluppo.
Riepilogo
Svilupperemo un'applicazione mobile chiavi in mano
IT Sectr crea applicazioni iOS e Android per startup e aziende dal 2017. Ti consulteremo e ti proporremo la soluzione migliore.