Cross-Plattform App-Entwicklung mit Xamarin

Eine professionelle Homepage ist heute kein Luxus mehr – sondern eine Notwendigkeit. Aber eine eigene App, die Sie an Ihre Kunden verteilen können? Stellen Sie sich vor, Sie sind ständig auf dem Smartphone Ihrer Kunden anwesend und haben die Möglichkeit, mit Ihren Kunden durch aktuelle Inhalte oder Push-Nachrichten in Kontakt zu bleiben.

Unmöglich? Unbezahlbar? Keineswegs!

Wir arbeiten an einer wirtschaftlichen Lösung, die Ihre Homepage und die eigene App verbindet.

Doch der Reihe nach:

Die Entwicklungen im Bereich mobiler Endgeräte schreiten rasant voran.

Ich denke, dass wir hier derzeit eine Revolution erleben, deren Ende und Ausmass noch nicht absehbar sind. Sowohl im Hardware-Bereich sind die Entwicklungen schwindelerregend, als auch im Bereich der Anwendungen (Apps), die auf den kleinen Geräten laufen. Wer nicht von der Entwicklung fasziniert ist, der hebe die Hand…

Giganten im Bereich mobiler Kommunikation (Nokia, BlackBerry) sind so gut wie von der Bildfläche verschwunden, weil sie die Entwicklung schlicht verschlafen haben. Während Apple’s iPhone lange Zeit die visionären Maßstäbe gesetzt hat, versucht Google mit seinem Android-Betriebssystem Boden wieder gutzumachen. So gut wie alle anderen Hersteller mobiler Geräte lizenzieren Android, mit Ausnahme von Microsoft, das versucht mit Windows Phone Marktanteile zu erringen – mit bescheidenem Erfolg bislang.

Die Hersteller der mobilen Betriebssysteme setzen jeweils auf eigene Sprachen und Frameworks für die Entwicklung von Apps:

  • Apple: iOS / Sprache: Objective-C (seit 2014: Swift)
  • Google: Android / Sprache: Java
  • Microsoft: Windows Phone / Sprache: C# (.NET)

Für eine App, die auf allen drei Plattformen angeboten werden soll bedeutete diese Vielfalt an Sprachen und Frameworks einen sehr hohen Entwicklungsaufwand und entsprechend hohe Kosten. Kaum ein Entwickler ist in allen drei Sprachen und Frameworks „zuhause“, so dass ein App-Projekt oft in drei völlig separate Einzelprojekte mit unterschiedlichen Entwicklerteams aufgeteilt wird. Was dies für die Weiterentwicklung und Pflege bedeutet ist leicht vorstellbar.

Cross-Platform Entwicklung mit Xamarin und .NET/C#

Eine Lösung für das Problem kommt von der 2011 gegründeten Firma Xamarin, der Software-Schmiede rund um den Entwickler der freien, plattformunabhängigen Implementierung des .NET-Frameworks, Miguel de IcazaXamarin ermöglicht mit seinem Toolset die Entwicklung von Apps für alle drei Plattformen, wobei die Codierung  einheitlich in C# und mit Hilfe der mobilen Variante des .NET Frameworks erfolgt. Xamarin hat in den letzten vier Jahren eine rasante Entwicklung genommen. Während der anfängliche Ansatz, das GUI mit den nativen Tools (Apple’s Xcode Interface Builder, Java’s…? ) zu erstellen und die Logik der App in C# zu implementieren, durchaus funktionierte, war dadurch der Anteil des plattformübergreifend nutzbaren Codes nicht so gross wie man sich das gewünscht hatte. Mit Xamarin Forms wird nun der konsequente nächste Schritt gegangen. Die Codierung der Benutzeroberfläche erfolgt nun plattformübergreifend in direkt in C# oder mit XAML und man erreicht nun einen Code-Reuse-Faktor von ca. 90%.

Mit anderen Worten: Diese Technologie ermöglicht es, 90% des Codes einer App genau einmal zu schreiben und auf allen drei App-Plattformen zu verwenden. Nur 10% des Codes einer App sind damit plattformspezifisch. Das ist effiziente App-Entwicklung. 

Mittlerweile hat Xamarin die stolze Zahl von einer Million aktiver Xamarin-Entwickler erreicht, was zeigt wie dankbar die .NET-Entwicklergemeinde dafür ist, ihr Wissen bezüglich C# und des .NET-Framework auch in die mobile Welt einbringen zu können.

Aus diesem Grund sage auch ich:

Meine mobile Strategie baut auf XAMARIN. 

Ich arbeite derzeit an einer integrierten Lösung für eine kundenspezifische App, die nahtlos mit dem Internetauftritt zusammenarbeitet und die Pflege der Inhalte zu einem Kinderspiel macht. Nähere Informationen folgen im Laufe des Jahres, je nach Fortschritt der Entwicklung. Wollen Sie schon jetzt mehr erfahren? Sprechen Sie mich an!