Thomas Bandt

Über mich | Kontakt | Archiv

Xamarin - Die erwachsene Alternative zur nativen Entwicklung für iOS und Android

Wer einmal in die Verlegenheit kommt eine App für mehrere Plattformen zu entwickeln, namentlich für iOS, Android und in ganz schrägen Fällen vielleicht auch noch Windows Phone, der wird sich allein aus wirtschaftlichen Erwägungen heraus als erstes darüber Gedanken machen, ob es zur nativen Mehrfachentwicklung nicht auch Alternativen gibt.

Denn es sind nicht nur verschiedene Programmiersprachen (Java, C#, Objective-C) die gelernt und gekonnt sein wollen, sondern auch im Detail durchaus verschiedene Frameworks und APIs, die sich alle rasant weiterentwickeln (Apple veröffentlicht nicht nur jedes Jahr neue Hardware, sondern auch neue Betriebssystem-Updates. Und auch bei Google werden die Codenamen aus der Süßigkeiten-Welt langsam knapp.)

Für wen dann HTML5 und JavaScript herausfallen, weil er etwa Wert auf ein natives Nutzungserlebnis, Performance und vernünftige Entwicklungswerkzeuge legt, für den wird der Weg früher oder später zu Xamarin führen.

Die Geschichte ist kurz erzählt: eine Sprache, und mit C# auch noch die beste und modernste der drei Kandidaten. Dazu alle Plattformen.

An der Abstraktion der APIs arbeitet man ebenfalls, Xamarin.Mobile und gerüchteweise andere Werkzeuge sind in Arbeit. Aber selbst wenn man Letzteres für Kokolores hält (ich neige dazu), so bleibt der Luxus, eine Programmiersprache für alle Plattformen verwenden zu können, und mit ihr auch einen erheblichen Teil des eigenen Codes nur einmal schreiben zu müssen.

Bei der iPhone-App von Whatstays, an der ich unter anderem mehrere Monate gearbeitet habe, steckt beispielsweise dank voller Offline-Funktionalität mit Synchronisation aller Daten (inklusive Fotos, Kommentaren etc.) in beide Richtungen einiges an Logik und damit auch Code "unter der Haube".

Gerade haben wir die Umsetzung der Android-App gestartet und sind mehr als nur froh, diese Arbeit nicht noch einmal ausführen zu müssen. Denn wir können tatsächlich fast alles, was sich unterhalb der Oberfläche abspielt, komplett für iOS und Android teilen. Das .NET Framework bzw. Mono als Grundlage von Xamarin.iOS und Xamarin.Android machen es möglich.

Manche Dinge wie etwa die Manipulation von Bildern sind leider nicht cross-platform entwickelbar, primär weil bestimmte .NET-Bibliotheken nicht mit dem Ahead-of-time-Compiler von Xamarin.iOS kompatibel sind und andere nicht vollständig implementiert sind (System.Drawing wäre so ein Kandidat.)

Diese machen aber einen geringen Teil aus. Und selbst hier ist es nicht schlimm, da man die jeweils meist sehr mächtigen nativen Framework-Funktionen von iOS und Android verwenden kann. Natürlich in C#.

Last but not least bleibt zu sagen, dass Xamarin ein kommerzielles Unternehmen ist und auch so handelt. Das Preismodell halte ich für gewagt, zumal die Lizenzen aufgrund der genannten rasanten Entwicklung jährlich fällig werden - man kann, um am Ball zu bleiben, schlicht nicht auf Updates verzichten. 2.000 Dollar pro Arbeitsplatz und iOS- und Android-Lizenz sind zumindest aus meiner Sicht keine Kleinigkeit.

Die preislich moderate Indie-Lizenz und 90% Rabatt auf die Business-Lizenzen für Studenten sind jedoch ganz nett.

Nach zwei Finanzierungsrunden und diversen Ankündigungen zu Partnerschaften mit Salesforce und SAP muss man kein besonderer Insider sein, um zwei Dinge zu sehen: die Fokussierung auf Enterprise-Entwickler und die Wette auf einen guten Exit nach kauf durch Microsoft.

Was für alle drei Seiten (Xamarin + VCs, Microsoft und Entwickler) kein schlechtes Geschäft wäre.



« Zurück  |  Weiter »