BASTA! Countdown

Write Once, Run Anywhere: C#-Entwicklung für iOS und Android mit Xamarin
Kommentare

Einmal schreiben, auf allen Systemen zum Laufen bringen – dieser Traum beschäftigt Softwareentwickler nicht erst seit Kurzem. Einen Schritt in diese Richtung geht Xamarin, ein Thema, das auf der BASTA! 2013 von Rainer Stropek abgedeckt wird. Wir haben dem Speaker bereits im Vorfeld einige Fragen gestellt.

Windows Developer: Rainer, auf der BASTA! 2013 hältst du eine Session zum Thema Xamarin. Erkläre unseren Lesern doch einmal, was genau Xamarin ist.

Rainer Stropek: Die Firma Xamarin wurden von den Initiatoren des Mono-Projekts gegründet. Mono ist die plattformunabhängige Implementierung von C#, der CLR und des .NET Frameworks, die auch unter Linux funktioniert. Mittlerweile hat Xamarin Versionen von Mono für iPhone und Android herausgebracht. Insofern ermöglichen die Werkzeuge von Xamarin die Entwicklung mobiler Anwendungen für iOS und Android mit C# und .NET – ein großer Vorteil für Teams, die viel C#-Know-How oder bestehenden C#-Code haben und den Schritt auf die weltweit verbreitetsten mobilen Plattformen wagen wollen. Xamarin bringt uns .NET-Entwickler der Vision „Write Once, Run Anywhere“ ein Stück näher.

Windows Developer: Aus welchen einzelnen Bestandteilen setzt sich Xamarin zusammen und welche Technologien werden dadurch abgedeckt?

Rainer Stropek: Xamarin besteht aus dem C# Compiler, der plattformunabhängigen Language Runtime (Common Language Infrastructure CLI), einer plattformunabhängigen Variante der .NET Base Class Library sowie Bridges, die als Schnittstelle zu den Systemfunktionen der jeweiligen Plattform dienen. Letzteres ist aus meiner Sicht das besonders Spannende an Xamarin. Die entstehenden Anwendungen sehen genauso aus wie native Anwendungen, da man alle System-APIs von C# aus nutzen kann. Man bezahlt dafür zwar mit ein wenig Performancenachteil und etwas erhöhtem Speicherverbrauch. Dieser Nachteil wird aber speziell bei Business-Anwendungen durch Entwicklerproduktivität oft aufgewogen.

Windows Developer: Abgesehen von der größeren Reichweite, welche weiteren Vorteile haben C#-Entwickler davon, wenn sie auch für Android und iOS entwickeln können?

Rainer Stropek: Vor allem das Mitnehmen von Wissen und Erfahrung sowie die Übernahme von bestehendem Code. Man darf aber von Xamarin in dieser Hinsicht keine Wunder erwarten. Über Plattformgrenzen hinweg kann man in der Praxis nur Businesslogik-Code und manchmal auch ViewModels entwickeln, die View muss je nach Zielplattform individuell entwickelt werden. Man darf auch nicht erwarten, dass man sich nicht mit z.B. Android-Programmierung generell beschäftigen muss. Das ist auch mit Xamarin notwendig. Was wegfällt, ist die zusätzliche Hürde einer neuen Programmiersprache – also Java auf Android und Objective-C auf iOS.

Windows Developer: Lassen sich C#-Kenntnisse dank Xamarin eins zu eins auf die anderen Plattformen übertragen oder ist dennoch ein gewisses Umdenken vonnöten?

Rainer Stropek: C# lässt sich wirklich eins zu eins übertragen, nicht aber 100 Prozent der bekannten .NET API. Die Base Class Library ist nahezu vollständig vorhanden. Trotzdem gibt es plattformbedingte Einschränkungen. Apple verbietet für iOS z.B. Just in Time Compiler. Xamarin behilft sich mit einem Ahead of Time Compiler. Die Folge ist, dass z.B. Reflection.Emit unter iOS nicht unterstützt wird. Vollkommen umdenken muss man wie oben erwähnt im UI. Dafür braucht man Ahnung vom jeweiligen Device, für das man programmiert. Um das Lesen der Android-Doku von Google kommt man also auch als C# Entwickler nicht herum.

Windows Developer: Welche plattformspezifischen Eigenschaften von iOS und Android dürften Entwickler, die sich sonst vor allem im .NET-Umfeld zu Hause fühlen, am ehesten überraschen?

Rainer Stropek: Ich habe mich bisher primär mit Mono for Android auseinandergesetzt und werde in meiner BASTA Session auch darauf im Besonderen eingehen. Am interessantesten sind wahrscheinlich die Ansätze, die Google in Hinblick auf die Strukturierung des UI einer App gewählt hat. Ich werde in der Session auf Konzepte wie Activities und Intents eingehen und sie zeigen. Wer WPF oder WinForms kennt, wird kaum Vergleichbares in .NET entdecken.

Windows Developer: Vielen Dank für das Gespräch!

© Rainer Stropek

Rainer Stropek ist seit sechzehn Jahren als Unternehmer in der IT-Industrie tätig. Er gründete und führte in dieser Zeit mehrere IT-Dienstleistungsunternehmen und entwickelt im Augenblick in seiner Firma „software architects“ mit seinem Team die preisgekrönte Software time cockpit. Rainer hat Abschlüsse an der Höheren Technischen Schule für MIS, Leonding (AT) sowie der University of Derby (UK). Er ist Autor mehrerer Fachbücher und Artikel in Magazinen im Umfeld von Microsoft .NET und C#. Seine technischen Schwerpunkte sind C# und das .NET Framework, WPF/Silverlight, die Windows Azure Platform sowie SQL Server. Rainer tritt regelmäßig als Speaker und Trainer auf namhaften Konferenzen in Deutschland, Österreich, der Schweiz und den USA auf (z. B. BASTA!, SAPPHIRE, MS Big Days, MS Architecture Conference, MS TechEd, OOP, ADC, DEVCamp etc.). Seit 2010 ist Rainer MVP für Windows Azure.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -