Plattformübergreifende App-Entwicklung mit Xamarin

Datum

05.07.2016

Dieser Beitrag wurde verfasst von:

Bianca Rau

Professionelle App-Entwicklung ist eine Herausforderung: Die App als solche muss vom Anwender gerne bedient und angewendet werden, sie sollte auf allen Devices laufen und sich nahtlos in die vorhandene Systemlandschaft einfügen. Bei der Entwicklung von Apps galt lange Zeit das Paradigma, dass jede App nur in ihrer eigenen (Betriebssystem-)Welt funktioniert. Eine App, die sowohl auf iOS, Android und Windows laufen sollte, wurde demnach in drei verschiedenen Programmiersprachen erstellt. Mit der Xamarin-Technologie wird dieses Paradigma nun aufgelöst. Xamarin ist eine übergreifende Entwicklungsplattform, die die Welten zusammenführt und die bislang erforderliche Mehrarbeit weitgehend überflüssig macht.

Welche Xamarin-Komponenten gibt es?

​Xamarin Platform

  • Durch die Kompoenten Xamarin.iOS und Xamarin.Android ist es möglich, native Apps für iOS, Android und Windows in C# mit Xamarin Studio oder Visual Studio unter einer gemeinsamen Codebasis zu entwickeln.

Xamarin für Visual Studio

  •  Xamarin erlaubt es, native Apps für iOS, Android und Windows mit Microsoft Visual Studio zu entwickeln.

Xamarin Studio

  • Eine eigenständige IDE für mobile-App-Entwicklung, die einen Debugger, einen Compiler für C# und Werkzeuge für die Programmierung grafischer Benutzeroberflächen von Android und iOS enthält.

 Xamarin.Forms

  •  Xamarin.Forms erlaubt, portable Bedienelemente zu verwenden, welche die eigentlichen Bedienelemente von Android, iOS und Windows Phone aufrufen.

Xamarin Test Cloud

  • Hier wird es ermöglicht, mobile Apps in der Cloud auf über 2000 verschiedenen Geräten zu testen.

.Net Mobility Scanner

  •  Xamarins .Net Mobility Scanner ermöglicht es Entwicklern, ihren .NET-Programmcode auf unterschiedlichen Zielplattformen zu inspizieren: vor allem für iOS, Android, Windows Phone und Windows Store.

 

„Write Once, Run Everywhere “

Xamarin ist eben nicht nur eine einfache „write once, run everywhere”-Entwicklerplattform. Durch geschicktes Design wird es zwar möglich, eine große Menge an Code generisch zu verwenden, allerdings kann zusätzlich ein natives User Interface für jede Plattform implementiert werden.

Um dies auch tatsächlich zu erreichen, wird C# genutzt, da der Code sowohl für Windows als auch für iOS und Android nutzbar ist. Dadurch ist es möglich, sowohl die Business-Logik als auch Daten- und Serviceschichten in eine gemeinsame Codebasis auszulagern, sodass lediglich die plattformspezifischen Komponenten durch die entsprechenden Projekte aufgegriffen werden. Somit wird die Wiederverwendbarkeit des Codes maximiert.

Abb. 1: Core Library, xamarin.com
Abb. 1: Core Library, xamarin.com

Mit Xamarin.Forms ist fast 100% Code-Reuse möglich

Der Hauptnutzen bei der Verwendung von Xamarin ist, dass auch in C# codierte Betriebssystem-Elemente im User Interface genutzt werden und so nicht von einer Applikation, die in Swift oder Java geschrieben wurde, zu unterscheiden sind. Beim Bauen der Bildschirmansichten können die Bedienelemente dann entweder in Code geschrieben oder als komplette Elemente in den zur Verfügung stehenden Design-Tools kreiert werden. Dies wird mit Xamarin.Forms möglich gemacht, indem die nativen Controls durch eine Zwischenschicht abstrahiert werden.

Abb. 2: UI mit Xamarin.Forums, xamarin.com
Abb. 2: UI mit Xamarin.Forums, xamarin.com

 Xamarin.Forms besteht im Wesentlichen aus vier Komponenten:

  • Pages: Seiten zum Darstellen der App (in Android eine Activity, in iOS ein View Controller), es existieren fünf verschiedene Varianten: ContentPage, MasterDetailPage, NavigationPage, TabbedPage und CarouselPage
  • Views: Steuerelemente wie Buttons, Labels, DatePicker oder Editor
  • Layouts: Container-Elemente wie Grid, StackLayout oder ContentView
  • Cells: einzelne Einträge in anderen Elementen wie ListView und TableView

Während manche Elemente wie Datenlisten, einzelne Datenansichten und Scrolling plattformübergreifend universal funktionieren, müssen andere Elemente, wie beispielsweise Bildschirmgrößen oder Steuerung über Berührung und Gesten, plattformspezifisch angepasst werden. Zudem müssen gerätespezifische Merkmale wie Kamera, Positionsbestimmung oder auch NFC-Funktionen in Betracht gezogen und beim Schreiben des Codes, falls für die App notwendig, beachtet werden.

Reicht es nicht aus, nur über den gemeinsamen Nenner zu programmieren, kann der Custom Renderer, mit dem das native Verhalten und Aussehen auf den einzelnen Plattformen überschrieben, ausgebessert und verändert werden kann, zum Einsatz gebracht werden.

Läuft das Ergebnis wirklich plattformübergreifend?

Um schlussendlich zu überprüfen, ob die plattformunabhängige App tatsächlich auf den verschiedenen Endgeräten läuft, müssen im Normalfall eine große Anzahl von Testfällen durchlaufen werden. Die Test Cloud von Xamarin hingegen ermöglicht es, automatisierte UI-Tests auf physikalischen Testgeräten durchzuführen, die entweder manuell über einen Webservice angestoßen werden können oder aber durch Continuous Integration automatisch ausgeführt werden können. Die Ergebnisse, inklusive verschiedener Performance-Indikatoren (z.B. Speicherverbrauch und CPU-Last) erhält der Entwickler abschließend per Mail.

Die Vorteile liegen klar auf der Hand

Durch die Nutzung der Programmiersprache C# können Entwickler Apps plattformunabhängig in einer einheitlichen Sprache erstellen. Außerdem ist C# relativ einfach strukturiert, leistungsfähig, typsicher und objektorientiert. Da ein großer Teil des Codes für alle Plattformen wiederverwendet werden kann und lediglich Teile des User Interface spezifisch angepasst werden müssen, ergeben sich somit nicht nur Zeit-, sondern natürlich auch Ressourceneinsparungen für Entwickler bzw. Unternehmen.

In Zeiten des mobilen Internets, der allgegenwärtigen Vernetzung und der Entwicklung hin zum digitalen Arbeitsplatz, in denen Applikationen immer mehr an Bedeutung gewinnen, ist es sicherlich eine gute Idee, sich mit Xamarin als Entwicklungsplattform auseinanderzusetzen.

Erfahren Sie mehr

novaCapta auf der Fachtagung für Interne Revision
Event
Event

novaCapta auf der Fachtagung für Interne Revision

Das Expertenteam der novaCapta präsentiert am 15. und 16. November ihre innovative Audit Management Lösung auf dem DIIR-Kongress in Dresden. Besuchen Sie unsere...

Valo ist neuer Partner der novaCapta für Intranets
News
News

Valo ist neuer Partner der novaCapta für Intranets

Durch die Partnerschaft mit Valo, dem Ready-2-Go Intranet-Baukasten aus Finnland baut die novaCapta ihr Angebot bei der Umsetzung von schnellen und funktionalen...

Jan
25
Webcast mit Microsoft: Fit für die digitale Arbeitswelt
Webinar
Webinar

Webcast mit Microsoft: Fit für die digitale Arbeitswelt

Die digitale Transformation und die Veränderung der Arbeitswelt ist längst in vielen Unternehmen und in den öffentlichen Einrichtungen angekommen. Dennoch stell...

SharePoint Framework Client-Side Webparts mit React
Blog
Blog

SharePoint Framework Client-Side Webparts mit React

React ist ein Framework zur Erstellen von Benutzeroberflächen. In der SharePoint Online Entwicklung bietet es sich für die Entwicklung von Client-Side Webparts...

Office 365 Groups als Evolution von SharePoint?
Blog
Blog

Office 365 Groups als Evolution von SharePoint?

Zusätzlich zu SharePoint erlauben die Office 365 Groups es mir als Anwender, schnell und einfach neue Gruppen anzulegen und selbständig Benutzer hinzuzufügen.

Sliding to heaven – A short story of a SPFx Slider Webpart
Blog
Blog

Sliding to heaven – A short story of a SPFx Slider Webpart

SharePoint Framework, kurz SPFx, ist eine zukunftsträchtige Technologie zur Erstellung von Webparts oder Extensions auf der Basis von TypeScript.

Jan
17
Webinar Azure DevOps und Docker Machine
Webinar
Webinar

Webinar Azure DevOps und Docker Machine

DevOps ist in aller Munde, doch was genau verbirgt sich eigentlich hinter dem so viel beschworenen Konzept der IT-Zusammenarbeit? Im Webinar am 17.01.2019 erfah...

Ich bin im Flow! – Eine Übersicht zu Microsoft Flow
Blog
Blog

Ich bin im Flow! – Eine Übersicht zu Microsoft Flow

Die Power Platform wird aktuell von Microsoft sehr stark gepusht. Zeit, sich mit dem Potenzial der einzelnen Komponenten zu beschäftigen. Heute: Flow.

Bundesliga-Tippspiel

Bundesliga-Tippspiel

Fußball ist in Ihrem Unternehmen jeden Montag Gesprächsthema Nummer eins? Dann holen Sie sich die Fußball Bundesliga in Ihr Intranet!

novaBirthday

novaBirthday

novaBirthday erweitert Ihr SharePoint-Intranet um ein soziales Feature und kann damit die Akzeptanz und Reichweite verbessern.

SharePoint Fachapplikationen

SharePoint Fachapplikationen

Fachapplikationen für Microsoft SharePoint erweitern den Funktionsumfang von SharePoint in vielfältiger Weise, lassen sich auf individuelle Bedürfnisse zuschnei...

Strukturen lernen und leben – Praxis Informationsarchitektur
Blog
Blog

Strukturen lernen und leben – Praxis Informationsarchitektur

Teil 1 – Strukturen lernen – Informationsarchitektur erfolgreich vertreten