Mobile Apps entwickeln mit xamarin oder nativ?

... komplette Frage anzeigen

1 Antwort

Ob es sich lohnt mit Xamarin und C# (oder VB.net oder F# und die vielzahl an "inoffiziellen" sprachen welche ebenfalls zu .NET bytecode kompillieren, beispielsweise Clojure über ClojureCLR) apps zu entwickeln kann man pauschal nicht sagen da dies von einer vielzahl an Faktoren abhängt. Einer dieser Faktoren ist beispielsweise der Kostenfaktor, der je nach der eigenen finanziellen Situation, ein ganz klarer Prohibitivfaktor sein kann. Wenn die Kosten nicht die Hauptrolle spielen so muss man ebenfalls in betracht ziehen, das man trotz Xamarin, es sei denn man verwendet Xamarin.Forms, dennoch platform spezifischen code schreiben muss, beispielsweise für die UI, und das für jede Platform für die man die App entwickelt. Selbst wenn man sich entschließt Xamarin.Forms zu verwenden sollte man, wenn man möchte das die eigene App anklang findet, dennoch platform spezifischen UI code schreiben da im Grunde jede relevante mobile platform ihre eigenen UI Paradigmen hat welche ein potenzieller Benutzer jener App von der App erwartet. Ein weiterer Faktor welcher für Xamarin und C# sprechen würde währe eine eventuelle "Sprachfäulle", d.H. Man will oder kann nicht die Zeit aufwenden um für jede Platform die Vorherrschende und "Vorgeschriebene" Sprache zu lernen. welche z.B. für IOS Objective-C und/oder Swift, für Android Java und für Windows Phone C# währe. Abhängig von den Platformen für die man entwickeln möchte ist die jedoch meiner Ansicht nach kein entscheidender Punkt da z.B. Java C# sehr ähnlich ist (was sich aus der Historie von C# ergiebt, welche, soweit ich mich recht erinnere, früher als eine proprietäre Java implementierung seitens Microsoft namens J++ begann, dann eingestellt und durch J++ ersetzt wurde, was dann durch C# 1.0 ersetzt wurde). Allgemein ist es nicht soo schwer eine andere Programmiersprache zu lernen wenn man schon eine beherrscht (und mit beherrschen meine ich nicht einfach nur können sondern vollständig alle features beherrschen zu können), vorrausgesetzt die Sprache die man lernen möchte verwendet das selbe Paradigma wie die Sprache mit der man schon vertraut ist, was bei Java und C# durch die gegenseitige verwendung des objektorientierten Paradigmas gegeben ist. Solltest du jedoch, sagen wir mal, clojure lernen wollen ohne mit dem funktionalem Paradigma vertraut zu sein wirst du erheblichere Probleme haben als jetzt mit C# Kentnissen Java zu lernen da dies im Grunde, jedenfalls auf einem idiologischem Niveau, im Grunde nur eine Syntax transformation ist. Glücklicherweise sind alle prävalenten Sprachen welche von den relevanten mobilen Platformen verwendet werde Objektorientiert was bedeutet das man sein Wissen über Objektorientierung größtenteils 1:1 anwenden kann was einen Umstieg auf diese Sprache immens erleichtert, ja fast schon trivial macht. Meiner Ansicht nach ist die größte Hürde beim schreiben von cross-platform apps jedoch nicht die sprachbarriere sondern das erlenen und behersschen der jeweiligen APIs. Eine Sprache ist schnell gelernt, manchmal in einer kurzen Zeit schon gemeistert aber das lernen der jeweiligen APIs dauert im Vergleich dazu ewigkeiten. Und hier komme ich nun zum springenden Punkt: Xamarin wird dir, meines Wissens nach, das erlenen der platform spezifischen APIs nicht ersparen weshalb ich dir definitiv zu nativen apps rate. Der einzige positive Aspekt welchen ich Xamarin abgewinnen kann ist das man die core-logic in einer einzigen Sprache auf allen Platformen verwenden kann, jedoch ist dies auch gegeben wenn man die core-logic in C++ schreibt welches kostenlos auf allen Platformen zur verfügung steht

Antwort bewerten Vielen Dank für Deine Bewertung

Was möchtest Du wissen?