Oto krótki przegląd tego, co powinieneś wiedzieć, aby osiągnąć swój cel. Nie zamierzam wchodzić tak daleko w szczegóły, zwłaszcza, że nigdy osobiście nie korzystałem z RoR. Zauważ, że niektóre z tych części mogą nie odnosić się dokładnie do RoR, ale ogólna idea, która za nimi stoi, nadal obowiązuje. Tobie pozostawię zbadanie i wymyślenie, jak wdrożyć każdy pojedynczy komponent.
Ogólny przebieg wszystkiego jest następujący:
Aplikacja na Androida <==> Sieć <==> Usługa internetowa <==> MySQL
Zwróć uwagę na obosieczne strzałki, ponieważ dane będą przepływać w obu kierunkach.
Android App
jest klientem, a Web Service
i MySQL
bazy danych znajdują się na Twoim Web Server
. Uwzględniłem tylko część dotyczącą sieci dla kompletności, ale nie powinieneś nic robić, gdy dane zostaną przesłane do sieci.
Krótki przegląd każdej sekcji:
Aplikacja na Androida:
Aplikacja dla systemu Android to klient, który wysyła i pobiera dane z serwera WWW. Zakładam, że w swojej aplikacji pozwolisz użytkownikowi wykonać pewne zadania, które w istocie stają się danymi, które w pewnym momencie chcesz wysłać na serwer.
Weźmy na przykład, że użytkownik powinien mieć możliwość wpisania swojego imienia i ulubionego zwierzęcia. Powiedzmy, że istnieje rzeczywisty przycisk „Prześlij”, który użytkownik może kliknąć. Po kliknięciu tego przycisku „Prześlij” dane powinny zostać opakowane w odpowiedni format do wysłania przez sieć. Dwa z najczęstszych to JSON
i XML
. Gdy dane zostaną poprawnie sformatowane, będziesz chciał wysłać dane do serwera przy użyciu pewnego rodzaju protokołu sieciowego, takiego jak HTTP
. Aby przesłać dane, musisz oczywiście mieć jakiś URL
jako cel. Powiedzmy, że celem jest www.example.com/webservice.php
. Celem tym jest nasza usługa sieciowa zlokalizowana na serwerze sieciowym.
Po wysłaniu danych serwer odpowie niektórymi danymi, w którym możesz zrobić z nimi, co chcesz. Może wyświetlić go użytkownikowi lub umieścić w SQLite
bazy danych, a nawet obu.
Kluczową rzeczą, o której należy pamiętać, jest to, że nie dzieje się żadna magia. Wszystko, co właśnie opisałem, zostanie zaimplementowane w kodzie Java, który w pewnym momencie napiszesz w swojej aplikacji na Androida.
Kluczowe pomysły, które powinieneś zbadać i dowiedzieć się, jak zaimplementować w kodzie Java:
- JSON i XML
- HTTP w Javie
- ODPOCZYNEK i MYDŁO
- Tutaj to doskonały film o możliwych sposobach konfiguracji struktury aplikacji na Androida.
- Upewnij się, że wszystkie operacje sieciowe w aplikacji na Androida wykonujesz w innym wątku. Prostą w użyciu metodą jest usługa intencji .
Usługa internetowa:
To jest często najbardziej zagmatwana część. Web Service
to po prostu punkt wejścia dla klientów próbujących uzyskać dostęp do Web Server
. Moje wyjaśnienie tutaj może się nieco różnić w przypadku korzystania z RoR
, ale ta sama idea ma zastosowanie. Zwróć uwagę powyżej, że docelowy URL
był www.example.com/webservice.php
. Usługa sieciowa to dosłownie PHP
kod, który istnieje na serwerze WWW, o nazwie webservice.php
. W aplikacji na Androida, gdy wysyłasz dane na docelowy URL
używając HTTP
, kod Web Service zostanie wykonany na serwerze (a także będzie miał dostęp do danych, które na niego przesłałeś). Wewnątrz kodu usługi sieciowej będziesz w zasadzie wyodrębniać dane (które są w pewnym formacie, takim jak JSON), pobierać niezbędne części, a następnie coś z nimi robić. W takim przypadku najprawdopodobniej będziesz wysyłać zapytania do bazy danych. W PHP łatwo jest napisać kod, który łączy i odpytuje bazę danych MySQL, która również działa na serwerze. Gdy odpowiedź z bazy danych zostanie pobrana przez serwer sieciowy, możesz odesłać ją z powrotem do aplikacji na Androida. Tak jak poprzednio, pamiętaj, że nie dzieje się żadna magia. Wszystkie te pomysły są wdrażane przez napisanie kodu.
Główne pomysły do zbadania:
- Usługa internetowa Ruby on Rails
- Jak uzyskać dostęp do bazy danych MySQL za pomocą Ruby on Rails
Baza danych MySQL:
Tutaj będziesz przechowywać dane na serwerze WWW. Nie będę się tutaj zagłębiał, ponieważ będzie to wymagało od ciebie dużo czytania na temat konfigurowania bazy danych MySQL na serwerze sieciowym. Ważne jest również, aby nauczyć się tworzyć odpowiednie zapytania, takie jak SELECT
, INSERT
i tak dalej.
Główne pomysły do zbadania:
Jak skonfigurować bazę danych MySQL na serwerze WWW
Jeśli potrzebujesz wyjaśnienia, daj mi znać!