Übersicht über die aktuelle Situation für Mobile-Entwickler

Know-how  –  3 Kommentare

Nach dem Erfolg des iPhones inklusive des dazugehörigen App Stores sehen immer mehr Entwickler eine Chance, in der mobilen Welt aktiv zu werden. Im Folgenden eine kurze Zusammenfassung, was Entwickler von den verschiedenen Plattformen zu erwarten haben und welche Möglichkeiten es gibt, Einnahmen zu generieren.

Neben iOS hat auch Googles Android-Plattform in der letzten Zeit rasante Zuwachsraten bei der Verbreitung des Systems verzeichnen können. Das macht die Anwendungsentwicklung für diese Plattform immer interessanter. Dann gibt es noch Windows Phone 7, dessen Marktanteil im Gegensatz zu den beiden Platzhirschen iOS und Android zurzeit marginal ist, bei dem viele Marktbeobachter jedoch ein erhebliches Potenzial sehen, unter anderem, weil Nokia das System Anfang 2011 als seine neue Smartphone-Plattform eingeführt hat. Eine ganze Reihe weiterer mobiler Plattformen wie Bada (Samsung), BlackBerry (Research in Motion), Symbian (Nokia/Microsoft), Tizen (Intel, Samsung, Nokia) oder WebOS (Hewlett-Packard) mit mehr oder weniger großem Potenzial buhlen ebenfalls um Entwickler.

Für welche Plattform sollte man sich nun als Entwickler entscheiden, wenn man eine Idee für eine Applikation umsetzen möchte? Oder sollte man doch lieber einen Cross-Plattform-Ansatz verfolgen, um so viele Endgeräte wie möglich zu erreichen? Die Entscheidung für eine Plattform steht ganz am Anfang eines mobilen Projektes, hier stehen vor allem das Marktpotenzial des jeweiligen Zielsystems sowie die Entwicklungskosten im Vordergrund.

iOS

Mit iOS stellt Apple eine Plattform für iPhone, iPad und iPod touch bereit, ebenso die komplette Infrastruktur zum Entwickeln und Verkaufen von Apps. Als Entwickler kann man also neben dem Smartphone selber (mit dem Apple einen Boom bei mobilen Apps ausgelöst hat) auch Apps für das iPad entwickeln. Für native Applikationen greift man hier auf Objective-C zurück, was für viele Apple-Neulinge zunächst gewöhnungsbedürftig ist – aber da es sich um eine auf C basierende objektorientierte Sprache handelt, findet man sich als erfahrener Programmierer relativ schnell zurecht.

Um in die Entwicklung einzusteigen, liefert das iOS SDK, das man bei Apple herunterladen kann, alle erforderlichen Werkzeuge. Voraussetzung dafür ist ein Intel-basierter Mac mit Mac OS X 10.6 oder 10.7. Windows- oder Linux-Anwender sind somit zunächst außen vor. Außerdem muss man ein Abo bei Apple abschließen, das mit mindestens 99 US-Dollar pro Jahr zu Buche schlägt. Dafür bietet Apple auf seinen Webseiten dann aber auch eine umfangreiche API-Dokumentation, einen Referenz-Guide und Beispielcode. Ebenfalls hilfreich ist die große Community rund um iOS. Viele Entwickler stellen aktuelle Informationen per Twitter bereit oder bieten Informationen wie Tutorials und Quellcode über die GitHub-Plattform an. Einen Einstieg in die iOS-Welt liefern auch Blog-Aggregatoren wie CocoaHub und PlanetCocoa.

Hat man erfolgreich eine App entwickelt, stellt sich die Frage, wie man sie am besten an den Kunden bringt. Apple bietet hierfür den App Store, der mit über 700.000 Apps inzwischen eine beachtliche Größe erreicht hat. Neben dem Einstellen von kostenlosen Apps erlaubt Apple auch deren Verkauf und streicht dafür die inzwischen bei vielen App-Stores üblichen 30 Prozent vom Verkaufspreis ein. Es gibt bei iOS offiziell nicht die Möglichkeit, alternative Vertriebskanäle zu nutzen.

Bevor man seine App im App Store anbieten kann, muss sie von Apple abgesegnet werden. Dieser Freigabeprozess dauert im Normalfall nicht länger als zwei Wochen. Man hat als Entwickler allerdings kein Anrecht auf die Veröffentlichung der App und sollte sich deshalb vorher intensiv mit den Richtlinien der Plattform befassen.

Android

Auch Android erlaubt seit der Version 4.0 (Ice Cream Sandwich) die einheitliche Anwendungsentwicklung für Smartphones und Tablets. Trotzdem ist die Fragmentierung bei Android das Hauptproblem für den Entwickler, denn es werden weiterhin Geräte mit älteren Versionen von Android ausgeliefert oder bestehende nicht zeitnah aktualisiert. Als Entwickler muss man also berücksichtigen, dass man nicht eine einzige konsistente Plattform wie bei iOS adressiert. Und neben Android Geräten selbst gibt es noch weitere Plattformen, wie das BlackBerry PlayBook oder das WeTab, die über einen Emulator die Ausführung von Android-Applikationen ermöglichen.

Die Anwendungsentwicklung für die quelloffene Linux-basierte Plattform erfolgt üblicherweise in Java oder mit nativen Plug-Ins in C++. Obwohl Java als Programmiersprache dient, ist nur ein kleiner Teil der APIs mit dem Standard-Java kompatibel. Viele Schnittstellen sind speziell auf die Android-Plattform ausgelegt und auch der Java-Bytecode wird mit einem Tool in ein spezielles Format gewandelt und anschließend auf der so genannten Dalvik VM ausgeführt. Für Java-Entwickler reduziert es dennoch die Einarbeitungszeit und bestehende aus der Java-Welt bekannte Tools wie Eclipse lassen sich weiterhin einsetzen.

Um mit der Anwendungsentwicklung zu beginnen, benötigt man das bei Google kostenlos verfügbare Android SDK, das für Windows, Mac OS X und Linux zur Verfügung steht und alle erforderlichen Werkzeuge sowie einen Emulator beinhaltet. Auf der Android-Website bekommen Einsteiger prinzipiell alle wichtigen Fragen beantwortet. Vor allem der Dev Guide sowie die Reference-Dokumentation sind hier aufschlussreich.

Bei der Verteilung von Anwendungen ist die Android-Plattform wesentlich offener als iOS. Zwar bietet Google mit Google Play (das aus dem früheren Android Market hervorgegangen ist) einen eigenen App-Store an, aber lässt gleichzeitig andere Vertriebskanäle zu, die bestimmte Zielgruppen oder Geräte adressieren oder alternative Zahlungsmethoden anbieten können. Ein prominentes Beispiel ist der Amazon App Store, der auch auf Amazons Kindle-Fire-Tablet vorinstalliert ist. Möchte man einen möglichst großen Markt erreichen, kommt man allerdings um Googles offiziellen App-Store nicht herum. Um ihn als Entwickler nutzen zu können, muss man sich einmalig mit seinem Google Checkout Account registrieren und 25 US-Dollar bezahlen. Danach kann man seine App direkt hochladen und veröffentlichen, einen aufwendigen Freischaltprozess wie bei Apple gibt es nicht. Google behält sich allerdings vor, die App im Nachhinein zu entfernen, wenn diese nicht den vorgegebenen Richtlinien entspricht.

Windows Phone

Mit Windows Phone 7 hat Microsoft einen kompletten Neuanfang gewagt, nachdem der Vorgänger Windows Mobile sich als nicht mehr konkurrenzfähig zu aktuellen Plattformen wie iOS und Android erwiesen hat. Im Gegensatz zu diesen Systemen gibt es Windows Phone 7 nur für Smartphones, nicht für Tablets. Dieses Segment will Microsoft in Zukunft mit Windows 8 abdecken. Windows Phone ist, ebenso wie Android, im Gegensatz zu iOS auf Geräten verschiedener Hersteller verfügbar.

Entwickler können Anwendungen mit Silverlight oder alternativ XNA erstellen. Wobei ersteres eher für Event-getriebene Apps und das zweite vor allem für Spiele geeignet ist. In beiden Fällen kommt als Programmiersprache C# oder VB.NET zum Einsatz. Vor allem Entwicklern mit bestehendem Know-how in diesen Sprachen fällt der Einstieg leicht. Für die Entwicklung von Applikationen benötigt man das Windows Phone SDK, das Microsoft kostenlos zum Download bereitstellt. Es umfasst die Express-Versionen von Visual Studio 2010 und Expression Blend sowie einen Device Emulator. Für weitere Informationen zum Einstieg in die Entwicklung findet man unter create.msdn.com weiterführende Informationen und Foren. Auch die Website WindowsPhoneGeek liefert einen guten Einstieg.

Bei Windows Phone ist der Microsoft Marketplace der einzige Weg, Anwendungen zu verteilen, da Microsoft keine anderen Vertriebswege zulässt. Um eine App hier bereitstellen zu können, muss man wie bei Apple eine jährliche Gebühr von 99 US-Dollar bezahlen. Die Jahresgebühr wird Studenten des Microsoft DreamSpark-Programms erlassen. Auch Nokia-Publish-Mitglieder zahlen im ersten Jahr nichts. Sobald man eine App über den App Hub einreicht, muss diese ähnlich wie bei Apple einen aufwendigen Review-Prozess durchlaufen. Erst wenn die App von Microsoft freigegeben ist, wird sie im Marketplace veröffentlicht.

Cross-Plattform

Statt sich auf eine oder mehrere der aussichtsreichsten Plattformen festzulegen, kann man als Entwickler auch auf die Cross-Plattform-Entwicklung setzen, um ein wesentlich breiteres Spektrum an Zielumgebungen abzudecken. Das können zum einen Webanwendungen auf Grundlage von HTML5 sein oder hybride Apps, bei denen mit speziellen Frameworks wie PhoneGap oder Appcelerator Titanium eine native Anwendung erzeugt wird, die man dann über einen App-Store vertreiben kann. Die Vorteile dieses Ansatzes liegen darin, dass man die Software nur einmal entwickeln muss und automatisch native Apps für verschiedene Zielplattformen generieren kann. Webentwickler können so einen Großteil ihres Know-hows wiederverwenden. Ob das in der Praxis so einfach gelingt, wie es sich auf dem Papier anhört, sei dahingestellt. Gegebenenfalls muss der Entwickler verschiedene Frameworks evaluieren, um zu entscheiden, welches System zu seinem Projekt passt.

Auf der anderen Seite bieten reine Web-Applikationen bei geschlossenen Systemen wie iOS und Android dem Entwickler die Chance, sich von der Bindung an das Ökosystem des Anbieters zu lösen und alternative Abrechnungsmethoden, beispielsweise über die Mobilfunkrechnung zu nutzen. Neben den auf Webtechniken basierenden Ansätzen gibt es weitere Cross-Platform-Lösungen wie Adobe AIR oder Mono, die Entwicklern ebenfalls einen interessanten Weg bieten, viele der relevanten Plattformen abzudecken. (rl)

Kay Glahn
ist unabhängiger IT-Berater mit den Schwerpunkten Mobile Applications und Services. Er berät internationale Kunden bei der Umsetzung von Projekten im Mobile-Bereich.