Wann sollte Xamarin.Forms vs Xamarin Native verwendet werden? [geschlossen]


159

Ich muss eine Entscheidung zwischen der Verwendung von Xamarin.Forms und Xamarin native treffen, um eine App zu entwickeln.

Ich möchte mit Xamarin.Forms arbeiten, da der UI-Code ebenfalls freigegeben wird.

Was sind die technischen Vor- und Nachteile der Verwendung von Xamarin.Forms über Xamarin Native?


1
Werfen Sie einen Blick auf das Gute und das Schlechte von Xamarin Mobile Development für eine hervorragende Diskussion ab Januar 2017.
Oliver

1
Fazit ... Gehen Sie einfach für Native! Ich erzähle dies aufgrund meiner eigenen Erfahrung. Ich habe die Formular-App an Native neu geschrieben.
Tejasvi Hegde

2
Kommentare aus dem Jahr 2015 spiegeln nicht mehr die Realität von Xamarin Forms wider. Es hat einen langen Weg zurückgelegt und scheint nach der Reifung von .NET Core \ Standard zu explodieren.
Sean Anderson

Diese Frage muss erneut geöffnet werden. Es ist jetzt 4 Jahre alt und es gab große Entwicklungen innerhalb des Xamarin.Forms-Frameworks, um die Entwicklung von Unternehmensanwendungen zu ermöglichen.
James Mallon

Antworten:


144

Neben den auf der Xamarin-Website angezeigten Punkten sollten Sie auch Folgendes berücksichtigen:

Der Hintergrund Ihres Teams

Hat jemand in Ihrem Team bereits Erfahrung mit der nativen Codierung für Android oder iOS (mit Java oder Obj-C / Swift)? Diese Erfahrung wird in nativem Xamarin wiederverwendet, aber sie müssen eine andere Plattform zum Codieren in Formularen erlernen.

Das gleiche gilt, wenn sie nichts über iOS / Android wissen, aber etwas XAML kennen. Sicher, Xamarin.Forms unterscheiden sich von WPF / Silverlight, aber die Kenntnis von XAML hat mir sicherlich bei der Verwendung von Formularen geholfen.

Performance

Xamarin Forms weist noch einige Probleme auf, z. B. die Initialisierungszeit. Sie sollten überlegen, ob dies für Ihren Endbenutzer ein Problem darstellt. Ich würde nicht die Mühe machen, eine Weile auf eine Dashboard-App zu warten, die ich ab und zu zum Öffnen verwende, aber ich wäre wütend, wenn das Gleiche mit einer Messaging-App passiert wäre.

Zeit bis zur Lieferung

Da die Codefreigabe bei Verwendung von Formularen größer ist, können Sie eine schnellere Lieferzeit erwarten.

Komplexität Ihrer App

In Anbetracht des vorherigen Punktes können Sie bei der Verwendung von Formularen auf einen Show-Stopper-Fehler stoßen (es ist schließlich eine sehr neue Technologie), der den Zeitgewinn zunichte macht. Berücksichtigen Sie vor der Auswahl die Komplexität Ihrer Anwendung.


2
Wenn Sie eine gut aussehende App erwarten, werden Sie am Ende viele benutzerdefinierte Schnittstellen mit Xamarin Native-Code für jede Plattform haben
Roman Nazarevych

2
Diese Antwort und der Kommentar oben sind super zu alt. Leistung ist heute kein großes Problem, wenn Sie AOT aktivieren. in Bezug auf gut aussehende App im Kommentar ist auch nicht wahr. Die Xamarin-Formen wurden verbessert und Sie können problemlos gut aussehende Apps erstellen.
Batmaci

Xamarin Forms hat sich nicht wesentlich verbessert, um eine gut aussehende Benutzeroberfläche zu erhalten. Xamarin.Shell wird in dieser Hinsicht große Verbesserungen vornehmen, aber bis jetzt ist es für Xamarin immer noch schwierig, etwas aus der Ferne attraktiv zu machen, ohne benutzerdefinierte Komponenten für jede Plattform zu schreiben.
Alexander

176

Xamarin.Forms

Vorteile

  • Erstellen Sie eine Benutzeroberfläche für alle Plattformen
  • Verwenden Sie grundlegende Komponenten, die auf allen Plattformen verfügbar sind (wie Schaltflächen, Textfelder, Spinner usw.).
  • Sie müssen nicht alle nativen UI-Frameworks lernen
  • Schneller plattformübergreifender Entwicklungsprozess
  • Mit benutzerdefinierten nativen Renderern können Sie das Erscheinungsbild und das Gefühl von Steuerelementen anpassen

Nachteile

  • Es ist immer noch ein neues Framework und enthält immer noch Fehler
  • Insbesondere Windows RT ist noch nicht stabil
  • Es ist manchmal langsamer als der direkte Zugriff auf die nativen Steuerelemente
  • Benutzerdefinierte native Renderer haben Grenzen und sind schlecht dokumentiert

Xamarin.Android, Xamarin.iOS, Windows Phone, Windows RT

Vorteile

  • Erstellen Sie eine Benutzeroberfläche pro Plattform
  • Einfache Möglichkeit, die plattformspezifischen Funktionen und Komponenten der Benutzeroberfläche anzupassen
  • Holen Sie das Maximum aus Ihrer Benutzeroberfläche heraus

Nachteile

  • Der plattformübergreifende Entwicklungsprozess ist viel langsamer
  • Sie müssen alle nativen UI-Frameworks lernen
  • Dies kann zu doppeltem Code führen (da Sie fast dieselbe Benutzeroberfläche auf drei verschiedene plattformspezifische Arten beschreiben).

Darüber hinaus sagt Xamarin auf https://xamarin.com/forms :

Welcher Xamarin-Ansatz eignet sich am besten für Ihre App?

Xamarin.Forms ist am besten geeignet für:

  • Dateneingabe-Apps
  • Prototypen und Proof-of-Concept
  • Apps, die wenig plattformspezifische Funktionen erfordern
  • Apps, bei denen die gemeinsame Nutzung von Code wichtiger ist als die benutzerdefinierte Benutzeroberfläche

Xamarin.iOS & Xamarin.Android eignen sich am besten für:

  • Apps, die spezielle Interaktionen erfordern
  • Apps mit hochglanzpoliertem Design
  • Apps, die viele plattformspezifische APIs verwenden
  • Apps, bei denen die benutzerdefinierte Benutzeroberfläche wichtiger ist als die gemeinsame Nutzung von Code

Gibt es Beispiele für "Apps, die wenig plattformspezifische Funktionen erfordern", um einen Eindruck davon zu bekommen, um welche Art von Funktionen es sich handelt?
NS.X.

Wenig Plattformfunktionalität bedeutet, dass Sie Datenbindung und andere Geschäftsregeln hauptsächlich als App ausführen. Nicht viel benutzerdefiniertes Zeichnen oder der Versuch, alles pixelgenau zu machen. Wenn Sie mit einem allgemeinen Layout, das reagiert, einverstanden sind, ist Xamarin.Forms eine gute Lösung.
Jason Short

Beste Antwort meiner Meinung nach. Dies hat es für mich geklärt: "Xamarin.Forms: Eine Benutzeroberfläche für alle Plattformen erstellen" und "Xamarin.iOS, Xamarin.Android: Eine Benutzeroberfläche pro Plattform erstellen". Vielen Dank!
Tadej

1
@Dibzmania Ich habe nie gesagt, dass es nur für Prototypen und grundlegende Apps geeignet ist. Wenn Sie eine plattformübergreifende App mit einer fast identischen Benutzeroberfläche auf jeder Plattform haben möchten, ist Xamarin.Forms großartig. Wenn Sie eine benutzerdefinierte Benutzeroberfläche pro Plattform haben möchten, werden Sie wahrscheinlich nicht von Xamarin.Forms profitieren und sollten stattdessen die nativen Benutzeroberflächenbibliotheken verwenden.
Wosi

1
Ich denke, dieser Artikel von Nathan Williams ist nützlich: arctouch.com/blog/xamarin-forms-xamarin-native
Alt-WN

44

Von der Xamarin-Website

Xamarin.Forms ist am besten geeignet für:

  • Dateneingabe-Apps
  • Prototypen und Proof-of-Concept
  • Apps, die wenig plattformspezifische Funktionen erfordern
  • Apps, bei denen die gemeinsame Nutzung von Code wichtiger ist als die benutzerdefinierte Benutzeroberfläche

Xamarin.iOS & Xamarin.Android eignen sich am besten für:

  • Apps, die spezielle Interaktionen erfordern

  • Apps mit hochglanzpoliertem Design

  • Apps, die viele plattformspezifische APIs verwenden

  • Apps, bei denen die benutzerdefinierte Benutzeroberfläche wichtiger ist als die gemeinsame Nutzung von Code


1
Diese Antwort ist abgestanden / alt. Verwenden Sie Formulare mit Prisma. Angenehme Erfahrung. Ich bin ein einzelner Entwickler, der eine riesige App erstellt. Ich bin sehr produktiv und meine App funktioniert einfach mit allem. Wenn Sie umwerfend aussehende Apps wünschen, gibt es verschiedene Ansichten von Drittanbietern wie das Grial UI Kit (sehen Sie sich den kostenlosen XAML Live-Previewer an). Denken Sie daran, dass Xamarin Forms standardmäßig weiterhin die nativen Steuerelemente verwendet.
Sean Anderson
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.