Moje pytanie dotyczy jednego punktu - Zarządzanie danymi w aplikacji mobilnej. Stworzyłem aplikację mobilną, w której dane pochodzą z serwera. Dane obejmują zarówno tekst, jak i obrazy. Poniżej przedstawiono kroki robie tego:Zarządzanie danymi aplikacji mobilnych
Pierwsze uruchomienie:
1. Data Server dostać.
2. Zapisz dane serwera w bazie danych Sqlite.
3. Pokaż dane Sqlite.Następne uruchomienia:
1. Pokaż dane Sqlite.
2. Pobierz dane serwera w tle.
3. Usuń poprzednie dane Sqlite.
4. Zapisz nowe dane serwera w bazie danych Sqlite.
5. Pokaż dane Sqlite.
Mam kilka pytań na temat tych kroków:
1. Jest to właściwe podejście? Innym sposobem może być pokazywanie danych za każdym razem z serwera, ale to nie wyświetlałoby danych bezpośrednio na ekranie (w zależności od szybkości Internetu).
2. Pomyślałem również o porównaniu danych Sqlite
z nowymi danymi serwera. Ale stanął przed wielkim wyzwaniem. Nowe dane serwera mogą mieć nowe rekordy lub usunięte rekordy. Ponadto nie mogłem znaleźć odpowiedniego podejścia do porównania każdego pola bazy danych z danymi JSON
.
Więc jakie jest najlepsze podejście do porównywania danych lokalnych z danymi nowego serwera?
3. Za każdym razem, gdy usuwam dane Sqlite
i wstawiam nowe dane, a następnie odświeżam ekran (który ma UITableView
), miga on przez sekundę, co jest oczywiste. Jak uniknąć tego problemu, jeśli przestrzegane są kroki 3, 4, 5?
4. 4. Jak powinienem kontynuować aktualizację danych w przypadku, gdy wracam na ekranie za każdym razem, gdy aplikacja staje się aktywna? Jestem bardzo świadomy NSOperationQueues
lub przy użyciu GCD
o to chodzi. Ale co jeśli jestem szalony i chodzę tam iz powrotem na ekrany od nowa. W kolejce pojawi się numer NSOperations
.
w swoim podejściu, jeśli dane serwera nie zawiera nową zmianę danych/somthing na serwerze. również w tej sytuacji pobierasz dane serwera w tle? – Jamil
@ jamil65able: Tak, to jest. – Nitish
@Nitish R u Kodowanie po stronie serwera i urządzenia –