Ho un'app che richiede internet per sincronizzare un webservice con un database locale di dati db. Quindi un db fetch locale viene utilizzato per popolare diversi oggetti per un MapView e un TableView in un tabbarcontroller. Sto guardando questi 2 scenari:Qual è il flusso di lavoro più efficace per questa app iOS?
Il vantaggio principale di "A" è che non devo per precaricare l'applicazione con un database, anche se è un piccolo db (circa 100 registrazioni). Il problema è che viene contorto. Se non ci sono connessioni Internet, in MapView, l'utente vede una mappa ma il refreshButton è disabilitato. Quindi questo non è un problema. Ma l'utente può ancora andare al tableview e vedrà una tabella vuota.
Il vantaggio principale di "B" è che con un db precaricato, l'app avrà sempre un'origine dati pronta per la stampa e la quotazione. Non so davvero come precaricare l'app con un db però.
Mi piacerebbe passare il primo percorso, "A". La mia domanda principale è, dato che in questo momento ho disabilitato il refreshButton su MapView in modo che funzioni solo una volta che i dati sono stati ottenuti dal web ... che array ordinati è vuoto al momento del lancio. Quindi se l'utente va al TableVC sarà vuoto. Così com'è, l'utente deve prima toccare il pulsante di aggiornamento prima di andare al tableview.
Qual è il modo più efficace per affrontare questo?
+1 bella spiegazione. – Dilip
Casi di bordo, sono un tale dolore da codificare, ma sono così importanti per l'esperienza dell'utente. Penso che "A" sia la tua migliore opzione (la mia opinione). È possibile bloccare l'utilizzo dell'intera app con "È necessario scaricare i dati, ottenere una connessione Internet" se non si dispone di dati iniziali + nessuna connessione. È possibile scrivere codice per gestire lo scenario "nessun dato" su ogni schermata a cui l'utente può accedere quando non ha dati. La maggior parte delle tabelle contiene un caso "nessun dato" che aggiunge una riga che informa l'utente. La risposta migliore dipende dai casi e dai requisiti di utilizzo e solitamente è influenzata dalle preferenze personali. – DBD
Grazie Dilip, vorrei davvero che ci fosse un modulo xcode per gestire la logica, per mostrarti cosa è in base al tuo codice perché Im molto visivo. DBD, anche se dovrei imparare come codificare per i primi scenari di lancio e così, penso che l'utente debba avere una connessione internet richiesta. Non sono così sicuro di bloccare l'intera app ma almeno lo scenario "nessun dato". Anche se, è essenzialmente la stessa cosa che bloccare l'intera app perché non vedranno nulla tranne la shell. Poi di nuovo, in termini di UX, è meglio lasciargli vedere qualcosa. Quindi sono perplesso :(Immagino di dover seguire la via difficile – marciokoko