Xamarin 3 : édition des vues via Xamarin.Forms

Dans le cadre d'un projet de développement d'une application mobile multiplateforme, nous avons testé le framework Xamarin.

Logo de Xamarin

Logo de Xamarin

Comme beaucoup d'autres framework, Xamarin permet de créer une seule application compatible avec iOS et Android. Mais, Xamarin va plus loin ! L'application créée est compilée dans le langage natif de l'OS. Donc, bien qu'utilisant un framework et développée dans un langage "étranger" les performances de l'application restent celles d'une application native.

Cependant, le noyau de l'application n'intégrait en son sein que la logique métiers et les données. Par conséquent, on arrivait à la limite de cette fusion de sources lorsqu'il s'agissait du look de l'application. Pour tromper l'utilisateur et feindre une application native, il faut respecter les spécificités graphiques, la différence de comportements et de navigations sur les deux OS. Nous étions alors obligés de décliner l'application en deux projets distincts. Sans compter un troisième projet pour les WindowsPhone et un quatrième pour les tablettes WinRT.

Mais ça, c'était avant !

Depuis juillet, Xamarin offre quelques nouveautés intéressantes dont Xamarin.Forms qui permet de créer une couche graphique depuis le noyau commun.

code-sharing_Xamarin

Xamarin : Code-sharing

Les prérequis

Xamarin offre maintenant la possibilité de développer une application multiplateforme pour les trois principaux OS présents sur le marché. Certains prérequis matériel sont toutefois nécessaires.

La compilation et le déploiement d'une application iOS nécessite toujours la présence d'un mac et ceux d'une application WindowsPhone nécessitent, eux, une plateforme Windows 8.1.

Si vous avez déjà développé une application Android, vous ne serez pas sans savoir que le simulateur de base est un peu long au démarrage. Le simulateur GenyMotion, et ses centaines de devices virtuels vous seront donc d'une grande utilité !

Comment ça marche ?

Le comportement ou la valeur d'éléments de base tel que les boutons, les labels ou les listes déroulantes d'une page, sont définis une fois. Leur aspect graphique sera ensuite géré automatiquement en fonction de l'os par Xamarin. Vous souhaitez un rendu spécifique à chaque OS ? Pas de soucis, vous avez la possibilité de créer vos propres rendus et de les différencier selon l'OS.

Vive le .xaml ! Ou presque

C'est sans doute dans l'optique de leur partnership avec Microsoft prévue pour Visual Studio 2015 que Xamarin a choisi le format .xaml pour l'édition des vues, profitant ainsi d'une solution efficace et déjà éprouvé.

XAML

Exemple de Xaml

J'émets toutefois une réserve quant à l'utilisation de ce format. Encore trop récemment intégré dans le framework, il ne profite pas encore de toutes les fonctionnalités déjà acquises pour le développement des applications WPF ou WindowsPhone. En effet, après quelques essais, on se rend vite compte que l'élaboration d'une vue devient rapidement fastidieuse, surtout si on utilise comme dans notre cas Visual studio. Adieu l'auto-complétion ! Adepte de la touche F12 ? Oubliez la, elle ne fonctionne pas sur un xaml version Xamarin. Besoin d'un visuel pour vous représenter la vue ? Nada !!

Dans ces cas-là, il est alors tout aussi efficace de créer vos vues directement via le code C#, comme le propose Xamarin.

Code

Pour conclure

Avec cette nouvelle version, Xamarin va encore plus loin dans la centralisation des sources d'application mobile. D'autres fonctionnalités et d'autres produits sont dorénavant proposés, comme l'intégration continue ou le fameux "Test cloud".

Même si cette technologie reste très jeune et ne bénéficie pas du même retour que les technologies "natives", elle est entourée d'une communauté dense et dynamique.

Le partenariat annoncé avec Microsoft pour Visual Studio 2015, ouvrira sans doute vers l'amélioration des fonctionnalités du .xaml et surtout un "aménagement" des prix des licences.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Captcha *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.