iOSSwift: modifica del rootViewController in AppDelegate per presentare il flusso principale o di accesso / onboarding


introduzione

È spesso utile presentare un'esperienza di prima esecuzione ai nuovi utenti della tua app. Questo potrebbe essere per un numero qualsiasi di motivi, come chiedere loro di accedere (se necessario per la tua situazione), spiegare come utilizzare l'App o semplicemente informarli di nuove funzionalità in un aggiornamento (come Notes, Photos e Music do in iOS11).

Osservazioni

In primo luogo, poiché hai a che fare con flussi multipli, è qui che gli storyboard possono essere usati efficacemente. Per impostazione predefinita, l'applicazione utilizza Main.storyboard per il flusso principale. Il tuo onboarding / flusso alternativo può essere contenuto in uno storyboard secondario, ad es. Onboarding.storyboard

Questo ha una serie di vantaggi:

  • in un team di sviluppatori, il lavoro su ciascun flusso di utenti può essere separato
  • controllo sorgente più chiaro (git)
  • separazione degli interessi

Quando la tua app si avvia, puoi determinare quale flusso deve essere presentato. La logica per questo può essere contenuta nel tuo AppDelegate:

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
    let isFirstRun = true // logic to determine goes here
    if isFirstRun {
        showOnboarding()
    }
    return true
}

Per mostrare il flusso di Onboarding, vale la pena considerare come vorresti gestire l'esperienza di licenziamento una volta che la persona che lo usa ha completato il viaggio e che è semanticamente corretto per ciò che stai cercando di creare.

approcci:

I due approcci principali sono:

  1. Scambia il controller della vista radice della finestra principale dell'app
  2. Presenta il flusso di bordo come un viaggio modale, sovrapponendo il flusso principale.

L'implementazione di questo dovrebbe essere contenuta in un'estensione di AppDelegate.

Swift: modifica del rootViewController in AppDelegate per presentare il flusso principale o di accesso / onboarding Esempi correlati