Android vs. iOS

Für welches Betriebssystem schlägt das Herz von App-Entwicklern?

14.03.2018
Von Mike Gerasymenko und Dean Cook
Für Laien mag die Entwicklung einer App für Android der Entwicklung für iOS ähnlich erscheinen. Die Realität von Entwicklern sieht jedoch ganz anders aus.
Apps für iOS oder für Android entwickeln: Beide Betriebssysteme haben ihre Tücken, aber...
Apps für iOS oder für Android entwickeln: Beide Betriebssysteme haben ihre Tücken, aber...
Foto: Lenka Horavova - shutterstock.com

Jedes Betriebssystem hält seine eigenen Tücken, aber auch Vorzüge bereit. Die erfahrenen Softwareentwickler Mike Gerasymenko und Dean Cook arbeiten beide beim sicheren Messenger Wire und gehen im Folgenden auf die Herausforderungen und Chancen bei der App-Entwicklung von Android- und iOS-Betriebssystemen ein.

1. Worin bestehen die wichtigsten Unterschiede in der iOS- und Android-Entwicklung?

Mike: Ein großer Unterschied besteht in den verwendeten Entwicklungsumgebungen. Auf Apple-Geräten verwenden wir IDEXcode, um Anwendungen zu erstellen. Weiterhin benötigt man für die Entwicklung und Veröffentlichung von iOS-Apps einen Apple Developer-Account. Nur Entwickler, die dort registriert sind, haben die Möglichkeit, Apps auf dem Gerät auszuführen. Der App-Store hat im Gegensatz zum Google Play Store strengere Regeln, zu denen beispielsweise die manuelle Überprüfung für jede Version der App gehört. Dies macht den Release-Prozess auf iOS komplizierter, da jeder Entwickler auch die Zeit berücksichtigen muss, die die Überprüfung der App seitens Apple in Anspruch nimmt.

Dean: Die Betriebssysteme sind auch unterschiedlich. Die Android-Plattform ist offener, was mehr Studenten, Hacker und Hardcore-Programmierer anzieht. Dies wird auch durch den Preis der Hardware beeinflusst, da die Android-Telefone günstiger sind. Zudem geht der Freigabe-Prozess der Android-App-Freischaltung im Play Store etwas zügiger, allerdings muss eine einmalige Registrierungsgebühr in Höhe von 25 US-Dollar gezahlt werden. Weiterhin ermöglicht der Play Store eine bessere Kontrolle über gestaffelte Rollouts. Beispielsweise ist es möglich, ein Betaprogramm zu erstellen.

2. Was ist zeitintensiver: iOS-Entwicklung oder Android-Entwicklung?

Mike: Hier ist kein wirklicher Trend hin zur einer Art der Entwicklung erkennbar. Die Entwicklungszeit eines Features wird hauptsächlich von den Fähigkeiten des Entwicklers und dem Detaillierungsgrad der Feature-Spezifikation bestimmt. Bezieht man die Testzeit in die Entwicklungszeit ein, wird klar, dass Android viel mehr Testaufwand benötigt, da es viele unterschiedliche Endgeräte gibt. Apple hingegen konzentriert sich darauf, nur wenige Modelle auf dem Markt zu platzieren.

3. Worin liegen die Herausforderungen bei iOS-Entwicklung und Android-Entwicklung?

Dean: Bei Android liegen die Herausforderungen vor allem darin, dass es die Vielzahl der unterschiedlichen Devices gibt, die wiederum verschiedene Charakteristiken bzw. Spezifikationen besitzen. Der Testaufwand, um beispielsweise jeder Hardware und Bildschirmgröße gerecht zu werden, wird somit immens hoch. Ein weiterer Punkt ist, dass die Community oft schnelle Lösungen für ein Problem haben möchte, was u.a. zu schlechten Programmierpraktiken führen kann oder es keinen großen Fokus auf die korrekte Ausführung gibt.

Mike: Die Herausforderungen ergeben sich aus den Eigenschaften des Geräts. Sowohl bei der iOS- als auch bei der Android-Entwicklung müssen wir bei der Entwicklung der komplizierten Lösungen meistens die Einschränkungen des Geräts berücksichtigen, wie Speicherkapazität, CPU-Leistung, Netzwerkdurchsatz und Bildschirmgröße. Darüber hinaus gibt es einige Einschränkungen des Betriebssystems, etwa Benutzerberechtigungen, Status der Hintergrund- und Vordergrund-Applikation, unterschiedliche Schriftgrößen und die Möglichkeit, die Anwendung im Splitscreen zu starten.

4. Ist es sinnvoll, zuerst eine iOS-App oder zuerst eine Android-App zu bauen, oder sollte man gleichzeitig Apps für beide Plattformen entwickeln?

Mike: Dies hängt vor allem vom Zielland ab, in dem die App erscheinen soll. Android hat einen Marktanteil von über 80 Prozent, ist aber vor allem auf älteren und billigeren Geräten zu finden. Laut einer aktuellen Studie dominieren in Nordeuropa, Nordamerika und Australien die Geräte von Apple. Für ein Startup macht es Sinn, mit einer Plattform zu beginnen, um den Machbarkeits-Nachweis zu belegen und gleichzeitig den Preis niedrig zu halten. Denn die Entwicklung auf mehreren Plattformen erhöht den Arbeitsaufwand. Für Wire ist es wichtig, dass der Messenger mehrere Plattformen unterstützt, damit die Menschen kommunizieren können, egal welches Gerät sie verwenden. Wir nennen es Sync Engine: Die App wird auf allen Plattformen synchronisiert, damit der Nutzer alle Inhalte auf allen Devices identisch sieht, abrufen und bearbeiten kann. Dafür arbeiten die Android- und iOS-Teams eng zusammen. Andere Apps, wie Ummo, wurden nur für iOS entwickelt.

5. Welche Programmiersprachen muss man bei der iOS-Entwicklung und bei der Android-Entwicklung beherrschen?

Mike: Der momentane Standard für iOS ist Swift, eine Programmiersprache, die von Apple entwickelt wurde. Bevor es Swift gab, wurden iOS-Apps mit Objective-C entwickelt. Wir sind gerade dabei, uns von Objective-C wegzubewegen. Da aber unsere Codebasis sehr groß ist, ist es schwierig, diese Codezeilen in Swift umzuschreiben. Daher erstellen wir die neuen Features der App in Swift und behalten die alten in Objective-C. Apple hat es glücklicherweise geschafft, dass beide Programmiersprachen reibungslos miteinander funktionieren.

Dean: Die Entwicklung von Android-Apps setzt Kenntnisse in der Programmiersprache Java voraus. Aber auch Kenntnisse in C++ sind von Vorteil. Weitere Java-Virtual-Machine-Sprachen sind Scala oder seit neuestem auch Kotlin. Kotlin hat im Vergleich zu Java eine übersichtlichere und einfachere Syntax und wird bereits produktiv in vielfach genutzten Apps eingesetzt, so bei Pinterest.

6. Was sind die Nachteile in der iOS-Entwicklung und Android-Entwicklung?

Mike: Allgemein gesprochen stellen mobile Endgeräte mehr Herausforderungen bei der Migration dar (Aktualisierung einer Version auf eine andere, ohne dass die lokal gespeicherten Daten inkonsistent werden). Vor allem bei Wire, wo die Historie eines Nutzers nicht in der Cloud gespeichert wird, sondern auf dem jeweiligen Gerät. Darüber hinaus ist die Entwicklungszeit auf mobilen Endgeräten deutlich länger als bei Web-Lösungen, da es längere Feedbackschleifen gibt und weniger „ Trial and Error “. Ein weiterer Nachteil ist, dass das Testen auf mobilen Plattformen generell schwierig ist. Alle Anwendungen sind stark von der Plattform SDK abhängig, was bedeutet, dass es schwierig ist, davon auszugehen, wie sich ihre Anwendung „ in echt “ verhalten wird. Die meisten Lösungen sind teuer oder sehr zeitaufwändig.

7. Fazit: Ist App-Entwickler ein attraktiver Beruf?

Dean und Mike: Die App-Entwicklung ist schon jetzt ein Zukunftstrend sowohl für Männer als auch Frauen, der weiter anhalten wird. Die Verwendung mobiler Applikationen und Tablets haben schon längst herkömmliche Laptops und Computer ersetzt. Allein von Google Play werden derzeit 3,3 Millionen Apps angeboten, gefolgt von rund 2,2 Millionen Apps im Apple App-Store. Native Apps bieten enorme Möglichkeiten für Unternehmen, neue Zielgruppen auf sich aufmerksam zu machen. Der Beruf des App-Entwicklers hat daher großes Zukunftspotenzial und immer mehr Unternehmen suchen händeringend nach Profis auf diesem Gebiet. Wer sich also für den Beruf des App-Entwicklers interessiert, sollte sich vor allem für Nutzerverhalten interessieren und beim technischen Fortschritt am Ball bleiben. Ein großer Pluspunkt: Natürlich fühlt es sich auch richtig gut an, wenn Freunde und Familie anfangen, dein mitentwickeltes Produkt zu nutzen und wertvolles Feedback geben. (PC-Welt)