Native plattformübergreifende Apps 06.11.2018, 09:09 Uhr

Apps entwickeln? Xamarin!

Eine Applikation programmieren, die alle Nutzer erreicht, eine einheitliche Oberfläche hat und Kosten spart.
Bei der App-Entwicklung stellt sich immer die Frage: nativ oder plattformunabhängig? Der Vorteil von Letzterem liegt auf der Hand. Zwar lassen sich plattformspezifische Apps zum Beispiel für iOS mit Apples Entwicklungsumgebung Xcode entwickeln und mit allem ausstatten, was das SDK so bietet: Unterstützung für 3D-Touch, Gesten, Animationen, Dateiverschlüsselung und diverse Spielereien. Doch diese App danach für andere Plattformen zu portieren ist aufwendig und benötigt bei entsprechend komplexen Apps ein separates Entwicklerteam. Wenn verschiedene Entwicklerteams die gleiche App für iOS, Android und Windows parallel entwickeln, dann kann es aufgrund von unterschiedlichen Programmiersprachen, anderen Vorstellungen oder Richtlinien zusätzlich zu Problemen kommen. Je nach Programmiersprache und Entwicklungsmuster ist die Wiederverwendbarkeit des Quelltexts dann nur eingeschränkt gegeben.
Um gar nicht erst vor diesem Dilemma zu stehen, lohnt es sich, schon vorab über plattformübergreifende Entwicklungslösungen nachzudenken. Entweder man entscheidet sich für hybride Lösungen wie Ionic oder Apache Cordova, die denselben Webinhalt auf jeder Plattform anzeigen, oder man wählt native Lösungen, wie React Native, NativeScript oder Xamarin, die „richtige“ Apps erzeugen. Die nativen Frameworks sind dabei schneller und sehr viel Hardware-naher als die hybriden Webframeworks und geben dem Nutzer eine Benutzeroberfläche, wie sie es von ihrem Betriebssystem gewohnt sind.

Die Herausforderung

Das Ziel des Projekts, das diesem Artikel zugrunde liegt, war es, die elementaren Funktionen einer grossen Webanwendung mit REST-Schnittstelle nativ mithilfe von Xamarin auf mobile Geräte zu bringen.
Der Server, der die Weboberfläche bereitstellt, ist eine Reporting-Software, die Berichte aus beliebigen Datenbanken visualisieren kann. Berichtsvorlagen werden mit einer separaten Software oder im Ad-hoc-Designer erstellt. Dort können die gewünschten Daten mit Diagrammen, Tabellen oder Graphen verknüpft werden. Ein Bericht, der zum Beispiel die Verkaufszahlen eines Unternehmens in einem Balkendiagramm darstellt, lässt sich dann mit den aktuellen Daten aus der Datenbank in beliebige Dateiformate exportieren. Mit mobilen Apps ist dieser Zugriff dann auch bequem von unterwegs aus möglich.

Xamarin

Xamarin ist in Visual Studio integriert, seit Microsoft Xamarin übernommen hat, was das frühere Xamarin Studio obsolet macht. Zudem entstehen – im Unterschied zu früher – auch keine weiteren Kosten bei der Lizenzierung [1]. So kann man mit aktuellen Visual-Studio- Versionen direkt anfangen, auch kommerzielle Xamarin-Apps zu schreiben.
Xamarin-Projekte haben in der Regel eine gemeinsame C#-Codebasis, aus der eine echte native App für jede Plattform erstellt wird. Neben Android und iOS unterstützt Xamarin auch Windows. Weitere Plattformen wie Tizen, macOS, Linux (GTK) und WPF werden ständig ergänzt [2].
Die Vorteile gegenüber der nativen Entwicklung separater Applikationen ist die geringere Redundanz des Codes, eine gemeinsame Programmiersprache und vor allem die Verwendung einer grossen geteilten Bibliothek für Benutzeroberfläche und Logik. Durch einen Code-Reuse von bis zu 100 Prozent lässt sich Zeit und damit auch Geld sparen.
In der Grafik von Bild 1 wurde ausschliesslich die Grösse des in unserem Beispielprojekt hinzugefügten Quellcodes gemessen. Abhängig von der Komplexität und Detailliertheit der App ist es in der Regel nicht möglich, 100 Prozent Wiederverwendung zu erreichen.
Code-Verteilung, gemessen an der Menge des Quelltexts (Bild 1)
Die Grundlage für Xamarin ist dabei das altbekannte ­Mono Framework. Mit Mono ist es schon lange möglich, Microsoft-
.NET-Programme auch ohne Neuübersetzung auf UNIX- beziehungsweise Linux- Betriebssystemen auszuführen. Dadurch kann man Apps in C# schreiben, die dann auf von ­Mono unterstützten Plattformen laufen.

Joshua Rutschmann
Autor(in) Joshua Rutschmann



Das könnte Sie auch interessieren