Focus: Android - Interview

Die Vorteile und Tücken der Android-Entwicklung

Uhr

Mirko Stocker und Martin Seelhofer dozieren an der Hochschule für Technik Rapperswil und kennen die Vor- und Nachteile von Android und iOS. Sie sprechen über die Unterschiede sowie darüber, was sie ihren Studenten raten und wie sie die Zukunft der App-Entwicklung einschätzen.

Was macht Ihren Studierenden mehr Spass: für Android oder für iOS zu programmieren?

Mirko Stocker: An der HSR besuchen die meisten Studierenden im dritten Semester unser Modul Mobile and GUI Engineering und lernen dort die Androidentwicklung kennen. Sind die anfänglichen Hürden von Setup und das Zurechtfinden in der Entwicklungsumgebung erst einmal überwunden, dann beginnt es meistens - denke ich zumindest - Spass zu machen. Es wäre sehr interessant, dasselbe auch mit iOS zu machen, aber Apple macht einem das leider nicht so einfach.

Martin Seelhofer: Ja, während für die Androidentwicklung der Download des SDK genügt, müssen bei Apple einige Hürden beseitigt werden, um nur schon eine einfache "Hello World"-Beispiel-App auf einem Gerät zum Laufen zu kriegen.

Woran liegt das?

Stocker: Man braucht zwingend einen Mac. Da unsere Studierenden auf ihren eigenen Geräten arbeiten ist ein breiter Einsatz im Unterricht leider unmöglich, wohingegen die Android-Entwicklung auf macOS, Windows und Linux gleichermassen unterstützt wird. In Projektarbeiten kann sich ein Team mit der nötigen Hardware selbstverständlich dafür entscheiden, für iOS zu entwickeln, und auch am Institut werden sowohl Android- als auch iOS-Projekte für Kunden umgesetzt.

Welches Betriebssystem ist Ihr Favorit – und warum?

Stocker: Als langjähriger Open-Source-Enthusiast habe ich mich immer mehr zu Android hingezogen gefühlt, wobei ich schnell feststellen musste, dass Googles Open-Source-Story mehr Augenwischerei als ein Bekenntnis zu freier Software ist. Als App-Entwickler habe ich nichts davon, wenn ich das Basissystem, in dem ja sowieso sehr viele andere Open-Source Software eingesetzt wird, einsehbar ist aber so gut wie alle Apps – auch die von Google selbst – Closed-Source sind. Da ich aber auch keinen Mac habe, bin ich bei Android geblieben.

Seelhofer: Mein Zugang zu den Mobilplattformen erschloss sich ursprünglich über die Game-Entwicklung und da erwies sich das geschlossene System und die überschaubare Gerätevielfalt bei iOS als erfolgversprechender. Mittlerweile ist die Gerätevielfalt zwar auch bei iOS auf eine aus Entwicklersicht unangenehme Menge an Formfaktoren, Auflösungen und Betriebssystemversionen gewachsen, doch hat Apple durch einige clevere Handgriffe in Ihren Programmierschnittstellen (APIs) dafür gesorgt, dass diese Menge weiterhin handlebar bleibt. Aufgrund der recht hohen Investitionen in den Gerätepark und dem typischen Vendor-Lock-In bei geschlossenen Systemen, bin ich bei iOS geblieben.

Worin bestehen die grössten Unterschiede aus Entwicklersicht?

Stocker: Es gibt natürlich offensichtliche Unterschiede wie die unterschiedlichen Programmiersprachen, die eingesetzt werden: Objective-C und Swift unter iOS, und Java und Kotlin für Android.

Seelhofer: Erwähnenswert sind zudem die unterschiedlichen Navigationskonzepte und die ähnlichen, aber im Detail dann halt doch sehr unterschiedlichen User-Interface-Bibliotheken. Man muss in Ergänzung zu den Programmiersprachen also auch zwei sehr unterschiedliche APIs kennenlernen.

Was sind die grössten Herausforderungen eines Android-Entwicklers?

Stocker: Obschon es Android doch schon über 10 Jahre gibt, gibt es regelmässig Änderungen und Neuigkeiten. So gibt es immer wieder Anpassungen am Berechtigungssystem, aber auch fundamentale Dinge ändern sich. Zum Beispiel die Art und Weise, wie die Navigation zwischen verschiedenen Screens programmiert wird. Dazu kommt, dass Google sich entschieden hat, neu auf die Programmierspache Kotlin von JetBrains als Hauptsprache für die Android-Entwicklung zu setzen. Als Android-Entwickler muss man also immer am Ball bleiben.

Wie unterscheidet sich die App-Entwicklung für iOS und Android in Design-Fragen?

Seelhofer: Für das Design einer App arbeiten heute die meisten UX-/UI-Designer unabhängig vom Betriebssystem mit spezialisierten Tools, welche die schnelle Abbildung der Benutzerreise in klickbare Prototypen ermöglichen, die sich dann auch bereits auf den Zielgeräten anschauen lassen. So kann bereits früh im Prozess ausprobiert werden, wie sich ein Design und die Reihenfolge der Screens aus Nutzersicht anfühlt. Im Hinblick auf die technische Umsetzung gibt es dann zwei grundsätzlich verschiedene Vorgehensweisen. Man kann sich dafür entscheiden, auf jeder Plattform die dort gültigen visuellen Standards und Navigationskonzepte anzuwenden. Dann erstellt man nicht nur den Programmcode der App zweimal, sondern erstellt auch zwei unterschiedliche Design-Prototypen. Alternativ kann man sich dafür entscheiden, einen eigenen Design-Standard zu entwerfen und diesen auf beiden Plattformen durchzuziehen. So kann man die visuellen Assets - beispielsweise Icons, Hintergrundgrafiken, Farben - dann auf beiden Plattformen verwenden.

Wie unterscheiden sich die Entwicklungskosten?

Seelhofer: Um Apps in den Google Play Store stellen zu können, ist lediglich eine einmalige Gebühr von 25 US-Dollar fällig. Bei iOS fallen für ein einfaches Entwicklerkonto jedes Jahr 99 Dollar an. Durch den Zwang, eine iOS-App nur unter Zuhilfenahme eines Macs kompilieren zu können, sowie die generell höheren Kosten der Apple-Geräte, sind die Gesamtkosten für die iOS-Entwicklung tendenziell höher. Da sich bei Android jedoch eine ungleich grössere Auswahl an Geräteherstellern mit sehr vielen verschiedenen Formfaktoren und Funktionen auf dem Markt bewegt, hängen die Kosten auch davon ab, wieviele Testgeräte man sich anschaffen will.

Die Schweiz galt jahrelang als iPhone-Land, nun scheint Apples Dominanz hierzulande zu bröckeln. Wie wirkt sich das auf die App-Wirtschaft aus?

Seelhofer: Apple macht mit dem App Store trotz des weltweit mittlerweile recht tiefen iOS-Marktanteils von nur noch rund 13 Prozent gegenüber dem Google Play Store deutlich mehr Umsatz. Auch wenn für die Schweiz keine entsprechende Statistik vorliegt, dürfte dies auch bei uns zutreffen. Wer also mit dem Verkauf von Apps Geld verdienen möchte, zum Beispiel mit Games, ist mit iOS weiterhin gut bedient. Wird eine App gratis als Ergänzung zu einem Dienstleistungsangebot bereitgestellt, werden aber natürlich weiterhin beide Plattformen angeboten werden müssen.

Huawei hat im vergangenen Sommer ein eigenes Betriebssystem vorgestellt. Zunächst hiess es, «Harmony OS» könnte Android umgehend ersetzen. Nun will der Hersteller das OS zumindest vorerst nicht auf seine Smartphones bringen. Wie beurteilen Sie diese Entwicklung?

Stocker: Huawei hat ein schwieriges Jahr hinter sich, an Harmony OS wird ja aber schon länger entwickelt. Ich kann mir gut vorstellen, dass diese Aussage das Ziel hatte, zu zeigen, dass man einen Plan B hat falls die USA weitere Sanktionen gegen Huawei beschliessen. Huawei ist ja jetzt so weit gegangen und wird neue Geräte ohne den Play Store auf den Markt zu bringen. Trotzdem sind dies aber immer noch Android-Geräte und als Entwickler muss ich mich vielleicht um einen neuen Distributionskanal bemühen, aber nicht die App neu entwickeln.

Braucht es aus Ihrer Sicht wieder ein drittes Smartphone-System?

Stocker: Nein. Mit iOS und Android haben wir zwei aktive Ökosysteme mit grossen Communities. Die beiden Plattformen bieten alles an Funktionalität an, um beliebige Apps zu entwickeln, daher sehe ich keinen Bedarf für ein drittes System. Ein Cross-Plattform Framework wie React Native und Googles Flutter oder sogar eine einfache Web-App hingegen sind durchaus valable Alternativen zu Native Apps.

Seelhofer: Das sehe ich ähnlich. Nutzt man als Entwickler Cross-Plattform-Frameworks oder die Web-Technologien, kommt es zudem gar nicht so gross darauf an, ob jetzt noch eine weitere Plattform dazu kommt oder nicht.

Was spricht für und was gegen eine weitere Alternative zu iOS und Android?

Stocker: Ich erinnere mich noch an meine Anfänge als Android-User zurück. Da war es oft der Fall, dass eine App zuerst fürs iPhone erschien und erst später für Android. Das hat mich damals schon gestört, obschon das Smartphone zu dieser Zeit noch nicht den Stellenwert von heute hatte. Deshalb kann ich mir nicht vorstellen, dass ein neues System genug Verbreitung erreichen könnte, um überhaupt Erfolg zu haben. Microsoft hat es ja auch versucht und ist gescheitert.

Seelhofer: Die Smartphones haben mittlerweile einen hohen Reifegrad erreicht. Das sieht man unter anderem daran, dass sich die jährlichen Neuerungen hauptsächlich auf schnellere Prozessoren und alle paar Jahre mal wieder eine neue Display-Technologie beschränken. Die grossen Innovationen scheinen vorbei zu sein. Dementsprechend scheinen die aktuellen Geräte zusammen mit den bestehenden Ökosystemen (Stores) den Status «gut genug» erreicht zu haben, was es für einen neuen Player im Markt umso schwieriger macht, sich über Alleinstellungsmerkmale zu etablieren. Dies zeigt auch die von Mirko angedeutete Geschichte rund um das Schwergewicht Microsoft und dessen Betriebsystem Windows Mobile/Phone, dessen Lifecycle übrigens in diesen Tagen definitiv endet.

Wie schätzen Sie die Zukunft der App-Entwicklung ein?

Seelhofer: Ich erwarte, dass die Cross-Plattform-Frameworks ihren Reifeprozess fortsetzen, wodurch grössere Kosteneinsparungen ermöglicht werden. Die native Entwicklung dürfte dadurch noch weiter an Bedeutung verlieren. Ähnlich wie beim Web mit Content-Management-Lösungen wie Wordpress kann ich mir zudem gut vorstellen, dass der Kostendruck zu einer grösseren Auswahl an App-Baukästen und White-Label-Lösungen führen wird, womit Apps rascher und kostengünstiger zusammengeklickt oder konfiguriert statt aufwändig programmiert werden können.

Was raten Sie Ihren Studierenden für den Einstieg in die Arbeitswelt?

Stocker: Selbstbewusst zu sein und mit offenen Augen durchs Leben zu gehen. Und ab und zu auch mal einen kritischen Blick auf die eigene Arbeit zu werfen und zu hinterfragen, ob das, was man tut, auch sinnvoll ist.

Seelhofer: Seine Zeit nicht mit technologischen Grabenkämpfen zu verschwenden, sondern sich an der Vielfalt zu erfreuen und offen für Neues zu sein. Mut zur Lücke zu beweisen und sich auch mal dagegen zu entscheiden, sich das allerneueste fancy Framework, von welchem der Arbeitskollege so begeistert gesprochen hat, unbedingt schon am nächsten Wochenende anschauen zu müssen. Man kann und muss nicht alles wissen.

Webcode
DPF8_165374

Kommentare

« Mehr