10

Rozwijamy natywną aplikację na Androida (iOS i sieć do naśladowania), w której użytkownicy mogą wspólnie tworzyć album.Jak opracować natywną aplikację dla Androida w trybie offline?

Chcemy jak najbardziej bezproblemowo korzystać, gdy urządzenie nie jest w stanie połączyć się z serwerem. Coś jak wspomniano w tym Hoodie blog, ale Hoodie jest teraz dla sieci i iOS i teraz szukamy Androida.

Problem

Utrzymanie danych albumów, przyjaciół, zdjęcia (URL/lokalnym, a nie bitmapy) po stronie klienta. Możliwość synchronizacji offline tworzenia/aktualizacji operacji na serwerze w późniejszym czasie, z rozwiązywaniem konfliktów.

Aktualne badania

  1. HTTPResponseCache: Wady: tylko skrzynek wnioski, które zostały dotknięte raz. Dodatkowo potrzebny jest inny system do obsługi operacji tworzenia/aktualizacji.
  2. App42, Kinvey: Backend-as-a-service; Wady: Chcemy mieć własny backend.
  3. Microsoft Sync Framework Toolkit: Nie wiem, jak to działa z Android
  4. PouchDB
  5. Superbus: Rozwiązuje część problemu

zwyczaj

utrzymać dane w SQLite na Androida i MySQL na serwer Synchronizuj za pomocą Android Sync Adapter. Jednak może to być czasochłonne i mieć błędy podczas uruchamiania.

W jaki sposób należy rozwiązać ten problem?

Odpowiedz

9

Pracuję nad projektem w tej chwili i musimy śledzić dostawy i weryfikować dostawy, nawet gdy użytkownik jest offline. Podejście, którego używam, polega na użyciu tego ContentProvider wtyczki Simple Content Provider. I sprawdzam, czy jest internet, czy nie, a jeśli go nie ma. Przechowuje dane do dostawcy i zmienia wszystko, co należy zmienić w DATABASE i sprawić, że mój użytkownik uwierzy, że ukończył zamówienie. I mam SyncAdapter czekając, aż pojawi się internet. I mam też usługę push, aby odświeżyć bazę danych po zmianie bazy danych. Posiadanie wiedzy o Google Cloud Messaging zaoszczędziłoby użytkownikowi dużo czasu pracy na baterii. Mogą być lepsze opcje. Ale z mojego małego doświadczenia z Android wynika, że ​​moja mała pomoc może być.

+1

Po przeszukiwaniu, myślę, że to jest właśnie sposób to zrobić. Dzięki. – Sangharsh

2

Czy spojrzałeś na CouchBase Server i CouchBase Lite?

Zapewniają one potężne narzędzie o nazwie SyncGateway, które zapewnia użytkownikowi synchronizację i łączenie danych między serwerem a wewnętrzną bazą danych. Nie musisz niczego koduwać w aplikacji mobilnej, aby uzyskać synchronizację.

Couchbase Lite jest dostępna na iOS i Androida. Dostępne jest również plugin dla Cordova/PhoneGap.

nigdy nie miałem żadnego problemu, aby go skompilować, właśnie dla iOS pamiętać skompilować dla iOS6 +, to nie działa z iOS5

+0

Nie, nie przyjrzałem się temu wcześniej. Wygląda jednak obiecująco. W tej chwili jest już późno, aby przejść z tą architekturą, ponieważ rozwój jest w połowie drogi. – Sangharsh