Hier is een kort overzicht van wat u moet weten om uw doel te bereiken. Ik ga niet zo ver in detail treden, vooral omdat ik RoR nooit persoonlijk heb gebruikt. Merk op dat sommige van deze onderdelen misschien niet precies betrekking hebben op RoR, maar het algemene idee erachter is nog steeds van toepassing. Ik laat het aan jou over om te onderzoeken en erachter te komen hoe je elk afzonderlijk onderdeel kunt implementeren.
De algemene stroom van alles is als volgt:
Android-app <==> Netwerk <==> Webservice <==> MySQL
Let op de tweesnijdende pijlen, aangezien gegevens in beide richtingen zullen stromen.
De Android App
is de klant, en de Web Service
en MySQL
database bevinden zich op uw Web Server
. Ik heb voor de volledigheid alleen het netwerkgedeelte toegevoegd, maar u hoeft niets te doen als de gegevens eenmaal op het netwerk zijn verzonden.
Een kort overzicht van elke sectie:
Android-app:
De Android-app is de client die gegevens verzendt en ophaalt van de webserver. Ik ga ervan uit dat je in je app de gebruiker een aantal taken laat uitvoeren die in wezen de gegevens worden die je op een gegeven moment naar de server wilt sturen.
Neem bijvoorbeeld dat de gebruiker zijn naam en favoriete dier moet kunnen invoeren. Laten we zeggen dat er een echte "Verzenden"-knop is waarop de gebruiker kan klikken. Wanneer op deze knop "Verzenden" wordt geklikt, moeten de gegevens in een juist formaat worden verpakt om over het netwerk te worden verzonden. Twee van de meest voorkomende zijn JSON
en XML
. Zodra de gegevens correct zijn geformatteerd, wilt u de gegevens naar de server sturen met behulp van een soort netwerkprotocol zoals HTTP
. Om de gegevens te kunnen verzenden, moet u natuurlijk een URL
. hebben als het doelwit. Laten we zeggen dat het doel www.example.com/webservice.php
. is . Dit doel is onze webservice die zich op de webserver bevindt.
Zodra u de gegevens hebt verzonden, reageert de server met enkele gegevens, waarna u ermee kunt doen wat u wilt. Laat het misschien aan de gebruiker zien, of plak het in een SQLite
database, of zelfs beide.
Het belangrijkste om te onthouden is dat er geen magie aan de hand is. Alles wat ik zojuist heb beschreven, zal worden geïmplementeerd in Java-code die u op een bepaald moment in uw Android-applicatie zult schrijven.
Belangrijkste ideeën die u meer zou moeten onderzoeken en uitzoeken hoe u deze in Java-code kunt implementeren:
- JSON en XML
- HTTP in Java
- REST en SOAP
- Hier is een uitstekende video over mogelijke manieren om de structuur van uw Android-app in te stellen.
- Zorg ervoor dat u alle netwerkbewerkingen in uw Android-app op een andere thread uitvoert. Een eenvoudig te gebruiken methode is een Intent Service .
Webservice:
Dit is vaak het meest verwarrende deel. Een Web Service
is gewoon een toegangspunt voor klanten die proberen toegang te krijgen tot de Web Server
. Mijn uitleg hier kan enigszins afwijken bij het gebruik van RoR
, maar hetzelfde idee is van toepassing. Merk hierboven op dat de doel URL
was www.example.com/webservice.php
. De webservice is letterlijk de PHP
code die bestaat op de webserver, genaamd webservice.php
. In uw Android-app, wanneer u gegevens verzendt naar de doel URL
met behulp van HTTP
, wordt de webservicecode uitgevoerd op de server (en heeft ook toegang tot de gegevens die u ernaartoe hebt verzonden). Binnenin uw webservicecode extraheert u in feite de gegevens (die in een of ander formaat zoals JSON zijn), grijpt u de benodigde onderdelen en doet u er vervolgens iets mee. In dit geval zult u hoogstwaarschijnlijk de database opvragen. In PHP is het gemakkelijk om code te schrijven die een MySQL-database verbindt en opvraagt die ook op de server draait. Wanneer de respons van de database is opgehaald door de webserver, kunt u deze terugsturen naar de Android-app. Onthoud, net als voorheen, er is geen magie aan de hand. Al deze ideeën worden geïmplementeerd door wat code te schrijven.
Belangrijkste ideeën om te onderzoeken:
- Ruby on Rails-webservice
- Hoe toegang te krijgen tot een MySQL-database met Ruby on Rails
MySQL-database:
Hier slaat u de gegevens op de webserver op. Ik ga hier niet dieper op in, omdat je hiervoor veel moet lezen over het opzetten van een MySQL-database op een webserver. Het is ook belangrijk dat u leert hoe u de juiste query's kunt maken, zoals SELECT
, INSERT
enzovoort.
Belangrijkste ideeën om te onderzoeken:
Een MySQL-database instellen op een webserver
Als je opheldering nodig hebt, laat het me dan weten!