Ich habe eine App, die Internet benötigt, um einen Webservice mit einer lokalen Core-Datenbank zu synchronisieren. Dann wird ein lokaler DB-Abruf verwendet, um verschiedene Objekte für ein MapView und ein TableView in einem Tabbar-Controller zu füllen. Im Blick auf diese zwei Szenarien:Was ist der effektivste Workflow für diese iOS App?
Der Hauptvorteil von „A“ ist, dass ich zu nicht die App mit einer Datenbank vorzuladen, obwohl seine eine kleine db (ca. 100 Einträge). Das Problem ist, dass es sich verschlingt. Wenn in MapView keine Internetverbindung besteht, sieht der Benutzer eine Map, aber der refreshButton ist deaktiviert. Das ist also kein Problem. Aber der Benutzer kann immer noch zur Tabellenansicht gehen und er wird einen leeren Tisch sehen.
Der Hauptvorteil von "B" ist, dass die App mit einer vorinstallierten db immer eine Datenquelle zum Plotten und Auflisten bereithält. Ich weiß nicht wirklich, wie man die App mit einem DB vorlädt.
Ich möchte irgendwie die erste Route, "A" gehen. Meine Hauptfrage ist, da ich gerade den refreshButton in MapView deaktiviert habe, so dass es nur funktioniert, sobald die Daten aus dem Web stammen ... dass sortedArray beim Start leer ist. Wenn der Benutzer zum TableVC geht, ist es leer. So wie es steht, muss der Benutzer zuerst auf die Aktualisierungsschaltfläche tippen, bevor er zur Tabellenansicht geht.
Was ist der effektivste Weg, damit umzugehen?
+1 nette Erklärung. – Dilip
Edge Fälle, sie sind so schwer zu programmieren, aber sie sind so wichtig für die Benutzererfahrung. Ich denke "A" ist deine beste Wahl (meine Meinung). Sie können die Verwendung der gesamten App mit einem "Sie müssen die Daten herunterladen, erhalten eine Internetverbindung" blockieren, wenn Sie keine anfänglichen Daten + keine Verbindung haben. Sie könnten Code schreiben, um das "no data" -Szenario auf jedem Bildschirm zu behandeln, zu dem der Benutzer gelangen kann, wenn er keine Daten hat. Die meisten Tabellen enthalten einen Fall "keine Daten", der eine Zeile hinzufügt, die den Benutzer informiert. Die beste Antwort hängt von Ihren Anwendungsfällen und Anforderungen ab und ist in der Regel von persönlichen Präferenzen abhängig. – DBD
Danke Dilip, ich wünschte wirklich, es gäbe ein xcode-Modul, um Logik zu handhaben, um Ihnen zu zeigen, was es gemäß Ihrem Code ist, weil ich sehr visuell bin. DBD, obwohl ich lernen sollte, wie man für erste Startszenarien und so Code programmiert, denke ich, dass der Benutzer eine Internetverbindung benötigt. Ich bin nicht so sicher über das Blockieren der gesamten App, aber zumindest "keine Daten" -Szenario. Das ist im Wesentlichen das Gleiche wie das Blockieren der gesamten App, weil sie nichts anderes als die Shell sehen. Andererseits ist es in UX-Form besser, sie etwas sehen zu lassen. Also ich bin ratlos :(Ich denke, ich muss die harte Route gehen – marciokoko