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.