Entwicklung einer mobilen App: Native vs. Cross-Plattform
Nils Thoma | 9. Januar 2018 | Technologie - Entwicklung

Die Nutzung von mobilen Endgeräten wie Smartphones und Tablets steigt stetig: Bereits Ende 2018 soll bis zu 80% der Internet-Nutzung von Endanwendern über mobile Geräte laufen. Daher nehmen diese Endgeräte in der Anwendungsentwicklung eine bedeutende Rolle ein.

Für Entwickler aber auch für Firmen bedeutet dies ein Umdenken. Gerade die Nutzung von Apps wird immer wichtiger. Der weltweite Umsatz mit mobilen Apps wird 2017 die 80 Milliarden Dollar überschreiten, bis 2021 wird sogar ein jährlicher Umsatz von bis zu 140 Milliarden Dollar erwartet.

Die sich daraus ergebende Herausforderung ist die Endanwender über alle Plattformen hinweg zu erreichen. Hierfür gibt es mehrere Ansätze mit ihren jeweiligen Vor- und Nachteilen, die wir in diesem Blogeintrag näher betrachten wollen.

Die Plattformen

Bereits früh im Entwicklungsprozess muss die Wahl getroffen werden, auf welcher Plattform die App verfügbar sein soll. Besonders interessant sind hierbei natürlich Android (ca. 87% Marktanteil) sowie IOS (ca. 12% Marktanteil). Mit 87% Marktanteil scheint Android als Zielplattform fast unverzichtbar. Doch gerade im Geschäftsumfeld sind Apple-Geräte mit dem  iOS Betriebssystem sehr beliebt. Windows hingegen besetzt derzeit keinen nennbaren Anteil im mobilen Markt. Entwickeln wir aber eine App für den Windows Store, dann kann diese auf den meisten Desktop Rechnern genutzt werden. Ein Faktor, den es nicht zu unterschätzen gilt.

Eine Entscheidung für eine Platform können wir daher gar nicht treffen, denn man sollte mindestens Android und iOS als Platform unterstützen. Was bedeutet das aber für den Entwicklungsaufwand einer Anwendung?

Die Technologie

Es gibt generell zwei Möglichkeiten, eine App zu entwickeln: Nativ oder Plattformübergreifend. Bei der nativen Umsetzung erfolgt die Entwicklung spezifisch für eine Plattform. Da die App auf mehreren Plattformen verfügbar sein soll, muss man für jede Plattform eine eigene native App entwickeln. Ein interessanter, alternativer Ansatz hingegen ist Cross-Plattform – hierbei wird die App nur einmal für alle Plattformen entwickelt.
Diese beiden Möglichkeiten wollen wir uns im Folgenden nun anschauen und vergleichen.

Native

Bei einem nativen Ansatz wird die App für jede Plattform (IOS, Android, Windows) grundsätzlich einzeln mithilfe von Tools, die vom jeweiligen Hersteller zur Verfügung gestellt werden (z.B. Android Studio oder XCode) entwickelt. Man greift dabei nur teilweise auf eine gemeinsame Codebasis zurück. Wir schreiben den Großteil des Codes also für jede Plattform einzeln. Dies ermöglicht es, die App für jede Plattform zu optimieren und so die maximale Performance zu erreichen.

Weitere Vorteile sind die Design Möglichkeiten: Alle UI-Elemente stammen nativ vom jeweiligen System und bieten so die bestmögliche User-Experience. Auch der Zugriff auf Hardware Features (GPS, LEDs o.ä.) fällt leicht.

Eine native App ist somit performanter, bietet durch eine hardwarenähere Entwicklung mehr Möglichkeiten und nutzt die Designelemente des zugrunde liegenden Systems.

Cross-Plattform

Bei einem Cross-Plattform Ansatz hingegen wird der Code nur einmal entwickelt und die App läuft mit ein paar kleineren Anpassungen auf allen Plattformen. So muss deutlich weniger Code für dieselben Funktionen geschrieben werden.  Dadurch erspart man sich einiges an Arbeit, sowohl in der Entwicklung, als auch in der Wartung.

Neben diesem Vorteil bringt dieser Ansatz auch Nachteile mit sich, denn für diesen Komfort gibt man einige der oben genannten Vorteile des nativen Ansatzes auf. Da der gemeinsame Code nicht für die einzelnen Plattformen optimiert ist, büßt man hierbei einiges an Performance ein. Dies ist vor allem auf älteren Smartphones oder für hoch performante Anwendungen ein Problem.

Ein weiterer Nachteil einer Cross-Plattform App ist der erschwerte Zugriff auf einige hardwarespezifische Features. Während für häufig genutzte Features dieser Nachteil durch gut gepflegte Plugins/Interfaces kaum spürbar ist, kann einem die Nutzung von etwas spezielleren, plattformspezifischen Features Kopfzerbrechen bereiten.

Native vs. Cross-Plattform

Schematische Darstellung des Codeflusses (Allgemeine Darstellung, kann je nach Framework abweichen)

Doch das ist alles sehr generell gesprochen. Denn ein Kernstück des Cross-Plattform Ansatzes sind die Frameworks, welche den Comfort überhaupt erst möglich machen. Dort ist die Auswahl mannigfaltig: Von „Native Cross-Plattform“ über „Hybrid HTML5 Applications“ und spezielle Spiele-Frameworks haben alle ihre verschiedenen Stärken und Schwächen. Einen genaueren Blick auf diese Thematik werfen wir daher in einem weiteren Artikel, der demnächst bei uns erscheinen wird.

Welcher Ansatz ist nun der bessere?

Die Entscheidung ist also nicht einfach – das bestmögliche Produkt erreicht man zwar meist mit einem nativen Ansatz, doch ob sich der damit verbundene Mehraufwand lohnt und wie stark die Nachteile des Cross-Plattform Ansatzes für dieses Produkt ins Gewicht fallen, muss von Fall zu Fall entschieden werden.

Auch die Vorkenntnisse der Entwickler spielen eine Rolle. Im Extremfall müssen sie sich bei einem nativen Ansatz in mehrere Plattformen einarbeiten – bei Cross-Plattform hingegen meist nur in ein Framework. Doch egal wie man sich entscheidet – mit beiden Ansätzen lassen sich beeindruckende Apps erschaffen.

Haben Sie Fragen oder Anmerkungen zu dem Beitrag beziehungsweise der Thematik? Dann hinterlassen Sie einen Kommentar, oder schreiben Sie mir und meinen Kollegen direkt eine E-Mail.

Kommentare

Die Angabe Ihrer E-Mail Adresse, sowie des Namens, sind optional. Wir nutzen Ihre E-Mail Adresse, um mit Ihnen in Kontakt zu treten, falls durch Ihren Kommentar Rechte Dritter verletzt werden. Ihre E-Mail Adresse wird von uns weder veröffentlicht oder weitergegeben. Weitere Informationen finden Sie auf der Datenschutz-Seite.

Suche
Über den Autor

Nils Thoma

Nils Thoma ist seit Anfang 2016 als Werksstudent bei der German Management Consulting tätig. Seit Herbst 2015 studiert er Informatik an der Technischen Universität Darmstadt. Seine Schwerpunkte liegen in den Bereichen Data Science und Anwendungsentwicklung.