Manuel Rauber Thinktecture AG

Der Begriff „Single-Plattform“ lässt sich sicherlich am einfachsten erläutern. Wird eine Software nach diesem Ansatz entwickelt, ist sie auf nur genau einer Plattform lauffähig. Möchte man die Software auf einer anderen Plattform nutzen, muss sie oftmals gänzlich neu entwickelt werden

Der Begriff „CrossPlattform“ ist seit Längerem in aller Munde. Jede Software soll unabhängig von der Plattform oder dem Endgerät verfügbar sein und funktionieren. Der Traum, aus einer Codebasis alle Plattformen und Geräte zu bedienen, besteht schon lange: write once, run anywhere – ein von Java geprägter Slogan. Es zeichnet sich ab, dass Webtechnologien wie HTML5 und JavaScript diesen Traum tatsächlich Realität werden lassen. Doch welche Hindernisse müssen hierbei überwunden werden? Welche Softwarearchitekturen werden benötigt? Und wann müssen wir dennoch plattformabhängigen Code schreiben?

Single-Plattform, Multi-Plattform oder doch Cross-Plattform? Drei Begriffe, die man aus der Softwareentwicklung kennt und oft hört – gerade wenn eine neue Software entwickelt werden soll. Oftmals wird der Begriff „Multi-Plattform“ auch als Synonym von Cross-Plattform verstanden. Allerdings stecken hinter diesen zwei Begriffen unterschiedliche Ansichten. Daher wollen wir eingangs klären, was sich hinter diesen drei Begriffen verbirgt und wie sie voneinander abzugrenzen sind. Abbildung 1 zeigt eine grafische Übersicht.

Abb. 1: Schematische Darstellung der Begriffsabgrenzung

Abb. 1: Schematische Darstellung der Begriffsabgrenzung

Der Begriff „Single-Plattform“ lässt sich sicherlich am einfachsten erläutern. Wird eine Software nach diesem Ansatz entwickelt, ist sie auf nur genau einer Plattform lauffähig. Möchte man die Software auf einer anderen Plattform nutzen, muss sie oftmals gänzlich neu entwickelt werden. Das ist oft bei Software im Embedded-Bereich der Fall, da die Software sehr stark mit ihrer Hardwareumgebung interagieren muss. Bei typischer Konsumentensoftware ist die Welt allerdings oftmals eine andere. Hier stehen uns ähnliche Systeme zur Verfügung, auf denen unsere Anwendung laufen soll. Sind wir im typischen App-Bereich unterwegs, soll unsere App die drei Großen bedienen: Android, iOS und Windows UWP. Im Fall von Single-Plattform würde man die App daher dreimal vollständig für jede Plattform entwickeln – nicht gerade zeit- und ressourcenfreundlich.

Bei diesen Anforderungen setzt man gerne auf den Multi-Plattform-Ansatz. Im Fall der drei Großen (also Android, iOS und Windows UWP) ist hier Xamarin als Option für die Entwicklung zu nennen. Xamarin – mittlerweile aus dem Hause Microsoft – ermöglicht es, sowohl für die drei genannten mobilen Plattformen als auch macOS-Apps auf einer einzigen Codebasis zu entwickeln. Die Codebasis selbst wird in C# entwickelt. Dadurch lassen sich vor allem Services, Geschäftslogik und Modelle über alle von Xamarin unterstützten Plattformen teilen. Xamarin überlässt es dem Entwickler, ob er für jede Plattform ein eigenes UI entwickeln möchte, um ein hundertprozentiges natives Look and Feel zu erreichen. Oder ob der Entwickler die Abstraktion Xamarin.Forms einsetzen möchte. Xamarin.Forms abstrahiert dabei den Plattform-UI-Layer hinter einer gemeinsamen Menge von Komponenten. Damit kann das UI einmal entwickelt werden und Xamarin kümmert sich um die korrekte Darstellung auf der jeweiligen Zielplattform. Hierbei können natürlich nur Komponenten eingesetzt werden, die auf allen Plattformen gleichermaßen, wenn auch in einer anderen Darstellungsform, existieren. Möchte man spezielle Darstellungsformen und Komponenten einer spezifischen Plattform einsetzen, muss der Entwickler selbst Hand anlegen. Mit Xamarin können wir aber bereits eine große Menge an Plattformen mit einem hohen Anteil an geteiltem Code erreichen.

Den vollständigen Artikel lesen Sie in der Ausgabe:

Windows Developer 5.17 - "Cross-Plattform mit JavaScript"

Alle Infos zum Heft
579794452Cross-Plattform wird dank HTML5 und JavaScript Realität
X
- Gib Deinen Standort ein -
- or -