Sonntag, 16. März 2014

Google Cloud Endpoints - Verstärkung für Android Apps (Teil 4)

Wir haben eine einfache Android App entwickelt, die eine Service-Technologie nutzt, die Google unter dem Namen 'Cloud Endpoints' in seiner App Engine zur Verfügung stellt. Bisher laufen die Dienste allerdings nur auf einem Entwicklungssystem. Jetzt geht es an das Deployment, also die Inbetriebnahme der Dienste in der Infrastruktur von Google.


Den Service zu Google bringen

Es gibt mehrere Möglichkeiten mit der App Engine zu arbeiten. In jedem Fall benötigen wir aber ein eigenes Projekt. Eine Übersicht der Projekte, die auf unserem Google-Konto hinterlegt sind, gibt es unter 

Da unsere Liste vermutlich leer ist, lösen wir den Button 'Create Application' aus und registrieren einen neuen Service unter einem frei wählbaren Namen und mit einer eindeutigen selbst gewählten oder der vorgeschlagenen Project-ID.

In der tabellarischen Übersicht gibt es auch eine Spalte namens Charges. Keine Sorge: Bis zu einem bestimmten Volumen sind die Services kostenfrei. Bevor Kosten erhoben werden, müssen wir als Betreiber des Services zustimmen!

In Eclipse wählen wir – wie abgebildet - im Projekt ‚Artists-AppEngine’ per rechten Mausklick das Formular 'Properties'. Im Feld 'Application ID' tragen wir die Project ID ein, die wir im vorhergehenden Schritt gesetzt haben. Das ganze Projekt übertragen wir per rechtem Mausklick, 'Google', 'Deploy to App Engine' an Google. Die Übertragung verläuft flott, es kann allerdings sein, dass der erste Start des Projektes etwas dauert. Nicht die Geduld verlieren, sondern auch mal einmalig 30 Minuten Wartezeit in Kauf nehmen.




Wenn artists4711 die ID des Projektes ist, dann führt uns
zum vertrauten Service-Explorer. Dieses Mal werden aber nicht die Dienste, die wir am lokalen Server hinterlegt haben angezeigt, sondern diejenigen, die wir in der AppEngine publiziert haben. Wir finden unsere bandendpoint-API und nutzen den Dienst insertBand, um einige Datensätze in die leere Datenbank einzufügen. Nicht vergessen: Es werden nur Name und Gründungsjahr der Bands gesetzt, die ID generiert das System.

Eine letzte Änderung an der Android App

Nachdem wir den Service deployed und die Datenbank bestückt haben, müssen wir noch einmal Hand an unsere Android App legen. Viel ist es nicht:

Als das Endpoint-Project deployed wurde, hat das Eclipse-Plugin die ID des Projektes automatisch in der Android App hinterlegt. Da wir nicht mehr mit den lokalen Diensten arbeiten ist das Einzige, was wir noch tun müssen, die Konstante LOCAL_ANDROID_RUN in der Klasse CloudEndpointUtils auf false zu setzen. Wir können das Projekt im Emulator und jetzt auch auf einem physikalischen Target installieren und werden dann mit dem Service, der auf der AppEngine bei Google läuft, verbunden.

Fazit

Auf den ersten Blick sieht es möglicherweise sehr aufwändig aus, eine Android App mit den Cloud Endpoints zu verbinden. Aus meiner Erfahrung heraus ist dieser Weg bisher der Einfachste. Ich habe schon Versuche mit SOAP oder Web-Services unter PHP oder anderen Plattformen durchgeführt, um entfernte Dienste zu nutzen. Man kommt auch zum Ziel. Es ist aber alles mit Bastelei verbunden. Der Workflow läuft einfach nicht rund. Insbesondere ist bei der Arbeit mit den Cloud Endpoints das Eclipse-Plugin sehr hilfreich. Ich habe lange auf diese Möglichkeit gewartet.

Keine Kommentare:

Kommentar veröffentlichen