Nils Mehlhorn adesso AG

 

Als Angular-Entwickler ist man nicht nur auf das Web beschränkt. Das zeigt das Framework NativeScript wie kein anderes. Mit Erfahrungen aus dem Web lassen sich plattformübergreifend mobile Anwendungen erstellen, die dem nativen Look and Feel entsprechen. Der Einstieg fällt ungeahnt leicht, doch wenn es ans Eingemachte geht, kann es hier und da auch schon mal hapern.

Erfahrungen aus der Webentwicklung lassen sich auf anderen Plattformen wiederverwenden, ohne auf die User Experience verzichten zu müssen, die eine nativ implementierte App bietet. Um zu zeigen, wie das geht, werden hier zunächst die generellen Konzepte von NativeScript erläutert, um anschließend darzustellen, wie das Zusammenspiel mit Angular funktioniert. Dann soll anhand einer kleinen Beispielanwendung zum Verwalten von Notizen die grundlegende Entwicklung von plattformübergreifenden Apps mit NativeScript und Angular illustriert werden.

NativeScript ist ein Framework zur plattformübergreifenden Entwicklung von mobilen Anwendungen. Die Progress Software Corporation hat in diesem Jahr die dritte Version der Open-Source-Lösung veröffentlicht. Sie wendet das in der Softwareentwicklung klassische Konzept der Abstraktion von zugrunde liegenden Systemen auf die mobile Entwicklung an. Android-Apps werden mit Java entwickelt, für iOS muss Objective-C oder Swift verwendet werden. Will man seine App auf beiden Plattformen veröffentlichen, ist man beim herkömmlichen Vorgehen quasi gezwungen, zweimal zu entwickeln. Sogenannte Cross-Plattform-Lösungen erlauben das Generieren von beiden Anwendungspaketen aus einer einzigen Codebasis. Ähnlich wie bei anderen Frameworks auf dem Gebiet wird diese bei NativeScript mithilfe von Webtechnologien erstellt. Im konkreten Fall fällt jedoch die Markup-Sprache HTML weg. Anders nämlich als bei Lösungen wie PhoneGap, die letztendlich eine Webanwendung im nativen Gewand ausliefern, ist eine NativeScript-App deutlich näher an der eigentlichen Plattform. Statt der Imitation von nativen Benutzerelementen mithilfe von Webelementen werden direkt native Elemente verwendet. Ein Button entspricht beispielsweise bei der Ausführung in einer NativeScript-App jeweils der nativen Implementierung von iOS oder Android. Das ist möglich, da die Architektur des Frameworks Aufrufe an jegliche Systemschnittstellen erlaubt (Abb. 1).

Abb. 1: Architektur von NativeScript-Apps

Abb. 1: Architektur von NativeScript-Apps

User Experience und Performance sind die größten Herausforderungen für Cross-Plattform-Ansätze. NativeScript kann hier durch einen hohen Grad an Nativität punkten. Listing 1 zeigt, wie sehr ein Systemaufruf in NativeScript der nativen Variante ähnelt. Im Beispiel wird ein Ansichtselement zwar programmatisch initialisiert, in der eigentlichen Entwicklung werden die Benutzeroberflächen jedoch deklarativ mithilfe von XML definiert. Dort verwendet der Entwickler auch nicht direkt die Komponenten der Plattform. Er hat zwar nun Zugriff auf alles, was die mobilen Systeme bieten, müsste aber trotzdem immer selbst zwischen ihnen differenzieren. Der Vorteil der Cross-Plattform-Entwicklung soll aber ja gerade sein, dass sich der Entwickler nicht zu sehr mit den letztendlichen Systemschnittstellen beschäftigen muss. Hier kommen Module zum Einsatz, die die erwünschte Abstraktion mitbringen und die Verwaltung der eigentlichen Systemreferenzen übernehmen.

Den vollständigen Artikel lesen Sie in der Ausgabe:

PHP Magazin 3.18 - "Haftungsfalle DSGVO"

Alle Infos zum Heft
579832019Mobile Cross-Plattform-Entwicklung mit NativeScript
X
- Gib Deinen Standort ein -
- or -