Serie Technologie: Xamarin

23 Juni 2016  

Was ist Xamarin

Xam­arin ist eine Laufzei­tumge­bung welche es ermöglicht C# Code für native Apps unter iOS, Android und Win­dows einzuset­zen. Mit­tler­weile wurde die Fir­ma hin­ter Xam­arin von Microsoft aufgekauft was eine noch bessere Inte­gra­tion von Xam­arin in Visu­al Stu­dio erwarten lässt und die langfristige Weit­er­en­twick­lung sich­er­stellen sollte.

Warum ist der Einsatz von Xamarin sinnvoll

Wenn eine App auf mehreren Betrieb­ssys­te­men genutzt wer­den soll und aus Usabil­i­ty- und/oder Per­for­mance-Grün­den nativ umge­set­zt wer­den soll, hat dies bei klas­sis­ch­er nativ­er Umset­zung in Objec­tive-C für iOS, Java für Android und C# für Win­dows einen sehr großen Umset­zungsaufwand zur Folge. Ken­nt­nisse über die ver­schiede­nen Pro­gram­mier­sprachen, Entwick­lungstools und Betrieb­ssys­teme sind sel­ten in ein­er einzel­nen Per­son vere­int und so müssen Experten für die unter­schiedlichen Plat­tfor­men jew­eils die Busi­ness­logik, das Inter­face und die Con­nec­tiv­itätss­chicht für jede Plat­tform imple­men­tieren. Diese Form der Cross Plat­tform Entwick­lung ist rel­a­tiv kosten­in­ten­siv und kom­pliziert da die Prob­lem­stel­lun­gen für die einzel­nen Plat­tfor­men sehr unter­schiedlich sein kön­nen.
Einen anderen Ansatz ver­folg hier Xam­arin: Beste­hend aus Entwick­lungstools und einem Frame­work wer­den die nativ­en APIs von Android und iOS zu fast 100% als .NET APIs zur Ver­fü­gung gestellt. Die Entwick­lung der nativ­en Apps für alle 3 Plat­tfor­men erfol­gt somit in Visu­al Stu­dio (bzw. Xam­arin Stu­dio) und C#, was es ermöglicht viele Codebe­standteile für alle Plat­tfor­men zu nutzen und damit die aufwändi­ge und fehler­an­fäl­lige Neuim­ple­men­tierung für jede Plat­tform zu umge­hen. Wichtig ist hier­bei das indi­vidu­elle UI Ele­mente und Auflö­sun­gen weit­er­hin für jede Plat­tform erstellt wer­den kön­nen, dies erhöht zwar den Aufwand sorgt aber für eine native und plat­tfor­mgerechte Usabil­i­ty für die App. Als Alter­na­tive kann Xam­arin Forms einge­set­zt wer­den

Argumente für Xamarin

  1. Effiziente Entwick­lung von Cross­plat­tform Apps
  2. Busi­ness­logik kann kom­plett als Shared-Code aus­gelegt wer­den
  3. Gute Unter­stützung für Visu­al Stu­dio
  4. Aktuell schnell­ste Cross-Plat­tform Lösung

Argumente gegen Xamarin

  1. Abhängigkeit von Xam­arin bei Neuerun­gen der APIs und Sicher­heit­slück­en
  2. Keine 100%ige Kon­trolle über den nativ­en Code. Dies kann in bes­timmten Fällen etwas Per­for­mance Kosten
  3. Auf­grund der Zusatzschicht durch die Laufzei­tumge­bung bei extrem Per­fo­mance-Abhängi­gen Tasks langsamer als eine native Imple­men­tierung

Fazit zum Einsatz von Xamarin für mobile Applikationen

Für die meis­ten Apps, welche auf mehreren Plat­tfor­men lauf­fähig sein sollen, bietet Xam­arin die richtige Plat­tform. Eher ungeeignet ist Xam­arin bei Apps bei denen über 80% der Entwick­lungsaufwände für das User Inter­face benötigt wer­den, da das User Inter­face meist auch in Xam­arin Plat­tfor­min­di­vidu­ell erstellt wer­den muss. Xam­arin Forms bietet nur für Apps die aus den Stan­dard­ele­menten der jew­eili­gen Plat­tform beste­ht eine gute Lösung.
Wir entwick­eln mit­tler­weile einen Großteil der Apps für mehrere Plat­tfor­men mit Xam­arin, da dies in 90% der durch uns entwick­el­ten Apps von Vorteil ist und für unsere Kun­den meist mas­sive Einsparun­gen an Entwick­lungszeit und Bud­get bedeutet.
Wer sich für Xam­arin inter­essiert kann sich hier das SDK herun­ter­laden