App-Programmierung: die Unterschiede von Android und iOS

Für die beiden beliebtesten Betriebssysteme für mobile Geräte gibt es unzählige Apps. Wer selber eine entwickeln möchte, muss einiges beachten. Unser Kursleiter Marc Buchser beleuchtet die Unterschiede in der App-Programmierung zwischen Android und iOS.

Autor Marc Buchser
Datum 06.11.2013
Lesezeit 8 Minuten

Android und Apples iOS sind die am häufigsten verwendeten Betriebssysteme für mobile Geräte. Für beide lassen sich in den jeweiligen Stores Applikationen herunterladen – kostenlos oder gegen Bezahlung. Jeder kann auch eigene Apps entwickeln und über die Stores an den Mann bringen. Doch wo liegen eigentlich die Unterschiede bei den beiden Systemen?

Was allgemein bekannt ist

Da wären zunächst einmal die offensichtlichen Unterschiede und vermutlich diejenigen Fakten, die die meisten kennen: Native iOS Apps werden mit Objective-C (oder C/C++) programmiert und Android Apps mit Java. Daneben gibt es auch noch die Möglichkeit, Crossplattform-Tools einzusetzen, mit denen es möglich ist, Apps für mehrere Plattformen zu entwickeln. Dort besteht allerdings oft das Problem, dass nicht auf allen Plattformen alle Funktionen und Eigenheiten genutzt werden können. Die meisten professionellen Entwickler entwickeln deshalb – gerade für komplexere Anwendungen – für jede Plattform eine eigene Native App, damit alle Vorteile und Eigenheiten der jeweiligen Plattform genutzt werden können.

Zum Entwickeln von iOS Apps braucht es einen Mac und Xcode, die Entwicklungsumgebung von Apple. Für Android Apps kann auf PC, Linux oder Mac gearbeitet werden, es braucht die Entwicklerumgebung Eclipse und das Android SDK (Software Development Kit). Eclipse kann für alle Plattformen kostenlos heruntergeladen werden. Auch Xcode ist kostenlos erhältlich, allerdings muss man für das Veröffentlichen von Apps im App Store eine jährliche Gebühr von 99$ entrichten, bei Googles Play Store sind es 25$.

Die Programmiersprache

Bei der Programmiersprache bietet Android sicher einen Vorteil durch die weite Verbreitung von Java. Denn es gibt mehr Leute, die mit Java bereits in Kontakt gekommen sind (zum Beispiel durch Javascript) und denen es dadurch etwas leichter fällt, Java zu lernen. Bei iOS ist die Hürde etwas höher, denn Objective-C, das seine Wurzeln in den Programmiersprachen C und SmallTalk hat, ist weniger verbreitet. Die Fangemeinde ist dort dafür umso tiefer verwurzelt, denn iOS hat viele seiner heutigen Bestandteile aus den Zeiten von NeXTStep, das auch die Grundlage für das heutige Mac OS X ist. Dies erklärt den Umstand, dass viele iOS-Entwickler ausschliesslich auf einer Plattform entwickeln und meist nur dann eine Android-Version in Betracht ziehen, wenn die iOS-Version im App Store erfolgreich war. Fakt ist, dass im App Store nach wie vor mehr Geld für Apps ausgegeben wird als in den anderen App-Shops.

Vorteile für iOS …

Dass der App Store beliebter ist, liegt zum einen sicher an den Entwicklerwerkzeugen. Obwohl Android mit Eclipse ein altbewährtes Pferd am Start hat, das eine enorme Fangemeinde um sich schart, ist es für Entwickler von Smartphone-Apps doch noch einen Zacken effizienter, iOS-Apps zu entwickeln. Vor allem beim Programmier-Test-Zyklus, bei dem der neue Code auf dem Gerät getestet wird. Hierzu bietet Android einen Emulator, der nur sehr träge reagiert und lange braucht, um überhaupt aufzustarten, während der Simulator von Apples Xcode einiges schneller ist. Ein kleiner, aber feiner Vorteil, denn genauso wie Endkunden nicht gerne warten, bis ihre App aufgestartet ist, wartet auch ein Entwickler nicht gerne, bis er sieht, ob sein Code funktioniert. Xcode bietet dazu für Einsteiger ohne Programmierkenntnisse einfache Möglichkeiten, Layouts zu gestalten und miteinander auf einem Storyboard zu verbinden, um einfache Programmabläufe zu erzeugen. Bei Android muss man für solche Schritte bereits in die Programmierhosen steigen.

iOS XCode Storyboard
iOS XCode Storyboard

Ein weiterer wichtiger Faktor sind die unterschiedlichen Versionen und Geräte, die bei Android im Umlauf sind. Während sich der iOS-Entwickler nur um wenige unterschiedliche Geräte kümmern muss (iPhone 3, 4, 5, iPad 1.-5. Generation sowie iPad mini), sind es bei Android über 50. Dazu kommen noch die vielen unterschiedlichen Auflösungen auf den einzelnen Android-Geräten, die es praktisch unmöglich machen, eine App auf allen Geräten zu testen. Der iOS-Allein-Entwickler hingegen kann seine App auf allen Geräten testen, ohne dass er 20 bis 30 Geräte einkaufen und ein Test-Team anstellen muss.

Bei iOS kann der Entwickler davon ausgehen, dass rund 80% der Benutzer das neuste Betriebssystem (iOS 7) auf den Geräten installiert hat. So muss er sich erst um ältere Versionen kümmern, wenn die App zum Kassenschlager wird. Bei Android verteilt sich dies auf drei Versionen: Gingerbread 2.3.3-7 (28.5%), Ice Cream Sandwich 4.0.3-4 (20.6%) und Jelly Bean 4.1 (36.5%).

Überischt Android Versionen
Übersicht Android-Versionen
(Quelle: http://developer.android.com/about/dashboards/index.html)

Bei Android muss man also für drei Versionen sicherstellen, dass alles klappt, um 80% der Endkunden zu erreichen. Das bedeutet auch hier wieder, die entsprechenden Geräte mit den entsprechenden Versionen zum Testen bereitzuhaben.

… aber auch Android kann punkten

Was allerdings etwas einfacher ist bei Android, ist das Veröffentlichen der App. Dafür stehen nicht ganz so viele Optionen zur Verfügung für das Erstellen von Profilen z.B. für die Adhoc- oder Inhouse-Verteilung. Ganz weg fällt der Review-Prozess für die Android Apps. Diese können direkt in den Google Play Store geladen werden und würden allenfalls nachträglich gelöscht. Apple hingegen prüft bereits vor der Veröffentlichung, ob die App allenfalls schädlichen Programmcode enthält oder gegen die allgemeinen Richtlinien des App Stores verstösst. Ebenfalls einfacher ist bei Android der Austausch von Daten zwischen Apps. Da Android ein offenes System ist, bestehen dort mehr Möglichkeiten zum Austausch, was wiederum Sicherheitslücken öffnet. Die iOS Apps hingegen sind in einer Sandbox, in der sie nur bedingt Zugriff auf andere Teile des Systems oder andere Apps haben. Dies erhöht die Sicherheit.

Es verwundert also nicht, wenn auf der Android-Plattform Meldungen zu hören sind, wonach der Anstieg an Malware im Jahr 2012 rund 4.100% betrug. Im Jahr 2011 musste Google über 100 schädliche Anwendungen entfernen und es gab darunter solche, die trotzdem über 260’000-mal heruntergeladen wurden, bevor sie gelöscht wurden. (Quelle: www.sophos.com)

Fazit

Wer selbst App entwickeln und damit Geld verdienen will, der braucht bei beiden Plattformen nebst viel Know-how auch noch eine tolle Idee. Und es braucht eine Weile, bis man fest im Programmiersattel sitzt – sei dies nun mit Java oder Objective-C. Wer sich die notwendigen Kenntnisse angeeignet hat, startet schmerzfreier mit iOS. Der Lernaufwand für jemanden ohne Programmierkenntnisse hält sich für beide Plattformen etwa die Waage. Die Entwicklerumgebung Xcode bietet früh Hand bei einfachen Aktionen und es lässt sich schnell produktiv arbeiten, wohingegen man sich mit Eclipse und dem Android SDK zuerst seine Umgebung zusammenbasteln muss. Auch wenn dies geschafft ist, sind noch weitere Hürden zu meistern, wie die grosse Anzahl unterschiedlicher Geräte und Systemversionen oder langwierige Testzyklen mit dem Emulator.


Über den Autor

Marc Buchser

Marc Buchser ist als freier Programmierer tätig. Daneben führt er Programmierkurse und Seminare für Schulen und Firmen durch. Er programmiert in C, C++, Objective-C, Java und Swift.