Ecco una breve panoramica di ciò che dovresti sapere per raggiungere il tuo obiettivo. Non entrerò così tanto nei dettagli, soprattutto perché non ho mai usato personalmente RoR. Si noti che alcune di queste parti potrebbero non riguardare esattamente il RoR, ma l'idea generale alla base si applica comunque. Lascio a te la ricerca e il modo in cui implementare ogni singolo componente.
Il flusso generale di tutto è il seguente:
App Android <==> Rete <==> Servizio Web <==> MySQL
Nota le frecce a doppio taglio poiché i dati scorreranno in entrambe le direzioni.
L'Android App
è il client e il Web Service
e MySQL
database si trovano sul tuo Web Server
. Ho incluso solo la parte Rete per completezza, ma non dovresti fare nulla una volta che i dati sono stati inviati alla rete.
Una breve panoramica di ogni sezione:
App Android:
L'App Android è il client che invia e recupera i dati dal Web Server. Presumo che nella tua app consentirai all'utente di svolgere alcune attività che in sostanza diventano i dati che desideri inviare al server ad un certo punto.
Prendi ad esempio, l'utente dovrebbe essere in grado di inserire il suo nome e l'animale preferito. Diciamo che esiste un vero e proprio pulsante "Invia" su cui l'utente può fare clic. Quando si fa clic su questo pulsante "Invia", dovrebbe avvolgere i dati in un formato appropriato per essere inviati attraverso la rete. Due dei più comuni sono JSON
e XML
. Una volta che i dati sono stati formattati correttamente, vorrai inviare i dati al server utilizzando un tipo di protocollo di rete come HTTP
. Per inviare i dati, ovviamente, devi avere alcuni URL
come bersaglio. Diciamo che il target è www.example.com/webservice.php
. Questo target è il nostro Web Service che si trova sul Web Server.
Una volta inviati i dati, il server risponderà con alcuni dati a quel punto puoi fare quello che vuoi con esso. Forse mostralo all'utente o inseriscilo in un SQLite
database, o anche entrambi.
La cosa fondamentale da ricordare è che non c'è nessuna magia in corso. Tutto ciò che ho appena descritto verrà implementato nel codice Java che prima o poi scriverai nella tua applicazione Android.
Idee chiave che dovresti ricercare di più e capire come implementare nel codice Java:
- JSON e XML
- HTTP in Java
- RIPOSO e SAPONE
- Qui è un eccellente video sui possibili modi per configurare la struttura della tua app Android.
- Assicurati di eseguire tutte le operazioni di rete nella tua app Android su un thread diverso. Un metodo facile da usare è un Intent Service .
Servizio Web:
Questa è spesso la parte più confusa. Un Web Service
è semplicemente un punto di ingresso per i client che tentano di accedere al Web Server
. La mia spiegazione qui potrebbe differire leggermente quando si utilizza RoR
, ma vale la stessa idea. Nota sopra che il target URL
era www.example.com/webservice.php
. Il servizio web è letteralmente il PHP
codice che esiste sul Web Server, chiamato webservice.php
. Nella tua app Android, quando invii dati all'URL
di destinazione utilizzando HTTP
, il codice del Web Service verrà eseguito sul server (e avrà anche accesso ai dati che gli hai inviato). All'interno del codice del tuo servizio Web, estrarrai sostanzialmente i dati (che sono in un formato come JSON), afferrerai le parti necessarie e quindi farai qualcosa con esso. In questo caso molto probabilmente interrogherai il database. In PHP è facile scrivere codice che connette e interroga un database MySQL che è anche in esecuzione sul server. Quando la risposta del database viene recuperata dal Web Server, puoi rispedirla all'App Android. Proprio come prima, ricorda, non c'è nessuna magia in corso. Tutte queste idee vengono implementate scrivendo del codice.
Idee principali da ricercare:
- Servizio web Ruby on Rails
- Come accedere a un database MySQL utilizzando Ruby on Rails
Database MySQL:
Qui è dove memorizzerai i dati sul Web Server. Non ho intenzione di approfondire qui perché questo richiederà solo di leggere molto su come configurare un database MySQL su un server web. È anche importante imparare a creare le query appropriate come SELECT
, INSERT
e così via.
Idee principali da ricercare:
Come configurare un database MySQL su un server web
Se hai bisogno di chiarimenti, fammi sapere!