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.

Hintergrundgrafik für IPG Partner Clearsky
Partner

Clear Skye

Clear Skye IGA basiert auf der Now-Plattform von ServiceNow und macht eine zusätzliche IGA-Lösung überflüssig.

News 08.06.22

Schnellere App-Entwicklung dank Mendix-Partnerschaft

Die TIMETOACT GROUP baut ihre Kompetenz rund um Low-Code durch eine Partnerschaft mit den Experten von Mendix weiter aus.

Mitarbeiterinnen der novaCapta im Büro in Hannover
Blog 16.04.24

Erfolgsfaktoren Weiterbildung & Entwicklung

Bei der novaCapta wissen wir, dass unsere Mitarbeitenden der Grundstein für unsere Erfolge sind. Dies hat uns dazu veranlasst, mehrere Initiativen zu starten.

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.

Mann arbeitet mit Holz und zeichnet an
Referenz

Hellweg: Wieder volle Handlungsfähigkeit in der Entwicklung

Erfahren Sie, wie Hellweg wieder volle Handlungsfähigkeit in der Anwendungsentwicklung auf der IBM i (AS400) dank dem Codeanalyse Tool eXplain erhalten hat!

Blog 16.05.24

Fehler in der Entwicklung von AI-Assistenten

Erfolgreiche AI-Assistenten starten mit den richtigen Learnings: Erfahren Sie, warum viele Unternehmen scheitern und wie Sie typische Fehler vermeiden – für eine optimale Umsetzung Ihrer AI-Projekte!

Vogelperspektive Laptop Tastaturen
Training_Master

Domino Datenbank Entwicklung Grundlagen

Vogelperspektive Laptop Tastaturen
Training_Anfrage

Domino Datenbank Entwicklung Grundlagen

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
Offering

Starterangebot: App Modernization

Damit Anwendungen langfristig mit den Anforderungen des Unternehmens und dessen Businessprozessen Schritt halten können, müssen sie auf dem neuesten Stand gehalten werden.

Blog 17.05.24

8 Tipps zur Entwicklung von AI-Assistenten

AI-Assistenten sind ein Hype, und viele Teams arbeiten mit Begeisterung an ihrer Umsetzung. Doch in Europa und den USA scheitern viele an dieser Herausforderung. Damit Ihnen das nicht passiert, haben

Referenz

catworkx-Erweiterung für die R4J-App

Automatisierte Erstellung von Anforderungsstrukturen für neue Jira-Projekte: Die von catworkx entwickelte Erweiterung "Project Management to R4J" (PM2R4J), ermöglicht eine automatisierte...

Male hand touching a digital tablet
Blog 28.01.25

Geschäftstransformation dank App Modernization

Der Geschäftsbetrieb kann gestört werden, wenn Applikationen den Anforderungen nicht mehr genügen. Hier kommt eine App Modernization ins Spiel, die wir an zwei konkreten Beispielen genauer erläutern!

Ein Mitarbeiter stellt aus einzelnen Papierbausteinen flexibel einen eigenen Entwurf zusammen.
Workshop

Workshop: App in a Day

Bei "App in a Day" nehmen wir Sie mit zur Microsoft Power Platform. Tauchen Sie ein in die Welt von Microsoft Power Apps und Power Automate, ganz ohne Programmierkenntnisse – Sie loggen sich ein, wir liefern den Rest.

Office life. Group of young multiracial people sitting at the table in coworking space and working together, using modern technologies and discussing project
Produkt

novaCapta Office Booking App​

Shared-Desk-Konzept? Co-Working-Räumlichkeiten? Unsere Lösung für offene Arbeitsplatzmodelle: Ein digitales Buchungssystem für Arbeitsplätze auf der Grundlage von Microsoft Cloud Services.

Blog

Responsible AI: Ein Leitfaden für ethische KI-Entwicklung

Responsible AI ist ein entscheidendes Gebot bei der Entwicklung und dem Einsatz von KI-Technologien. Alles, was du dazu wissen musst, findest du hier!

Service 12.09.22

App Development von catworkx - individuell & marktfähig

App Development von catworkx: Maßgeschneiderte Atlassian-Apps, Workflow-Automationen & Integrationen. Von Interfaces bis Makros – individuell, robust & marktfähig.

Event

Transform Legacy: Der Weg zur modernen App-Landschaft

In unserem Webinar erfahren Sie, wie die Transformation von Altsystemen in eine zukunftsweisende Applikationslandschaft gelingt.

Focused at work. Side view of young busy employees working on computers while sitting at desk in modern open space
Produkt

novaCapta Design Editor für App Design

Ihre Apps. Ihr Design. Erstellen Sie mit dem novaCapta Design Editor benutzerdefinierte Vorlagen, um Ihre Canvas Apps schnell und einfach an Ihren Markenauftritt anzupassen.

Foto einer Frauenhand die ein Smartphone benutzt mit einem Straßenhintergrund mit einer Grafik eines Navigationspunktes.
Produkt

novaCapta Compass App für Microsoft Teams

Microsoft Teams ist das perfekte Werkzeug für die digitale Zusammenarbeit. Allerdings verliert man schnell den Überblick. Mit der Compass App ist eine strukturierte Navigation in Teams möglich.

Event

Webcast: Cloud Transformation & "run your App"

Lernen Sie mit Jochen Schneider die Cloud 1.0 (Cloud 1.0 (Lift&Shift), Cloud 2.0 (Microservices, Big Data) und Cloud 3.0 (Multi Cloud Management, Big Compute) kennen.

Bleiben Sie mit dem TIMETOACT GROUP Newsletter auf dem Laufenden!