2013-07-16 13 views
19

Planuję wdrożenie aplikacji i doszedłem do punktu, w którym nie wiem, jakie jest najlepsze podejście.Jak synchronizować dane między różnymi urządzeniami

Scenariusz:

Mam app gdzie Robię listę rzeczy do zrobienia i dodaję 3 pozycji. Używam do tego telefonu. Następnie biorę tablet i chcę kontynuować dodawanie kolejnego zadania. Potem po chwili biorę telefon mojej żony i chcę dodać 2 nowe zadania.

Zasadniczo chcę mieć bardzo prosty sposób przechowywania zadań online i móc zsynchronizować go z aplikacją.

widzę dwa możliwe sposoby:

  • mieć serwer WWW z bazą + internetowych połączeń serwisowych. Ma to tę wadę, że gospodarz jest płatny, nauczyć się kilku dodatkowych technik usługi mysql + web.

  • Przechowuj jakoś dane w chmurze i zezwól aplikacji na logowanie się, aby uzyskać dostęp do konta, które przechowuje plik. Myślę tutaj o czymś takim jak Google Drive/Dropbox. Ale nie wiem, w jaki sposób będę w stanie zsynchronizować tylko zaktualizowane wartości, a nie cały plik. Ponieważ myślę, jeśli przechowuję wszystkie zadania w jednym pliku, za każdym razem, gdy aktualizuję plik, muszę go przesłać w całości, co nie jest najlepszym rozwiązaniem.

Jestem otwarty na wszelkie porady. Jakie podejście poleciłbyś?

+0

Google Cloud Save brzmi jak idealne rozwiązanie, ale nie zostało jeszcze wydane ... http: //developer.android.com/google/gcs/index.html –

Odpowiedz

6

Zajrzę do Google App Engine lub Amazon Web Services. Oba dają darmowy przydział miesięcznie, a jeśli przejdziesz dalej, to zaczniesz płacić, prawdopodobnie przez jakiś czas nie przejdziesz przez wolny poziom.

AWS jest nieco bardziej dojrzały niż GAE obecnie i wydawał się być nieco łatwiejsze do wdrożenia, że ​​GAE kiedy badałem im

+3

Dziękujemy za opcje. Również DropBox Datastore api wydaje się naprawdę fajną darmową alternatywą ... – Alin

2

Spójrz na nowej klasy szkolenia dla adapterów Sync: http://developer.android.com/training/sync-adapters/index.html dla podstawy przesyłania danych z urządzenia na serwer.

Na urządzeniu z systemem Android sugeruję przechowywanie zadań w dostawcy treści. Pomaga to w śledzeniu aktualizacji od czasu ostatniej synchronizacji. Następnie możesz zapytać dostawcę podczas synchronizacji, wysyłać tylko te dane, które zostały zaktualizowane i przechowywać dane na serwerze.

Prawdopodobnie powinien zostać zapisany czas ostatniej aktualizacji na urządzeniu, aby można było stwierdzić, czy serwer zawiera dane, które nie znajdują się jeszcze na urządzeniu. Pamiętaj, że będziesz musiał także pobierać zadania, jeśli chcesz, aby wszystkie urządzenia były zsynchronizowane.

0

Możesz rzucić okiem na nasz framework Rethync (darmowy ze źródłem). Za jego pomocą można uprościć zadanie wykrywania modyfikacji i synchronizować tylko zaktualizowane dane. Następnie Rethync zapewnia interfejs API zarówno po stronie klienta, jak i po stronie serwera, dzięki czemu możesz utworzyć własną usługę (i hostować ją po stronie internetowej) lub możesz napisać własny transport dla wybranej usługi w chmurze (w przyszłości dostarczymy niektóre transporty , są obecnie w fazie rozwoju).

+0

Wygląda na to, że nigdy nie było to przed premierą. Czy to nadal jest aktywnie rozwijane? Jakieś aktualizacje? Mapa drogowa? – IInspectable

+0

@IInspectable Jest stabilny iw pełni funkcjonalny i zawiera dokumentację. W przypadku zgłoszenia problemu, odpowiednio zaktualizujemy implementację. Jeśli chodzi o przyszłe zmiany - silnik w jego obecnym stanie jest samowystarczalny, tj. Wszelkie nowe funkcje nie pasowałyby do obecnej koncepcji silnika synchronizacji. Z drugiej strony rzeczy takie jak TLS już istnieją (za pomocą transportów obsługujących TLS). –

15

Istnieje także folder "Dane aplikacji" Dysku Google.

https://developers.google.com/drive/android/appfolder

Ma to tę zaletę, że przy użyciu przestrzeni dyskowej użytkownika.

+1

Myślę, że musisz mieć to samo konto na obu urządzeniach, co prawdopodobnie nie jest prawdą w przypadku "odbierania telefonu mojej żony". – TWiStErRob

+0

@TWiStErRob Czy nie oznacza to, że do zalogowania się na urządzeniu potrzebne jest to samo konto? – CamHart

+2

@CamHart Masz rację. Myślę, że TWiStErRob mówi, że OP raczej nie będzie mieć konta na telefonie żony. Chociaż może to być łatwy sposób synchronizowania danych na różnych urządzeniach, niekoniecznie spełnia wszystkie wymagania. – Mike

Powiązane problemy