Zwei Frauen schauen gemeinsam auf einen Bildschirm

Plattformübergreifende App-Entwicklung mit Xamarin

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.

Schaubild Xamarin UI Windows iOS und Android
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.

Schaubild UI mit Xamarin
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.

Reagenzgläser
Referenz

Miltenyi Biotec: Azure und Xamarin optimieren Prozesse

Der Laborgerätehersteller Miltenyi Biotec entwickelte in Zusammenarbeit mit novaCapta eine auf modernsten Technologien basierende App, die Prozesse der täglichen Arbeit im Labor optimiert.

Programmer Woman Coding On Computer
Blog 30.09.21

Ohne Programmierkenntnisse zum Entwickler werden

Bei der Digitalisierung von Unternehmen erfordern passgenaue Business-Apps und automatisierte Workflows bislang ­erheblichen Entwicklungsaufwand. Microsoft setzt dem die Power Platform entgegen, mit der sich auch ohne Programmierkenntnisse gleichwertige Geschäftsanwendungen erstellen lassen sollen.

Hands of man using online virtual app on mobile phone. Millennial guy chatting on smartphone, using banking services, reading text message, typing, shopping, making call, browsing internet. Close up
Blog 09.05.19

Teams Extensions – Erstellen von Erweiterungen für Teams

Mit der Entwicklung von Extensions kann Teams einfach erweitert werden. Hierfür gibt es das App Studio, welches über den Teams Store installiert werden kann.

Close up of female hands while typing on laptop
Blog 20.11.18

SharePoint Framework Client-Side Webparts mit React

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

work using texting cell phone typing computer.chatting on mobile,laptop contact us at workplace Thinking investment plan Investor.searching information internet.connecting people concept
Blog 18.12.24

Endpoint Management & Security mit Intune

Wir arbeiten mit den unterschiedlichsten Endgeräten und Applikationen. Im Interview erklärt unser Experte Shady Khorshed daher, warum ein konsistentes Endpoint Management so wichtig ist für die Betrieb und die Security von Unternehmen.

Hands of man using online virtual app on mobile phone. Millennial guy chatting on smartphone, using banking services, reading text message, typing, shopping, making call, browsing internet. Close up
Blog 20.07.15

Dateizugriffsrechte verwalten mit Microsoft RMS – Teil 3

Dieser Teil der Artikelserie befasst sich mit der RMS-Freigabeanwendung, welche Dateien jeglichen Dateityps verschlüsseln kann.

Individual Engaged in Productive Work at Modern Cafe With Greenery on Table. Generative AI
Blog 05.12.24

Microsoft Ignite 2024: Das sind unsere Highlights

Auf der Ignite kündigt Microsoft wegweisende Neuerungen an. 2024 waren KI und Copilot wieder beherrschende Themen, doch gab es auch weitere spannende Ankündigungen. Wir haben die wichtigsten Updates inkl. Vorteile für Sie zusammengefasst!

Panoramaansicht auf das Bürogebäude von Gustav Hensel
Referenz

Hensel: Modernes und sicheres Mobile Device Management

Modernes Mobile Device Management stellt Unternehmen vor Herausforderungen. Gustav Hensel ist auf Microsoft Intune umgestiegen und profitiert nun von einer Entlastung der IT, Kostenersparnis und verbessertem Datenschutz.

Hands of man using online virtual app on mobile phone. Millennial guy chatting on smartphone, using banking services, reading text message, typing, shopping, making call, browsing internet. Close up
Blog 30.06.15

Dateizugriffsrechte verwalten mit Microsoft RMS – Teil 1

Diese Artikelserie befasst sich mit der Einrichtung und Verwendung der Rights Management Services (RMS) von Microsoft, die eine sichere Verschlüsselung von Dateien bieten.

Closeup of woman finger touching on mobile phone screen. Asian woman using smartphone while sitting at table with laptop computer at home office, online shopping, mobile banking, internet payment
Offering

Aufbau einer Endpoint Management Strategie

Endpunkte sind Kern des Modern Workplace und stellen den Ausgangspunkt für Zusammenarbeit und Integration in die IT-Infrastruktur dar. Um das Beste herauszuholen, ist ein ganzheitliches Endpoint Management essenziell.

Eine Angestellte lädt auf ihrem Handy die Microsoft Teams App für digitale Zusammenarbeit herunter.
Technologie

Microsoft Teams

Finden Sie heraus, wie Sie Teams in Ihrem Unternehmen für bessere Produktivität, Kollaboration und als Digital Workplace nutzen können.

Anwendungsbeispiel Power Platform Power App Workplace Booking
Blog 16.12.22

Power App für das hybride Büro

novaCapta berät nicht nur ihre Kunden zur Power Plattform, sondern nutzt die low-code/no-code Plattform auch für eigene Zwecke. Zum Beispiel um den Arbeitsalltag der Kolleg*innen zu vereinfachen und eine moderne Arbeitsumgebung zu schaffen.

Zwei Frauen schauen gemeinsam auf einen Bildschirm
Blog 27.11.18

Tipps und Tricks mit Entity Framework

In diesem Blogbeitrag möchte ich einige Tipps und Tricks rund um Entity Framework mit euch teilen. In allen Beispielen gehen wir vom Code-First Ansatz aus.

Hands of man using online virtual app on mobile phone. Millennial guy chatting on smartphone, using banking services, reading text message, typing, shopping, making call, browsing internet. Close up
Blog 20.12.18

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.

Hands of man using online virtual app on mobile phone. Millennial guy chatting on smartphone, using banking services, reading text message, typing, shopping, making call, browsing internet. Close up
Blog 28.05.18

Struktureller Aufbau eines Angular Modules

Dieser Blogbeitrag beschäftigt sich mit dem strukturellen Aufbau eines Angular Modules und der Kommunikation der einzelnen Komponenten.

novaCapta: Ihr Partner für die digitale Transformation mit Microsoft Technologien
Blog 12.06.18

Spaltenformatierung in SharePoint: Column formatting vs. JS

Eine Gegenüberstellung der Spaltenformatierung von JSLink zu der neueren Methode Column formating in Office 365.

Hands of man using online virtual app on mobile phone. Millennial guy chatting on smartphone, using banking services, reading text message, typing, shopping, making call, browsing internet. Close up
Blog 07.06.17

Handlebars.js – Semantische Template Library

Handlebars.js ist eine Template-Engine für JavaScript. Sie ermöglicht dem Entwickler, mit Hilfe von semantischen Templates Business-Logik und HTML zu trennen.

novaCapta: Ihr Partner für die digitale Transformation mit Microsoft Technologien
Blog 30.10.19

Testen von Angular Anwendungen mit Cypress

Cypress ist ein End-to-End Testing Framework, mit dem man einfache Tests erstellen kann, die in Echtzeit ausgeführt werden. Mit Cypress kann man auch Snapshots von den einzelnen Schritten während der Testausführung sehen. Tests können schnell erstellt werden, ohne dass bestimmte Server oder Driver benötigt werden.

Hands of man using online virtual app on mobile phone. Millennial guy chatting on smartphone, using banking services, reading text message, typing, shopping, making call, browsing internet. Close up
Blog 20.02.25

GraphQL – Die Alternative zu REST

GraphQL ist eine Abfragesprache für APIs zur Ausführung von Abfragen mit Hilfe eines für die Daten definierten Typensystems. In dieser kleinen Blog-Serie schauen wir uns einfache Queries und Mutations an.

Woman Working On Laptop, Hands Only
News 22.01.25

Ab Oktober 2025: End of Support für Windows 10

Am 14. Oktober 2025 endet der Support für Windows 10. Wir erklären Ihnen, was das genau für betroffene Unternehmen bedeutet und zeigen, wie ein reibungsloses Upgrade auf Windows 11 gelingt!