Home / Entwicklung / Ent­wick­lung mit Xama­rin
Ent­wick­lung mit Xama­rin

Ent­wick­lung mit Xama­rin

In der App-Ent­wick­lung besteht eine gro­ße Her­aus­for­de­rung dar­in, mobi­le Appli­ka­tio­nen für ver­schie­de­ne Platt­for­men kos­ten­ef­fi­zi­ent zu ent­wi­ckeln. Mit Xama­rin besteht die­se Mög­lich­keit und wir erklä­ren in die­sem Arti­kel die wesent­li­chen Fak­to­ren.

Was ist Xama­rin?

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 Objective‑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.

Argu­men­te für Xama­rin

  • 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

Argu­men­te gegen Xama­rin

  • 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 Ein­satz von Xama­rin für mobi­le Appli­ka­tio­nen

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.