© Zhitkov Boris/Shutterstock.com
Cloud-Services zum Entwickeln und Testen von mobilen Apps

Der Apfel aus der Wolke


Geräte- und plattformübergreifende Entwicklung ist angesagt, zum Beispiel mit Xamarin oder NativeScript. Möchte man Apps für mehrere Systeme erstellen, benötigt man die passende Systemumgebung aus Entwicklungsrechner und Testgeräten. Statt echter Hardware können Lösungen aus der Cloud helfen.

Software muss heute oft geräte- und plattformübergreifend funktionieren. Blicken wir auf Apps für die mobilen Geräte, sind in der Regel die Systeme iOS (Apple) und Android (Google) zu unterstützen. Auf dem Desktop sind es neben den unterschiedlichen Versionen von Microsoft Windows auch macOS und diverse Linux-Distributionen. Die Softwareentwicklung bedient sich daher oft so genannter geräte- oder plattformübergreifender Ansätze, um die System- und Gerätevielfalt in den Griff zu bekommen. Mit anderen Worten: Die Applikationen sollen für die unterschiedlichsten Systeme aus einer Quellcodebasis entstehen. Hier haben die Ansätze in der Vergangenheit deutliche Fortschritte gemacht, zu nennen sind zum Beispiel Xamarin, NativeScript und RAD Studio.

Dabei ist es notwendig, dass man die erstellte Software auf den Zielgeräten testet. Im Fall der Entwicklung für iOS ist es sogar notwendig, dass man während der Entwicklung auf einen Mac zugreifen kann. Nur mit Hilfe der Entwicklungsumgebung Xcode kann man die App-Packages erstellen und die zu erstellende App zum Beispiel in einem Simulator testen. Hat man bisher lediglich auf Windows-Systemen entwickelt oder soll nur gelegentlich für iOS oder macOS programmiert werden, kann sich dieser Umstand als eine größere Investitionshürde darstellen. Das gilt gerade dann, wenn man mehreren Entwicklungs- und Testarbeitsplätzen einen Zugang zu entsprechender Gerätetechnik ermöglichen muss. Eine ähnliche Situation zeigt sich auch bei Android-Systemen. Unzählige Gerätetypen und Versionen machen es den Testern immer schwieriger, die App zu testen. Es stellen sich wichtige Fragen: Funktioniert die App nur auf den physisch vorhandenen Testgeräten des Entwicklers oder kann die App auch auf anderen Geräten erfolgreich ausgeführt werden? Ist die Darstellung auf unterschiedlichen Größen und Auflösungen von Bildschirmen in Ordnung? Dabei ist die Vielfalt der Geräte sehr groß. Vom preiswerten Gerät mit einer eher geringen bis hin zu hochpreisigen Varianten mit Auflösungen von mehreren Millionen Pixeln reicht das Spektrum. Auch bezüglich der verwendeten Versionen der Betriebssysteme herrscht eine immer größer werdende Vielfalt. Neben der Hauptversion kommen sogenannte SDK-Versionen hinzu. Die spielen für den Anwender keine Rolle, aber bei der Entwicklung einer Android-App ist stets die minimale SDK-Version und das Ziel-SDK anzugeben. Im Quellcode muss man teilweise auf die vorhandene SDK-Version prüfen. Die bestimmt dann, ob bestimmte Funktionen verfügbar sind oder ob beispielsweise noch zusätzliche Berechtigungen angefordert werden müssen. Wir können auch nicht einfach davon ausgehen, dass die Nutzer eine aktuelle Version des Betriebssystems verwenden. Viele Hersteller von Smartphones und Tablets mit Android stellen keine Updates bereit oder liefern sie nur mit starker Verzögerung an die Kunden aus.

Aus dieser Situation muss man schlussfolgern, dass ein umfassendes Testen auf den unterschiedlichsten Geräten unerlässlich ist, um Fehler auf einzelnen Gerätekonfigurationen nachvollziehen und beheben zu können. Einen derart umfassenden Gerätepark kann man sich jedoch als Entwickler nicht zulegen und das wäre auch unwirtschaftlich. Abhilfe können Angebote aus der Cloud schaffen. Dabei werden über das Internet komplette Systeme zum Arbeiten, Entwickeln und Testen zur Verfügung gestellt.

Wir stellen in diesem Artikel drei Angebote im Überblick vor, mit denen wir bereits gearbeitet haben. Das sind: MacinCloud, App Center Test (Microsoft) und AWS Device Farm (Amazon). Nach einer kompakten Präsentation wenden wir uns der Praxis zu und werden die mögliche Verwendung demonstrieren. Bei diesen Cloud-Diensten handelt es sich um PaaS-Services. Dabei werden Systemumgebungen zur Verfügung gestellt, in denen man Anwendungen entwickeln und bereitstellen kann. Als Entwickler können Sie sich damit auf die eigentliche Umsetzung der Software konzentrieren, ohne sich Gedanken um die Einrichtung und Wartung der Infrastruktur machen zu müssen. Die Provider sind für das Management der Systeme zuständig. Das ist gerade in komplexer werdenden Systemumgebungen sinnvoll. Zahlreiche Versionen von Entwicklungs- und Testsystemen erhöhen zunehmend den administrativen Aufwand, der nur mühevoll aus den stets knappen Zeitbudgets für die Entwicklung „abgezweigt“ werden kann. Ebenso erleichtert Cloud-Computing die Zusammenarbeit von verteilt...

Neugierig geworden? Wir haben diese Angebote für dich:

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang