Avec la récente acquisition de Xamarin par Microsoft, on pouvait s’attendre à ce que le développement d’applications mobiles devienne un peu plus accessible, surtout considérant que cette acquisition a fait passer le coût de Xamarin à… rien du tout! Il est donc possible aujourd’hui, grâce à Xamarin Forms et à Visual Studio édition Communauté, de développer une application mobile qui pourra être distribuée sur Android, iOS et Windows Phone, et ce, sans aucuns coûts autres que ceux associés à la publication sur chacune de ces plateformes.

Donc maintenant que c’est accessible, est-ce facile de faire une application mobile multi-plateformes ? Très simplement, la réponse est oui. Notre nouveau projet contiendra déjà le nécessaire (ou presque) pour notre “Hello World”. Nous allons donc plutôt regarder ce que cela prend pour être en mesure de voir notre application sur les trois grandes plateformes (Android, iOS et Windows Phone), sans avoir ces appareils sous la main.

Prérequis

Création de notre projet

Pour commencer, il suffit d’ouvrir Visual Studio, de créer un nouveau projet (File → New → Project) et de sélectionner le gabarit “Blank App (Xamarin.Forms Portable)”. Ceci va donc créer la solution avec les projets suivants :

  • HelloWorldMobile (Portable)
  • HelloWorldMobile.Droid
  • HelloWorldMobile.iOS
  • HelloWorldMobile.Windows
  • HelloWorldMobile.WinPhone

Outre le projet “Portable”, tous les autres contiennent le nécessaire pour faire démarrer l’application selon la plateforme.

Vous aurez probablement des écrans de connexion à un Mac que vous pouvez fermer pour le moment. Nous verrons cela plus tard.

Vous pouvez maintenant ouvrir la classe “App” du projet Portable, et y changer la phrase “Welcome to Xamarin Forms!” pour “Hello World” (sinon ce ne serait pas un vrai hello world, n’est-ce pas?). Histoire de bien voir le résultat, vous pouvez ajouter la ligne suivante à l’intérieur des accolades du Label, pour que le texte soit un peu plus gros à l’écran :
FontSize = Device.GetNamedSize(NamedSize.Large, typeof(Label)),

Quelques mises à jour

La première chose à faire serait de vérifier que les composantes NuGet sont à jour sur la solution (faire un clic droit sur la solution, puis sélectionner “Manage NuGet Packages for Solution”). Au niveau de ce qui est installé (onglet Installed), assurez-vous que Xamarin.Forms est à la version 2.3.2.127.

Dans l’onglet Updates, vous allez probablement constater qu’il y a plusieurs paquets à mettre à jour, tous concernant Android. C’est tentant de les mettre à jour, n’est-ce pas ? Mais contrairement à ce qu’on pourrait penser, nous ne le ferons pas. Malgré que ces paquets pour Android soient disponibles, ils ne sont pas encore compatibles avec Xamarin.Forms, mais seulement avec les projets propres à Android. Ils ne sont donc pas supportés par Forms. Le paquet Xamarin.Forms connaît ses dépendances pour Android. Il est donc préférable de le laisser lui-même gérer ce qui doit être installé lors de ses mises à jour.

Nous allons ensuite vérifier l’état des paquets du SDK d’Android. Pour ceci, il faut aller dans le menu Tools → Android → Android SDK Manager. Ici, la détection des paquets manquants ou à mettre à jour devrait se faire automatiquement. Par conséquent, il faut seulement appuyer sur “Install packages” une fois la vérification faite. Selon les mises à jour à faire, il se peut que vous deviez relancer le gestionnaire pour une deuxième série de mises à jour­.

Une fois tout ceci fait, nous allons pouvoir tester notre application.

Tester notre Hello World

Nous en sommes maintenant à tester notre application. Nous allons donc voir comment configurer les émulateurs pour chacune de ces plateformes afin d’être en mesure de tester sans nécessairement avoir un appareil entre les mains.

Windows 8.1
Pour Windows 8.1, aucune installation supplémentaire n’est requise. Vous devriez pouvoir démarrer l’application :

1

Windows Phone
Pour Windows Phone 8.1, il suffit de télécharger et d’installer l’émulateur directement du site de Microsoft (voir le lien dans les prérequis). À noter que Windows 8.1 ou 10 est un prérequis pour cette installation. Une fois l’installation complétée et la solution redémarrée, vous aurez la possibilité de démarrer le projet en ciblant un des différents émulateurs, comme le démontre cette image :

2

Android
Pour Android, plusieurs options s’offrent à nous pour ce qui est de l’émulation. Avec l’installation du SDK d’Android vient le “Android Virtual Device Manager”, qui inclut deux configurations d’émulateur par défaut. Ce gestionnaire nous permet donc de configurer de nouvelles machines virtuelles si on le désire et offre une performance décente. Par contre, si Hyper-V est activé sur votre ordinateur, il ne sera pas possible d’utiliser des configurations avec processeur x86, donc la performance sera plutôt médiocre.

3

Une deuxième option est le Xamarin Android Player (disponible pour téléchargement). Malgré qu’il s’agit officiellement d’une version bêta, ce gestionnaire est très stable et nous offre la possibilité de télécharger plusieurs configurations d’appareils Android (toutes celles de la lignée Nexus). La seule chose qui pourrait vous empêcher d’utiliser cet outil est Hyper-V, qui rend l’utilisation de ces émulateurs impossible.

4

Une dernière option est l’émulateur Android pour Visual Studio (disponible pour téléchargement). Ici, Hyper-V n’est pas un problème, mais plutôt un requis. Par contre, s’il est possible pour vous de l’installer, c’est avec celui-ci qu’on obtient la meilleure performance lors de l’utilisation (qui est beaucoup plus représentative de la réalité) et le plus d’options de configurations et d’ajustements de capteurs. Un grand choix d’émulateurs est aussi disponible avec des exemples de modèles comparatifs. Selon votre configuration Hyper-V, il risque d’y avoir des changements à faire au niveau de cette configuration et de votre projet. Le mieux est de se référer à cette page si le démarrage de l’application n’est pas possible.

5

Donc au final, plusieurs choix s’offrent à vous. Si votre ordinateur ne supporte pas Hyper-V, le mieux est d’essayer les deux solutions qui s’offrent à vous et de choisir celle que vous préférez, car les deux offrent une bonne performance et une facilité d’utilisation. Au final, vous devriez avoir votre émulateur pour tester le projet sur Android.

iOS
Nous en sommes maintenant à tester sur iOS. La première étape est de créer son profil sur le Mac pour permettre le développement de l’application. Donc, sur le Mac, il faudra ouvrir XCode et aller dans le menu XCode → Preferences. Ici, il faut utiliser le bouton + pour ajouter votre identifiant Apple (Add Apple ID). Vous pouvez inscrire votre identifiant si vous en avez déjà un ou en créer un. Une fois que cela est fait, sélectionnez votre identifiant et appuyez sur View Details dans la section de droite. Pour permettre le développement d’une application (il faut faire la distinction ici entre développement et distribution, car la distribution requiert d’autres configurations), appuyez sur le bouton Create de l’entrée iOS Development.

La prochaine étape sera donc d’établir la connexion avec le Mac. De retour dans Visual Studio, vous pouvez utiliser le menu Tools → iOS → Xamarin Mac Agent ou encore le bouton de la barre d’outils, comme indiqué dans cette capture d’écran :

6

Si ce n’est pas déjà fait, vous aurez les explications nécessaires pour activer l’agent du Mac pour les connexions à distance. La fenêtre explicative peut être désactivée complètement, donc si c’est ce que vous avez fait, voici la page du site de Xamarin avec les explications nécessaires.

Une fois l’agent activé, vous devriez avoir accès au Mac par l’écran du Xamarin Mac Agent, où vous pourrez sélectionner le Mac et inscrire le nom d’utiliateur et le mot de passe pour s’y connecter :

7

Xamarin permet maintenant de visualiser le simulateur iOS directement à partir de notre environnement Windows grâce à l’outil mentionné dans la section Prérequis (avant, il fallait aller voir le simulateur directement sur le Mac). Nous allons donc vérifier que l’outil est bien actif en allant dans le menu Tools → Options, puis dans la section Xamarin → iOS Settings. Ici, l’option du simulateur devrait être cochée, comme ceci :

8

La dernière étape est de configurer notre application dans Visual Studio pour indiquer le profil de développement à utiliser. Pour cela, nous allons faire un clic droit sur le projet iOS et aller dans Properties. Dans l’onglet iOS Bundle Signing, vous devriez être en mesure de sélectionner le profil de votre identifiant Apple dans le champ Identity (débute par iPhone Developer suivi du courriel utilisé). Cette configuration peut être facile à oublier lors du démarrage d’un nouveau projet, mais est nécessaire si on veut être en mesure d’utiliser les simulateurs.

Si nous tentons maintenant d’accéder à la liste d’émulateurs, nous devrions y retrouver la liste des différents appareils disponibles selon la configuration XCode (qui peut toujours être ajustée selon vos besoins) :

9

Conclusion

Nous avons maintenant tout ce qu’il faut pour développer et tester localement notre application mobile multiplateforme sans avoir besoin de posséder tous ces appareils.

Malgré qu’il ne soit pas nécessaire d’avoir tous les appareils, il est quand même important de souligner qu’un appareil physique reste le meilleur moyen de tester votre application. Les périphériques de l’appareil, comme par exemple la caméra ou l’accéléromètre, seront toujours mieux testés sur un vrai appareil.

Lisez le billet d’Éric de Carufel sur la version entreprise de Hello World.

Billet précédent

La « startup » Agile et le capital de risque — Partie 3 : La réalité frappe de plein fouet

Billet suivant

La « startup » Agile et le capital de risque — Partie 4 de 4 : Finalement…

Bruno Barrette

Bruno a passé près de trois ans en vente au détail à développer ses aptitudes en communication, passant d’un emploi qui devait être temporaire à un poste de gestionnaire, avant de réorienter sa carrière en informatique en 2004. Ayant œuvré longtemps dans le domaine pharmaceutique, il a acquis son expérience sur des bases de rigueur et de souci de la qualité. Sa curiosité l’a amené à toucher à de multiples technologies et domaines connexes au développement, comme la gestion de projets, la validation logicielle et l’implantation de solutions. Bruno est quelqu’un de polyvalent vers qui on peut se tourner, peu importe la nature du projet. Il vise toujours à étendre ses connaissances et à les partager avec ses pairs.

Pas de commentaire

Laissez un commentaire

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