Home / Entwicklung / Entwicklung mit Xamarin
Entwicklung mit Xamarin

Entwicklung mit Xamarin

In der App-Entwicklung besteht eine große Herausforderung darin, mobile Applikationen für verschiedene Plattformen kosteneffizient zu entwickeln. Mit Xamarin besteht diese Möglichkeit und wir erklären in diesem Artikel die wesentlichen Faktoren.

Was ist Xamarin?

Xama­rin ist eine Lauf­zeit­um­ge­bung, wel­che es ermög­licht C#-Code für nati­ve Apps unter iOS, Andro­id und Win­dows ein­zu­set­zen. Mitt­ler­wei­le wur­de die Fir­ma hin­ter Xama­rin von Micro­soft auf­ge­kauft, was eine noch bes­se­re Inte­gra­ti­on von Xama­rin in Visu­al Stu­dio erwar­ten lässt und die lang­fris­ti­ge Wei­ter­ent­wick­lung sicher­stel­len soll­te.

War­um ist der Ein­satz von Xama­rin sinn­voll?

Wenn eine App auf meh­re­ren Betriebs­sys­te­men genutzt wer­den und aus Usa­bi­li­ty- und/oder Per­for­mance-Grün­den nativ umge­setzt wer­den soll, hat dies bei klas­sisch-nati­ver Umset­zung in Objec­tive-C für iOS, Java für Andro­id und C# für Win­dows einen sehr gro­ßen Umset­zungs­auf­wand zur Fol­ge. Kennt­nis­se über die ver­schie­de­nen Pro­gram­mier­spra­chen, Ent­wick­lungs­tools und Betriebs­sys­te­me sind sel­ten in einer ein­zel­nen Per­son ver­eint und so müs­sen Exper­ten für die unter­schied­li­chen Platt­for­men jeweils die Busi­ness­lo­gik, das Inter­face und die Con­nec­tivi­täts­schicht für jede Platt­form imple­men­tie­ren. Die­se Form der Cross-Platt­form-Ent­wick­lung ist rela­tiv kos­ten­in­ten­siv und kom­pli­ziert, da die Pro­blem­stel­lun­gen für die ein­zel­nen Platt­for­men sehr unter­schied­lich sein kön­nen.

Einen ande­ren Ansatz ver­folg hier Xama­rin: Bestehend aus Ent­wick­lungs­tools und einem Frame­work wer­den die nati­ven APIs von Andro­id und iOS zu fast 100% als NET APIs zur Ver­fü­gung gestellt. Die Ent­wick­lung der nati­ven Apps für alle 3 Platt­for­men erfolgt somit in Visu­al Stu­dio (bzw. Xama­rin Stu­dio) und C#, was es ermög­licht, vie­le Code­be­stand­tei­le für alle Platt­for­men zu nut­zen und damit die auf­wän­di­ge und feh­ler­an­fäl­li­ge Neu­im­ple­men­tie­rung für jede Platt­form zu umge­hen. Wich­tig ist hier­bei, dass indi­vi­du­el­le UI-Ele­men­te und Auf­lö­sun­gen wei­ter­hin für jede Platt­form erstellt wer­den kön­nen – dies erhöht zwar den Auf­wand, sorgt aber für eine nati­ve und platt­form­ge­rech­te Usa­bi­li­ty für die App. Als Alter­na­ti­ve kann Xama­rin Forms ein­ge­setzt wer­den.

Argumente für Xamarin

  • Effi­zi­en­te Ent­wick­lung von Cross-Plat­form-Apps
  • Busi­ness­lo­gik kann kom­plett als Sha­red-Code aus­ge­legt wer­den
  • Gute Unter­stüt­zung für Visu­al Stu­dio
  • Aktu­ell schnells­te Cross-Plat­form-Lösung

Argumente gegen Xamarin

  • Abhän­gig­keit von Xama­rin bei Neue­run­gen der APIs und Sicher­heits­lü­cken
  • Kei­ne 100%ige Kon­trol­le über den nati­ven Code. Dies kann in bestimm­ten Fäl­len etwas Per­for­mance kos­ten
  • Auf­grund der Zusatz­schicht durch die Lauf­zeit­um­ge­bung bei extrem Per­fo­mance-abhän­gi­gen Tasks lang­sa­mer als eine nati­ve Imple­men­tie­rung

Fazit zum Einsatz von Xamarin für mobile Applikationen

Für die meis­ten Apps, die auf meh­re­ren Platt­for­men lauf­fä­hig sein sol­len, bie­tet Xama­rin die rich­ti­ge Platt­form. Eher unge­eig­net ist Xama­rin bei Apps, bei denen über 80% der Ent­wick­lungs­auf­wän­de für das User Inter­face benö­tigt wer­den, da das User Inter­face meist auch in Xama­rin Platt­form-indi­vi­du­ell erstellt wer­den muss. Xama­rin Forms bie­tet nur für Apps, die aus den Stan­dard­ele­men­ten der jewei­li­gen Platt­form bestehen, eine gute Lösung.

Wir ent­wi­ckeln mitt­ler­wei­le einen Groß­teil der Apps für meh­re­re Platt­for­men mit Xama­rin, da dies in 90% der durch uns ent­wi­ckel­ten Apps von Vor­teil ist und für unse­re Kun­den meist mas­si­ve Ein­spa­run­gen an Ent­wick­lungs­zeit und Bud­get bedeu­tet.