AllgemeinSoftware

Plattformübergreifende App-Entwicklung

Die ewige Frage: Android oder iOS? Dies wird den meisten Benutzern mobiler Geräte keine unbekannte Frage sein. Aber auch für Software- und App-Entwickler bleibt sie bestehen, denn: Will ich, dass meine App sowohl auf Android als auch auf iOS läuft, ist das herkömmliche Verfahren nativ zwei Versionen der gleichen App zu schreiben. Für die Android-Version haben Entwickler die Wahl zwischen Kotlin und Java als Programmiersprache, mit Android Studio als Entwicklungsumgebung. Bei iOS hingegen werden Apps entweder auf Swift oder Objective-C basieren und meist mit Apples hauseigener Xcode Entwicklungsumgebung entwickelt.

Klingt nicht nur umständlich, ist es auch. Glücklicherweise gibt es inzwischen Alternativen zu diesem Verfahren. In den folgenden Absätzen möchten wir Ihnen einige dieser Alternativen vorstellen und einen Einblick in die Entwicklung von Hybrid-Applikationen geben. Die ermöglicht nur eine Anwendung schreiben zu müssen, welche auf beiden System läuft.

Apache Cordova
Eine der meistverbreiteten Entwicklungsplattformen ist Apache Cordova. Cordova ermöglicht die Entwicklung von Applikationen mit CSS3, HTML5 und JavaScript, anstatt auf die Plattformspezifischen APIs angewiesen zu sein. Hier werden die Funktionen von HTML und JavaScript erweitert, um mit dem Gerät arbeiten zu können. Da Cordova mit HTML arbeitet, geht allerdings das Look & Feel der Plattform verloren, da es sich meist um simple HTML Seiten handelt, welche innerhalb der App dargestellt werden.
cordova.apache.org

Microsoft Xamarin
Microsoft bietet mit der Xamarin Plattform ihre eigenen Entwicklungskomponenten an. Beim Entwickeln in Xamarin können Entwickler die nativen APIs der jeweiligen Plattformen in der Programmiersprache C# ansprechen, was nicht nur die Plattformspezifischen APIs, sondern auch leistungsfähige, C# spezifische Eigenschaften, wie Events, Delegates und asynchrone Funktionen zur Verwendung freigibt. Beides ist ein wesentlicher Vorteil für Entwickler, da man so nicht die gewohnte C# Umgebung verlassen muss.
visualstudio.microsoft.com

NativeScript
NativeScript stellt eine weitere Alternative zu der nativen App-Entwicklung oder den bereits erwähnten Cordova und Xamarin Plattformen da. NativeScript-Anwendungen werden in JavaScript oder TypeScript entwickelt und benutzen XML um die plattformspezifischen Oberflächen-Elemente anzusprechen. Darüber hinaus bietet NativeScript außerhalb von Java- und TypeScript noch Unterstützung für die Angular.js und Vue.js Frameworks. Anschließend erfolgt die Zwischenübersetzung zu einer nativen App in der Node.js Laufzeitumgebung.
nativescript.org

Flutter
Eine vergleichsweise neue Alternative bietet Google mit dem Framework Flutter, dessen erster Stable-Release am 05.12.2018 war. Im Gegensatz zu NativeScript und Xamarin verwendet Flutter nicht die nativen UI-Komponenten von Android und iOS, sondern eine eigene Render-Engine, um UI-Elemente zu zeichnen. Auch Flutter ermöglicht den Zugriff auf native Funktionen der mobilen Plattform, allerdings nur über Plugins, welche für viele Bereiche schon von der Community und dem Flutter Team veröffentlicht wurden. Möchte man allerdings spezifische Funktionen, kommt man kaum schwerlich herum, selbst ein Plugin zu entwickeln. Als Programmiersprache verwendet Flutter Dart. Dart stellt Googles eigene Alternative zu JavaScript da und wurde für den Einsatz im HTML-Webseiten konzipiert. Im Gegensatz zu Cordova wird hier allerdings nicht eine HTML-Webseite als App verpackt, sondern ein Compiler genutzt, welcher durch eine Zwischenübersetzung die entsprechenden nativen Anwendungen generiert.
flutter.io

Sowohl NativeScript als auch Flutter besitzen eine Funktion namens „Hot Reloading“, welches die Kompilierzeit reduziert und bei Codeänderungen nicht zum Neustart der aktuellen View führt. Dies ist vor allem bei der (Fein-)Justierung von UI Elementen überaus hilfreich.

Dies sind natürlich nicht alle Alternativen zur nativen App Entwicklung, sie geben aber schon einmal einen guten Einblick in die Landschaft der plattformübergreifende App-Entwicklung.

LV

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.