"App in die Cloud!"

Mobile Apps in der Cloud entwickeln
Kommentare

Die Entwicklung mobiler Apps für drei Plattformen stellt Unternehmen vor große Herausforderungen. Es gibt allerdings eine Lösung – in der Cloud.

Die Entwicklung von Mobile Apps für drei Plattformen stellt Unternehmen vor große Herausforderungen. Mit der Cloud-Lösung Appery.io besteht eine Lösung für dieses Problem.

Viele Unternehmen überlegen derzeit, ob und wie sie mobile Apps erstellen sollen. Dabei besteht das Problem, dass jede App eigentlich für mindestens drei Plattformen bereitgestellt werden müsste: iOS, Android und Windows Phone. Dies stellt aber erhebliche Anforderungen an die Entwickler, die sich mit drei Programmiersprachen auseinandersetzen müssten: Objective-C oder Swift für iOS, Java für Android und C# für Windows Phone. Weiterhin müssten drei Entwicklungswerkzeuge (X-Code, Eclipse ADT, Visual Studio) installiert werden. Nur wenige Entwickler sind heute so polyglott, dass sie alle oben genannten Programmiersprachen beherrschen.

Ein weiteres Problem besteht darin, die Entwicklungsumgebung für mobile Apps bereitzustellen, da bisherige Entwickler-PCs meist im Intranet hängen und dort die USB-Ports meist geblockt sind. Somit werden die nötigen Tests auf den Geräten erheblich erschwert. Und es geht weiter mit der Frage, wie die App auf dem mobilen (Test-)Gerät auf Services der Entwicklungsumgebung bzw. Integrationsumgebung zugreifen kann. Häufig sind diese Umgebungen von außen nicht erreichbar, und die mobilen Geräte sind meist nicht im Intranet (z. B. per VPN).

Die Cloud-Plattform Appery.io bietet hier eine mögliche Lösung: Die Apps werden komplett im Browser entwickelt und stehen dann als Pakete (Packages, .ipa, .apk, .xap) zur Verfügung. Die technische Basis besteht aus HTML5/CSS/JavaScript, wobei jQuery Mobile und Apache Cordova zum Einsatz kommen. Die so erstellten Apps sind also jeweils ein Wrapper, der die HTML5-Seiten in einer WebView ausführt. Dieses Pattern ist weit verbreitet, da HTML5 auf den wichtigsten Plattformen sehr gut unterstützt wird. So kann eine einmal erstellte App für die wichtigen Plattformen iOS, Android und Windows Phone exportiert werden. Der Upload der Packages in die jeweiligen App Stores erfolgt aber außerhalb von Appery.io, d. h. darum muss sich der Entwickler selbst kümmern.

Es handelt sich bei Appery.io ganz klar um einen Kompromiss: HTML5 und JavaScript reichen für viele Apps aus, um konkurrenzfähige Apps zu entwickeln – aber an eine native entwickelte App kommt dieser Ansatz weder in puncto Performance noch Bedienkonzept heran. Eine native App ist immer optimal in das Bedienkonzept der Plattform integriert und im Zweifelsfall performanter. Dafür ist der Aufwand für native Entwicklung eben auch deutlich höher, insbesondere, wenn man die App für mehrere Plattformen bereitstellen will. Für sehr viele Apps reicht der Ansatz mit HTM5 und JavaScript aber aus und in der Tat ist ein Großteil der Apps in den Stores auf dieser Basis implementiert.

Als Cloud-Lösung bietet Appery.io für Unternehmen noch weitere Vorteile: Die Lizenzierung erfolgt nach Anzahl der Benutzer und kann mit dem Bedarf wachsen. Mehrere Entwickler können an einer oder mehreren Apps gemeinsam arbeiten und kollaborieren. Es entfällt die Installation und Aktualisierung lokaler Entwicklungsumgebungen (IDE etc.).

UI-Builder

Kernstück von Appery.io ist der UI-Builder, mit dem die einzelnen Screens erstellt werden. Per Drag and Drop zieht der Entwickler die (jQuery-Mobile-)Komponenten auf den Screen und kann Sie dann mit Events und Daten „verdrahten“ (Abb. 1). Als Nächstes muss der Button Suchen mit einem Event verbunden werden, sodass beim Klick der Aufruf des REST-Service erfolgt (Abb. 2).

Bei Aufruf des Service müssen diesem aber Request-Parameter mitgegeben und die Daten der Response entsprechend den UI-Komponenten zugeordnet werden. Dies erfolgt im Tab Data (Abb. 3). Zusätzlich haben wir einen Button für die Einstellungen in der Titelleiste platziert. Bei einem Klick darauf, genauso wie bei der Bedienung des Menü-Buttons, soll auf die Seite zur Erfassung eines neuen Termins navigiert werden. Wir haben also zwei Events: einmal auf dem Button und einmal auf dem Start-Screen (Load), die beide zu der Einstellungsseite navigieren (Abb. 4).

Abb. 1: Events und Daten werden verdrahtet

Abb. 1: Events und Daten werden verdrahtet

Abb. 2: Der Button wird mit einem Event verbunden

Abb. 2: Der Button wird mit einem Event verbunden

Abb. 3: Der Data-Tab

Abb. 3: Der Data-Tab

Abb. 4: Die beiden Events

Abb. 4: Die beiden Events

Secure REST

Fast alle REST-APIs erfordern eine Authentifizierung, meist per API-Key. Diesen API-Key möchte man nun aber nicht im Klartext in der App speichern, da es ja nicht schwer wäre, das Package zu entpacken und so den API-Key aus dem JavaScript-Sourcecode auszulesen. Daher können Serviceaufrufe über einen Proxy umgeleitet werden, der dann den API-Key nachträglich an jeden Request anfügt. Außerdem bietet der Weg über den Proxy auch ohne Anreicherung des API-Keys eine Möglichkeit zur Umgehung des Same-Origin Problems, sofern der REST-Service nicht CORS-ready ist.

Push Notifications

Appery.io ermöglicht Notifications, also Push-Nachrichten an ausgewählte Geräte. Dazu kann sich die App bei Appery.io registrieren, was dazu führt, dass die Gerätedaten in eine der App exklusiv zugeordneten Cloud-Datenbank eingetragen werden. Über diese Datenbank kann dann beim Versenden eine Selektion erfolgen, z. B. nur alle Android-Geräte oder alle Premiumnutzer etc. Das Versenden kann auch über ein REST-API erfolgen.

Servercode

Appery.io bietet die Möglichkeit, JavaScript-Code in der Cloud auf den Servern von Appery.io ausführen zu lassen. Dies kann sich anbieten, wenn aufwändige Berechnungen nötig sind und man damit nicht die lokale CPU (und damit den Akku) belasten möchte. Da der JavaScript-Code sicherlich grundlegende Libraries benötigt, können solche auf dem Server hinterlegt werden. Bereits per Default vorhanden sind Underscore.js, Moment.js, Handlebars.js, sax.js und xmldoc.js. Man kann jedoch beliebig viele eigene Libraries hinzufügen.

Über das Server-Code-Script-API besteht auch Zugriff auf die eigenen Cloud-Datenbanken, Push Notifications, Logging, Console etc. Server-Code-Scripts können via Scheduler auch zeitgesteuert ausgeführt werden und somit Backend-Jobs durchführen. Es steht also eine komplette Backend-Umgebung für JavaScript zur Verfügung; ähnlich, als würde man ein eigenes Backend mit Node.js aufsetzen, nur mit dem Unterschied, dass dieses Backend bereits skalierend in der Cloud vorhanden ist. Auch dies ist für Unternehmen von Bedeutung, da das Aufsetzen eines neuen Backends im eigenen Rechenzentrum meist sehr zeitaufwändig ist.

Lokale Sensoren

Über Apache Cordova werden lokale Sensoren wie GPS etc. für die App verfügbar. Für Kamera, Barcode, Kontakte und Position (Geolocation) sind bereits vordefinierte Services verfügbar.

Testen der App

Da es sich um HTML5/JavaScript handelt, kann die App zunächst im Browser getestet werden, um die grundlegende Funktionalität zu gewährleisten. Moderne Browser haben heute auch JavaScript-Debugger wie Firebug im Firefox oder die Developer Console in Chrome (F12-Taste). Damit kann man die Anwendung auch im Browser debuggen.

Für Zugriffe auf Sensoren muss die App natürlich auf das Gerät installiert werden. Dazu kann zunächst die Appery.io-Tester-App verwendet werden, die eine Liste der Applikationen zeigt und dann die ausgewählte App lokal ausführt. Wird die App auf dem Gerät getestet, kann das Remote Debugging mit weinre aktiviert werden.

Export der gebauten App

Wenn die App zunächst im Browser und später auf dem Gerät getestet wurde, kann sie als .ipa, .apk und .xap Package gebaut und heruntergeladen werden. Dazu sind natürlich vorher die entsprechenden Zertifikate zu hinterlegen. Der gesamte Prozess des Bauens erfolgt in der Cloud und zum Schluss steht das Package zum Download bereit. Alternativ kann die App auch als Projekt für die jeweilige IDE (also z. B. Eclipse ADT für Android) als ZIP heruntergeladen werden.

Fazit

Unternehmen, die in die Entwicklung mobiler Apps einsteigen möchten, können Appery.io als schnellen Einstieg nutzen, um Apps für die wichtigen Plattformen zu erstellen. Es bleibt ein Kompromiss im Vergleich zu nativer Entwicklung, bietet aber Vorteile des schnelleren Setup. Natürlich kann man plattformübergreifende Apps auf Basis von HTML5/JavaScript auch ohne Appery.io entwickeln, aber die Plattform nimmt einem Vieles ab, das man sonst von Hand erstellen müsste.

Es gibt ja auch so noch genügend Stolperstricke bei der Veröffentlichung von Apps in den App Stores, wie z. B. die strengen Richtlinien von Apple, die einem genügend Arbeit bescheren dürften. Für den Upload in den Apple iTunes Store wird nach wie vor ein Apple-Rechner benötigt und die Verwaltung von Developer-Accounts und Zertifikaten muss auch sicher beherrscht werden, bevor man loslegen kann.

Es gibt auch andere Ansätze für die plattformübergreifende Entwicklung von Apps, z. B. Adobe Flash Builder oder Embarcaderos Appmethod. Im Vergleich dazu lockt Appery.io jedoch damit, dass eben keine IDE installiert werden muss.

Aufmacherbild: Businessman climbing and drawing cloud von Shutterstock / Urheberrecht: BsWei

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -