Laden...

[Xamarin] Einstieg, Best practices, Erfahrungswerte gesucht!

Erstellt von Renão vor 7 Jahren Letzter Beitrag vor 7 Jahren 4.073 Views
R
Renão Themenstarter:in
9 Beiträge seit 2017
vor 7 Jahren
[Xamarin] Einstieg, Best practices, Erfahrungswerte gesucht!

Hallo zusammen,

ich habe mich bereits etwas über die Xamarin-Dokumentation in die Arbeitsweise und das Xamarin-Framework eingelesen.

Wie üblich bei Problemen, habe ich die Suchmaschine des Öfteren nutzen müssen und bin dabei leider immer wieder über "das unterstützt Xamarin noch nicht vollständig" oder "das funktioniert mit VS nicht, benutze daher lieber ..." gestolpert.

Leider machen genau solche Probleme immer wieder den Einstieg in Xamarin bei mir schwerfällig und bisweilen habe ich eher das Gefühl gehabt eher gegen das Tooling zu kämpfen oder mich erstmal über die Vor- und Nachteile von XAML Layouts schlau zu machen oder herauszufinden was aktuell "in der Community Standard ist".

Daher würde es mich sehr freuen, wenn ihr über gute Erfahrungswerte oder Informationsquellen verfügt, dass ihr die ggf. mit mir/uns teilt.

Bisher haben mich die Hürden aber nicht davon abgehalten, mir immer mehr zu Xamarin anzusehen und einzusteigen, nur habe ich das Gefühl, irgendwie nicht wirklich weiter zu kommen ...

16.834 Beiträge seit 2008
vor 7 Jahren

Ich bin persönlich kein wirklicher Fan von Xamarin, was daran liegt, dass ich aktuell das Konzept von NativeScript mit Abstand das beste finde. Cordova sehe ich ebenfalls vorn.
NativeScript baut auf TypeScript und Angular, wozu es riesige Ressourcen im Web gibt und eben auch schon enormes Wissen, das entsprechende Web-Entwickler eh schon haben. Die Hürde ist hier am geringsten.

In der Community an für sich wirst Du keinen wirklichen Standard finden.
Cordova ist mit Sicherheit die am meisten verbreitete x-plat Plattform für Apps; mit dem riesigen Vorteil, dass Du den Code von auch via Electron Apps direkt auch als Desktop-Anwendungen und im Web nutzen kannst.
Die Wiederverwendbarkeit hier ist am höchsten. Definitiv.

Bei Xamarin kannst Du den Code selbst ebenfalls auf Desktop und Web teilen; die UI aber nicht.
Xamarin XAML unterscheidet sich von WPF XAML und kann nicht wiederverwendet werden.

Apps in der jeweils nativen Sprache sind aber mit Sicherheit am meisten verbreitet.
Wenn ich heute ein App starten würde, dann wohl mit NativeScript.

T
2.224 Beiträge seit 2008
vor 7 Jahren

@Abt
Kannte NativeScript noch nicht.
Hab es mal an meinen Team Leiter weitergeleitet.
Wir entwickeln aktuell mit Xamarin unsere iOS Anwendung für iPads.
Vielleicht ist es für neue Projekte zugebrauchen.

T-Virus

Developer, Developer, Developer, Developer....

99 little bugs in the code, 99 little bugs. Take one down, patch it around, 117 little bugs in the code.

M
177 Beiträge seit 2009
vor 7 Jahren

Mich würde vor allem interessieren wie es mit Xamarin (d.h. ich mach die UI für jede Platform eigens) vs Xamarin.Forms aussieht?

Bei den Meetups trifft man immer wieder die zwei Lager Xamarin.Forms sei zu Buggy vs Xamarin.Forms ist bereits "ready".

Bin gerade selber am austesten von XF bei einem Projekt und werde dann berichten falls was gröberes aufgefallen ist.

16.834 Beiträge seit 2008
vor 7 Jahren

Kommt halt drauf an, was Du tun willst.
Xamarin.Forms ist für gewisse Dinge schon ready; musst halt bedenken, dass nur der kleinste gemeinsame Nenner der unterstützten Plattformen angeboten wird.
Willst Du Dinge nutzen, die eine Plattform spezifisch hat, dann brauchst Du wieder Zusatzcode in der jeweiligen Native-Sprache.

4.939 Beiträge seit 2008
vor 7 Jahren

'Native-Sprache' ist nicht ganz richtig, es reicht mittels C# die entsprechenden APIs anzusprechen (hauptsächlich nötig für plattformspezifisches Rendering).
In der vorherigen Version von Xamarin.Forms gab es noch einige Probleme z.B. bei der Performance vom ListView, aber die aktuelle Version ist stabil.

Wenn du jeweils die neuesten Features der Plattformen nutzen willst, dann bist du sicherlich mit nativem Zugriff besser dran, da es immer eine gewisse Zeit dauert, bis dies dann in XF (oder generell in Xamarin) integriert ist (aber du bist auch generell dann darauf angewiesen jeweils das neueste iOS oder Android SDK zu installieren).

R
Renão Themenstarter:in
9 Beiträge seit 2017
vor 7 Jahren

NativeScript hört sich ganz nett an, auch wenn ich dahingehend wohl eher React Native bevorzugen würde, da ich ein wenig von der Sprunghaftigkeit des Angular-Frameworks abgeschreckt wurde - und irgendwie wollen mir aber diese Lösungen mit den Web-Technologien nicht wirklich gefallen, auch wenn die CSS-Bibliotheken natürlich immer besser werden. Aber letztendlich bleiben es am Ende nur Immitate der nativen Elemente, was bei einem neuen OS-Design direkt wieder ein Update benötigt.

Ich persönlich hätte kein Problem damit, für die einzelnen Plattformen eigene Views zu coden. Ich glaube dieses "eine zentrale View für alle Plattformen", funktioniert leider ziemlich schnell nicht mehr, wenn es mal nicht darum geht, nur ein paar einfache ListViews und mehr als eine CRUD-Anwendung zu stricken.

Dementsprechend interepretiere ich jetzt mal aus eurer Diskussion, dass Xamarin.Forms eher den Eindruck macht, eine Notlösung der Xamarin-Entwickler zu sein, um sagen zu können, dass das Framework auch "visuell Multiplattform" ist? Also sollte ich lieber darauf bauen, dass ich im Xamarin-Kontext möglichst nur meine Views- und Service-Klassen (bspw. für den Zugriff auf das Dateisystem) in den plattformspezifischen Projekten entwickle und diese über ein Interface(?) an meine 'globale' Anwendung anbinde? Habt ihr schon Erfahrungen mit IoC-Frameworks innerhalb von Xamarin gemacht und würdet ihr welche empfehlen?

Leider komme ich im Moment privat viel zu selten zum Coden, aber ich hoffe über eure Tipps die Zeit dafür dann aber sinnvoll nutzen zu können. Leider finde ich aktuell alles und nichts zu den Themen via Suchmaschine, daher vertraue ich da sehr auf eure Erfahrungswerte.

16.834 Beiträge seit 2008
vor 7 Jahren

Wenn man Angular vorwirft, dass es Sprunghaftig ist, dann muss man als Entwickler aber halt auch wissen, was ein Release Candidate ist und dass es laut Google Regeln hier durchaus noch Breaking Changes geben kann.
Wenn man da zu früh aufs Pferd gesetzt hat muss man halt auch damit leben können...

Xamarin.Forms ist sicherlich keine Notlösung; weiß auch nicht, wie man darauf schließen kann.
Es ist einfach noch recht jung, aber hat durchaus seine Anwendungsfälle und ist gerade auch das Feature mit dem größten Invest der Entwickler (einfach mal bisschen schauen, was Xamarin so auf GitHub treibt....).

Deine restlichen Fragen; da bitte ich Dich darum, einfach Dir ein wenig Grundlagen zu schaffen. Das können wir Dir nicht abnehmen.
Xamarin Resources - Microsoft Virtual Academy

M
177 Beiträge seit 2009
vor 7 Jahren

Dementsprechend interepretiere ich jetzt mal aus eurer Diskussion, dass Xamarin.Forms eher den Eindruck macht, eine Notlösung der Xamarin-Entwickler zu sein, um sagen zu können, dass das Framework auch "visuell Multiplattform" ist? Also sollte ich lieber darauf bauen, dass ich im Xamarin-Kontext möglichst nur meine Views- und Service-Klassen (bspw. für den Zugriff auf das Dateisystem) in den plattformspezifischen Projekten entwickle und diese über ein Interface(?) an meine 'globale' Anwendung anbinde? Habt ihr schon Erfahrungen mit IoC-Frameworks innerhalb von Xamarin gemacht und würdet ihr welche empfehlen?

Ich würde unabhängig davon ob du jetzt Xamarin oder Xamarin.Forms verwendest eine möglichst Platform unabhängige Architektur anstreben.

Ich handhabe das so, dass Model, ViewModels und Services inkl. vorhandener Interfaces in separaten PCL Projekten definiert sind.

Services die Platform spezifisch Abhängigkeiten haben, werden im jeweiligen Projekt (Droid, iOS, Wpf, UWP) implementiert.

Mithilfe von Prism und Unity kann ich dann sagen, woher die ViewModels kommen und welche Services hinter welchem Interface liegen.

Das ganze habe ich schon für WPF und UWP gemacht. Das heißt das WPF und UWP Projekt verwendet die gleichen Models, ViewModels und Service Schnittstellen. Wenn notwendig wird der Service im WPF oder UWP Projekt umgesetzt. Jetzt erfolgt die Umsetzung für Xamarin.Forms

16.834 Beiträge seit 2008
vor 7 Jahren

Bezüglich WPF XAML und Xamarin XAML gabs die letzte Zeit in der Community ein paar Gerüchte... die nun wohl eintreten.
Miguel, der Kopf hinter Xamarin, forciert wohl das XAML einheitlich zu machen:

https://twitter.com/migueldeicaza/status/827220707465654272

I am looking for a vendor that can help us build a WPF backend for Xamarin.Forms and help us add desktop APIs, suggestions?

286 Beiträge seit 2011
vor 7 Jahren

Wie schon die Vorredner gesagt haben:
Xamarin ist noch in der Entwicklung, da kann immer viel passieren.
Vor knapp einem halben Jahr hat ein Bug inner neuen Version z.B. mal meine iOS-App abgeschossen, da es es ein Problem mit SSL-Zertifikaten und WCF gab. Generell WCF ist ein bisschen hakelig, wenn man es denn nutzen möchte. Da musst du mit einer SLsvc-generierten (Silverlight) Proxy arbeiten und hast dementsprechende Einschränkungen. Und nach meinem letzten Stand ist in diesem Fall bei SSL nur Transport- und keine Message-Security möglich.

Ansonsten bin ich eigentlich ziemlich zufrieden damit (benutze Xamarin.iOS und .Android), allerdings arbeite ich da mit Xamarin Studio am Mac und nicht Visual Studio da die Umsetzung des Builthosts mich nervt.

2+2=5( (für extrem große Werte von 2)

16.834 Beiträge seit 2008
vor 7 Jahren

Naja.. also Xamarin ist nicht wirklich noch in der Entwicklung, sondern wie jedes andere aktive Produkt in der Weiterentwicklung.
Xamarin hat schon vor Jahren, vielen vielen Jahren den Beta-Zustand verlassen....

Mit Produkten wie HockeyApp / Visual Studio Mobile Center, die zu einer gestandenen CI-Pipeline gehören, braucht man keinen Mac-Host mehr.

Xamarin steht nur aktuell im Umbruch, wie es zB. .NET Core integrieren wird, womit jeder rechnet.
Wobei die Kompatibilität durch den .NET Standard schon besteht.