c't 10/2018
S. 118
Marktübersicht
Crossplattform-Entwicklung für Android und iOS
Aufmacherbild
Bild: Albert Hulm

Eine IDE, sie zu knechten

Apps gleichzeitig für Android und iOS entwickeln

Crossplattform-Entwicklungssysteme erzeugen Anwendungen, die auf verschiedenen Betriebssystemen gleichermaßen nutzbar sind. Das erweitert nicht nur die Zahl der potenziellen Nutzer, sondern rüstet Apps auch für zukünftige Umwälzungen. Dieser Artikel stellt einige Entwicklungsumgebungen vor, von kostenlos bis teamfähig teuer.

Kernighan und Richie postulierten zwar in ihrem Standardwerk zu C, dass ein „sauber“ aufgebautes C-Programm auf verschiedenen Plattformen ohne große Modifikationen kompilierbar ist, aber ganz so einfach ist es dann doch nicht. Schnell war klar, dass ein Framework nötig ist, eine Abstraktionsschicht zum Kapseln der Eigenheiten der Betriebssysteme und GUIs.

Diese Frameworks müssen im Mobilbereich ob der häufigeren Wechsel der dominierenden Systeme – Palm OS, Symbian, Blackberry, Windows CE/Mobile, Android, iOS – und ob der wachsenden Fähigkeiten der Smartphones flexibler sein als für Desktops mit der Jahrzehnte alten Dominanz von Windows. Zudem bekommen Webanwendungen als weitere Plattform eine zunehmende Bedeutung. Wir werfen einen Blick auf Qt, RAD Studio von Embarcadero, Microsofts Xamarin für .Net, Adobe PhoneGap und seinen Open-Source-Kollegen Cordova, Telerik NativeScript, Facebook React Native, NS Basic und Unity. Googles Neuerscheinung Flutter stellen wir in einem künftigen Artikel vor.

Eine Hoffnung erfüllt keines dieser Crossplattform-Frameworks: Sie ersparen den Entwicklern nicht ganz, sich mit dem Host-Betriebssystem auseinanderzusetzen. Wenn nicht wenigstens einer im Entwicklerteam versteht, wie Android und iOS funktionieren, wenn niemand zumindest grundlegend mit der nativen Toolchain umgehen kann, wird das Projekt im Laufe der Entwicklung über kurz oder lang mit Karacho gegen eine Wand donnern.

Ein Beispiel dafür sind die Manifest-Dateien, in denen unter anderem Details zur Rechtevergabe stecken. Die Crossplattform-Tools erzeugen zwar brauchbare Varianten, aber in der Praxis führen speziellere Anforderungen immer wieder zu nicht lauffähigen Programmen. Nur wer das Sicherheitsmodell des jeweiligen Betriebssystems kennt, kann die Fehlermeldungen auswerten. Aber auch die Human Interface Design Guidelines, in denen die Betriebssystem-Entwickler darlegen, was sie sich beim Design des GUI-Stacks gedacht haben, sind einen Blick wert.