web-dev-qa-db-fra.com

Différence entre Xamarin.Forms et Xamarin Cross Platform

Je suis depuis 2 ans avec Xamarin Environment et j'ai principalement utilisé Xamarin.Forms. Mais pourtant, je n'ai aucune idée de ce qu'est Xamarin Cross Platform? Quelqu'un peut-il apporter des différences structurelles?

17
Mr Hery

Xamarin a deux façons de créer des applications mobiles, Xamarin.Forms et Xamarin.Native. Les deux méthodes vous permettent d'écrire du code multiplateforme.

La plateforme croisée n'est qu'un concept. Cela signifie que le code que vous écrivez une fois peut s'exécuter sur plusieurs plates-formes. Xamarin est multiplateforme (principalement Xamarin.Forms) car il vous permet d'écrire du code qui s'exécute sur plusieurs plates-formes (entre).

4
jzeferino

Lorsque nous parlons de Xamarin, il existe deux approches dans le développement d'applications natives:

  • Approche Xamarin traditionnelle
  • Xamarin.Forms

Il y a une bonne citation du site Web de Xamarin

Partagez le code partout. Utilisez le même langage, les mêmes API et les mêmes structures de données pour partager en moyenne 75% du code d'application sur toutes les plateformes de développement mobile. Créez des interfaces utilisateur avec Xamarin.Forms et partagez près de 100%.

Remarque importante, ces chiffres peuvent varier d'un projet à l'autre, il s'agit donc d'une hypothèse pour une utilisation générale de Xamarin.

Et comme vous pouvez le voir sur l'image ci-dessous sur les "différences" entre ces deux approches. Approche traditionnelle de Xamarin (Xamarin.iOS et Xamarin.Android), ils sont tous deux construits sur Mono, une version open-source du .NET Framework. Pour développer ces applications, vous utilisez C # et il est possible de partager jusqu'à 75% de la base de code, comme vous pouvez le voir sur l'image ci-dessous et à partir de la citation de Xamarin.

enter image description here

En utilisant Xamarin Traditional , vous pouvez utiliser un C # comme langage de programmation pour écrire vos modèles, appeler des services Web, etc. Donc, vous écrivez cette logique de code une fois et en l'utilisant/le partageant entre les projets Xamarin.Android et Xamarin.iOS, et dans ces projets séparés, vous écrivez du code spécifique à cette plate-forme et vous avez accès à leurs API.

Il y a aussi une citation de Xamarin sur l'approche traditionnelle:

Tout ce que vous pouvez faire dans Objective-C, Swift ou Java peut être fait en C # avec Xamarin à l'aide de Visual Studio.

Et la structure du projet avec Xamarin traditionnel ressemble à ceci: enter image description here

  • Projet de code partagé : Base de code commune et réutilisable pour vos autres projets.
  • Xamarin.Android : Projetez votre application Android où vous écrivez du code à l'aide d'API spécifiques à Android, écrivez votre code d'interface utilisateur, etc.
  • Xamarin.iOS : Projet pour votre application iOS où vous écrivez du code à l'aide d'API spécifiques à iOS, écrivez votre code d'interface utilisateur, etc.

Plus d'informations sur Xamarin traditionnel ici .

Maintenant à propos de Xamarin.Forms , la meilleure définition est la citation du site Web de Xamarin:

Xamarin.Forms est un cadre qui permet aux développeurs de créer rapidement des interfaces utilisateur multiplateformes. Il fournit sa propre abstraction pour l'interface utilisateur qui sera rendue à l'aide de contrôles natifs sur iOS, Android, Windows ou Windows Phone. Cela signifie que les applications peuvent partager une grande partie de leur code d'interface utilisateur tout en conservant l'aspect et la convivialité natifs de la plate-forme cible.

Comme vous pouvez le conclure à partir du texte ci-dessus, Xamarin.Forms est un framework qui vous permet d'écrire votre interface utilisateur en C # ou avec XAML avec possibilité d'utiliser MVVM ... Avec Xamarin.Forms, vous pouvez écrire votre base de code et votre interface utilisateur qui sera partagé entre les plates-formes.

enter image description here

Remarque: il s'agit d'une structure de projet très simple, bien sûr, vous pouvez ajouter plus de projet pour différentes couches

  • Projet de code partagé : contient votre base de code commune et aussi parce que vous utilisez Xamarin.Forms, vous pouvez écrire du code pour votre interface utilisateur
  • Xamarin.iOS et Xamarin.Android : code pour cette plate-forme spécifique et certains sujets avancés tels que les rendus personnalisés et les services de dépendance.

Bien sûr, il existe certaines limitations si vous utilisez Xamarin.Forms, par exemple, vous ne pouvez utiliser que des contrôles d'interface utilisateur communs à toutes les plates-formes. Vous pouvez lire mon article de blog sur les avantages et les inconvénients de Xamarin.Forms ici .

Plus d'informations sur Xamarin.Forms ici .

J'espère que cette réponse n'est pas déroutante pour vous et comme conclusion en une ou deux phrases ... En utilisant Xamarin Traditionnel, vous pouvez partager votre logique de code entre projets spécifiques à la plate-forme, et en utilisant Xamarin.Forms, vous pouvez partager logique de code et aussi du code pour l'interface utilisateur dans tous vos projets.

Remarque: pour un projet partagé et une stratégie de partage de code, vous pouvez utiliser "Projet partagé" et "PCL", c'est un sujet pour une autre question ... donc dans cette réponse, je simplifiais cela et j'utilisais un terme de projet partagé pour ce type du projet dans la solution d'application Xamarin.

49
Almir Vuk

Si vous parlez de Xamarin.iOS et Xamarin.Android (Xamarin Native), je dirais que la principale différence est que dans Xamarin Forms, vous partagez PAS SEULEMENT la logique métier, mais aussi le UI . Dans formulaires Xamarin, vous utiliserez des composants de base sur toutes les plateformes (Button, Label, etc.). C'est la raison pour laquelle il s'appelle Xamarin.Forms, car il convient aux formulaires de base.

Mais pour Xamarin Native, vous allez créer un UI par plate-forme (un pour iOS, un pour Android). Vous pouvez faire beaucoup plus avec Xamarin Native, car vous utiliserez des composants natifs.

J'espère que cela aide!

13
mindOfAi

Je pense que Xamarin Cross Platform fait référence à la technologie qui compile le code partagé (votre PCL ou projet partagé) de sorte qu'il peut être utilisé par les différentes plates-formes telles que Xamarin.Android ou Xamarin.IOS avant d'être finalement compilé sur les plates-formes natives.

Donc, je dirais que Xamarin.Forms est l'un des outils que vous utilisez pour créer du code compatible multiplateforme qui peut ensuite être assemblé à l'aide de la technologie multiplateforme Xamarin, est-il logique?

0
Ada Frank