Mam aplikację, która wymaga Internetu do synchronizacji usługi internetowej z lokalną bazą danych db. Następnie pobieranie lokalne db jest używane do zapełniania różnych obiektów dla MapView i TableView w kontrolce tabbarcontroller. Im patrząc na te 2 scenariusze:Jaki jest najbardziej efektywny przepływ pracy dla tej aplikacji na iOS?
Główną zaletą „A” jest to, że nie mam do wstępnego ładowania aplikacji z bazą danych, choć jej małą db (około 100 rekordów). Problem polega na tym, że robi się zawikłany. Jeśli nie ma połączenia z Internetem, w MapView użytkownik widzi mapę, ale przycisk refreshButton jest wyłączony. To nie jest problem. Ale użytkownik nadal może przejść do widoku table, a zobaczy on pustą tabelę.
Główną zaletą "B" jest to, że przy wstępnie załadowanej db, aplikacja zawsze będzie miała źródło danych gotowe do drukowania i wystawiania. Naprawdę nie wiem jak wstępnie załadować aplikację z db.
Chciałbym wybrać pierwszą trasę, "A". Moje główne pytanie brzmi: od teraz wyłączam refreshButton na MapView, tak że działa on tylko wtedy, gdy dane są pobierane z sieci ... To sortedArray jest puste po uruchomieniu. Więc jeśli użytkownik przejdzie do TableVC, będzie on pusty. W tej wersji użytkownik musi najpierw nacisnąć przycisk odświeżania przed przejściem do widoku stołu.
Jaki jest najskuteczniejszy sposób radzenia sobie z tym?
+1 miłe wyjaśnienie. – Dilip
Futerały na krawędzie są tak trudne do nakręcenia, ale są tak ważne dla wygody użytkownika. Myślę, że "A" to najlepsza opcja (moja opinia). Możesz zablokować korzystanie z całej aplikacji z "Musisz pobrać dane, uzyskać połączenie internetowe", jeśli nie masz danych początkowych + brak połączenia. Możesz napisać kod do obsługi scenariusza "brak danych" na każdym ekranie, na który użytkownik może się dostać, gdy nie ma danych. Większość tabel zawiera przypadek "brak danych", który dodaje wiersz informujący użytkownika. Najlepsza odpowiedź zależy od przypadków użycia i wymagań i zwykle jest stronnicza według osobistych preferencji. – DBD
Dziękuję Dilipowi, naprawdę żałuję, że nie ma modułu xcode do obsługi logiki, aby pokazać, co to jest zgodnie z kodem, ponieważ jestem bardzo wizualny. DBD, chociaż powinienem nauczyć się kodować dla scenariuszy pierwszego uruchomienia i takie, myślę, że użytkownik powinien mieć wymagane połączenie internetowe. Nie jestem pewien co do zablokowania całej aplikacji, ale przynajmniej scenariusza "brak danych". Chociaż jest to w zasadzie to samo, co blokowanie całej aplikacji, ponieważ nie widzą niczego poza powłoką. Z drugiej strony, w kategoriach UX, lepiej jest pozwolić im coś zobaczyć. Więc jestem zakłopotany :(Myślę, że muszę iść na trudną trasę – marciokoko