Quand utiliser Xamarin.Forms vs Xamarin Native? [fermé]


160

Je dois prendre une décision entre l'utilisation de Xamarin.Forms et de Xamarin native pour développer une application.

Je souhaite utiliser Xamarin.Forms car le code de l'interface utilisateur sera également partagé.

Quels sont donc les avantages et les inconvénients techniques de l'utilisation de Xamarin.Forms sur Xamarin Native?


1
Jetez un œil à The Good and The Bad of Xamarin Mobile Development pour une excellente discussion à partir de janvier 2017.
Oliver

1
En bout de ligne ... Optez pour Native! Je raconte cela sur la base de ma propre expérience. J'ai réécrit l'application Forms en Native.
Tejasvi Hegde

2
Les commentaires de 2015 ne reflètent plus la réalité de Xamarin Forms. Il a parcouru un long chemin et a semblé exploser après la maturation de .NET Core \ Standard.
Sean Anderson

Cette question doit être rouverte. Il a maintenant 4 ans et il y a eu d'énormes développements dans le framework Xamarin.Forms pour permettre le développement d'applications d'entreprise.
James Mallon

Réponses:


144

Outre les points indiqués sur le site Web Xamarin, vous devez également prendre en compte:

Le parcours de votre équipe

Quelqu'un dans votre équipe a-t-il une expérience antérieure du codage natif pour Android ou iOS (en utilisant Java ou Obj-C / Swift)? Cette expérience est réutilisée dans Xamarin natif, mais ils devront apprendre une autre plateforme pour coder dans Forms.

La même chose est vraie s'ils ne savent rien sur iOS / Android mais connaissent du XAML. Bien sûr, Xamarin.Forms est différent de WPF / Silverlight, mais connaître XAML m'a sûrement aidé à utiliser Forms.

Performance

Xamarin Forms a toujours des problèmes, tels que le temps d'initialisation. Vous devez vous demander si cela posera ou non un problème à votre utilisateur final. Je ne prendrais pas la peine d'attendre un moment pour qu'une application de tableau de bord que j'utilise de temps en temps s'ouvre, mais je serais en colère si la même chose arrivait à une application de messagerie.

Délai jusqu'à la livraison

Étant donné que le partage de code est plus important lors de l'utilisation de Forms, vous pouvez vous attendre à un délai de livraison plus rapide.

Complexité de votre application

Compte tenu du point précédent, en utilisant Forms, vous pouvez tomber sur un bug de stopper (c'est une toute nouvelle technologie après tout) qui annulera les gains de temps. Tenez compte de la complexité de votre application avant de choisir.


2
J'ajouterai à cela si vous vous attendez à avoir une bonne application, vous finirez par avoir beaucoup d'interfaces personnalisées avec du code Xamarin Native pour chaque plate
Roman Nazarevych

2
cette réponse et ce commentaire ci-dessus sont super trop vieux. Les performances ne sont pas un gros problème aujourd'hui si vous activez AOT. concernant une bonne application dans le commentaire n'est pas non plus vrai. Les formulaires xamarin ont été améliorés et vous pouvez facilement créer de belles applications.
batmaci

Xamarin Forms ne s'est pas beaucoup amélioré pour obtenir facilement une interface utilisateur attrayante. Xamarin.Shell apportera de grandes améliorations à cet égard, mais à partir de maintenant, Xamarin est toujours difficile d'obtenir quelque chose d'attrayant à distance sans écrire de composants personnalisés pour chaque plate-forme.
Alexander

176

Xamarin.Forms

Avantages

  • Créer une interface utilisateur pour toutes les plates-formes
  • Utilisez des composants de base disponibles sur toutes les plates-formes (comme les boutons, les champs de texte, les spinners, etc.)
  • Pas besoin d'apprendre tous les frameworks d'interface utilisateur natifs
  • Processus de développement multiplateforme rapide
  • Les moteurs de rendu natifs personnalisés vous permettent d'ajuster l'apparence et la sensation des commandes

Les inconvénients

  • C'est toujours un nouveau framework et contient toujours des bugs
  • Surtout Windows RT n'est pas encore stable
  • C'est parfois plus lent que d'accéder directement aux contrôles natifs
  • Les moteurs de rendu natifs personnalisés ont des limites et sont mal documentés

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

Avantages

  • Créer une interface utilisateur par plateforme
  • Possibilité d'ajuster facilement les fonctionnalités et les composants de l'interface utilisateur spécifiques à la plateforme
  • Tirez le maximum de votre interface utilisateur

Les inconvénients

  • Le processus de développement multiplateforme est beaucoup plus lent
  • Vous devez apprendre tous les frameworks d'interface utilisateur natifs
  • Il se peut que vous ayez du code en double (comme vous décrivez presque la même interface utilisateur de trois manières différentes et spécifiques à la plate-forme)

En plus de cela, Xamarin dit sur https://xamarin.com/forms :

Quelle approche Xamarin convient le mieux à votre application?

Xamarin.Forms est idéal pour:

  • Applications de saisie de données
  • Prototypes et preuves de concept
  • Applications nécessitant peu de fonctionnalités spécifiques à la plate-forme
  • Applications où le partage de code est plus important que l'interface utilisateur personnalisée

Xamarin.iOS et Xamarin.Android sont les meilleurs pour:

  • Applications nécessitant des interactions spécialisées
  • Applications au design très soigné
  • Applications qui utilisent de nombreuses API spécifiques à la plate-forme
  • Applications où l'interface utilisateur personnalisée est plus importante que le partage de code

En ce qui concerne les «applications qui nécessitent peu de fonctionnalités spécifiques à la plate-forme», existe-t-il des exemples pour avoir une idée du type de fonctionnalités dont nous parlons?
NS.X.

Peu de fonctionnalités de la plate-forme signifie que vous effectuez la liaison de données et d'autres règles commerciales principalement en tant qu'application. Pas beaucoup de dessin personnalisé, ou essayer de rendre tout pixel parfait. Si vous êtes d'accord avec une mise en page commune qui est réactive, alors Xamarin.Forms est un bon choix.
Jason Short

Meilleure réponse à mon avis. Cela m'a éclairci: «Xamarin.Forms: créer une interface utilisateur pour toutes les plates-formes» et «Xamarin.iOS, Xamarin.Android: créer une interface utilisateur par plate-forme». Merci!
Tadej

1
@Dibzmania Je n'ai jamais dit qu'il ne convenait qu'aux prototypes et aux applications de base. Si vous souhaitez avoir une application multiplateforme avec une interface utilisateur presque identique sur chaque plateforme, Xamarin.Forms est génial. Si vous souhaitez avoir une interface utilisateur personnalisée par plate-forme, vous ne bénéficierez probablement pas de Xamarin.Forms et devez utiliser les bibliothèques d'interface utilisateur native à la place.
Wosi

1
Je pense que cet article de Nathan Williams est utile: arctouch.com/blog/xamarin-forms-xamarin-native
Alt-WN

44

À partir du site Web Xamarin

Xamarin.Forms est idéal pour:

  • Applications de saisie de données
  • Prototypes et preuves de concept
  • Applications nécessitant peu de fonctionnalités spécifiques à la plate-forme
  • Applications où le partage de code est plus important que l'interface utilisateur personnalisée

Xamarin.iOS et Xamarin.Android sont les meilleurs pour:

  • Applications nécessitant des interactions spécialisées

  • Applications au design très soigné

  • Applications qui utilisent de nombreuses API spécifiques à la plate-forme

  • Applications où l'interface utilisateur personnalisée est plus importante que le partage de code


1
Cette réponse est périmée / ancienne. Utilisez Forms avec Prism. Expérience agréable. Je suis un développeur unique qui crée une énorme application et je suis très productif et mon application fonctionne simplement sur tout. Si vous voulez des applications époustouflantes, il existe diverses vues tierces comme Grial UI Kit (consultez leur aperçu gratuit en direct XAML). N'oubliez pas que Xamarin Forms utilise toujours les contrôles natifs par défaut.
Sean Anderson
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.