Il est étonnant de penser qu'il y a près de dix ans, lorsque Mono a été officiellement publié, les développeurs C # auraient la grande majorité du paysage mobile à portée de main. Je me souviens exactement où j'étais. C'était l'été 2004 et je mettais la dernière main à une application de bureau utilisant un client lourd utilisant le .NET Framework 2.0..
Je créais une application permettant de visualiser les centres de données d'entreprise dans Visio et générant automatiquement des plans de migration et des points de contrôle pour la virtualisation de leurs environnements. À l'époque, c'était révolutionnaire si vous me le demandiez.
J'essayais de rester au-dessus de .NET du mieux que je pouvais, alors quand j'ai entendu dire qu'il y aurait une version ouverte, je me suis dit: "chouette". Peut-être que je pourrais exécuter mon application sur une machine Linux. Mais je travaillais dans un magasin Microsoft et je n'y voyais pas grand-chose, alors je l'ai écarté pendant un moment..
Environ un an avant la mise en service de Mono, la société qui l'a créée, Ximian, a été achetée par Novell et les travaux sur ses produits se sont poursuivis. Parmi ces produits, il y avait Mono. À l’époque sous Novell, Mono a continué d’être améliorée de près, grâce à la croissance et aux fonctionnalités du .NET Framework via Microsoft..
Pendant ce temps, deux très grandes avancées dans l’espace mobile de Mono sont arrivées, MonoTouch et Mono pour Android ont été libérés en 2009 et 2011, respectivement. À la grande surprise de la communauté .NET, nous pouvions désormais écrire des applications mobiles qui ciblaient les plates-formes iOS et Android dans un langage que nous connaissions bien. Malheureusement, cela n'a pas été immédiatement rencontré à bras ouverts.
Tandis que la plate-forme Android ne semblait pas avoir beaucoup de problèmes avec cela, Apple d’autre part, n’était pas aussi réceptif. Mi-2010, Apple a mis à jour les termes de son programme pour développeurs iOS, qui interdisait aux développeurs d'écrire des applications dans des langages autres que C, C ++ et Objective-C, et limitait toute sorte de couche entre la plate-forme iOS et les applications iOS..
Cela aurait certainement été catastrophique pour l'avenir de MonoTouch. Heureusement, à la fin de 2010, Apple a assoupli les restrictions linguistiques et l'avenir de MonoTouch semblait de nouveau brillant, même si ce n'était que brièvement..
Lorsque les perspectives pour les utilisateurs de MonoTouch ont commencé à paraître de nouveau brillantes, un autre problème se posait. Début 2011, Attachmate a acquis Novell et a annoncé des centaines de licenciements de son personnel. Parmi ces licenciements se trouvaient plusieurs des fondateurs du framework Mono original ainsi que les architectes et développeurs de MonoTouch et Mono pour Android. Une fois encore, nous nous sommes inquiétés de l'avenir de notre capacité à créer des applications C # s'exécutant sur ces nouvelles plates-formes..
Presque un mois après son licenciement, Miguel de Icaza a créé une nouvelle société nommée Xamarin et s'est engagé à poursuivre le développement et le soutien de Mono. Novell et Xamarin ont annoncé l'octroi d'une licence perpétuelle de Mono, MonoTouch et Mono pour Android et la prise en charge officielle du projet par Xamarin. Nous avons encore une fois eu les clés du royaume.
Environ trois ans après la création de Xamarin, il nous reste des outils vraiment remarquables. Ces outils sont non seulement remarquables par le fait qu’ils nous permettent d’écrire des applications C # qui fonctionnent sur des plates-formes non Microsoft, mais ils sont également extrêmement faciles à utiliser et à utiliser..
Pour commencer, il vous suffit de vous rendre sur le site Web de Xamarin, de créer un compte si vous n'en avez pas déjà et de vous rendre sur la page de téléchargement. Avec chaque compte, vous obtenez une version d'essai gratuite de 30 jours de la Business Edition de Xamarin, qui vous fournit tout ce dont vous avez besoin..
Au cours des dernières années, le processus d'installation de Xamarin s'est considérablement amélioré depuis l'époque de MonoTouch et de Mono pour Android. Il s’agit d’une installation entièrement autonome qui détectera le logiciel requis et la version à lancer, y compris la version appropriée du SDK Android..
Dans mon esprit, la caractéristique la plus importante de l'édition Business (et Enterprise) est sa prise en charge de Visual Studio. Cela signifie que vous pouvez écrire toutes vos applications iOS et Android en utilisant non seulement un IDE avec lequel vous êtes à l'aise, mais également bénéficier de tous les autres plugins ou extensions que vous utilisez pour Visual Studio, Resharper par exemple..
Je ne sais pas pour vous, mais je suis vraiment excité lorsque j'ouvre Visual Studio, sélectionnez Fichier> Nouveau projet et regardez droit devant les options pour créer une application iOS ou Android.
Si votre version d'essai gratuite de 30 jours de Business Edition a expiré au moment où vous le lisez, vous pouvez simplement rétrograder à Starter Edition et continuer à jouer avec Xamarin. Cependant, la Starter Edition présente quelques inconvénients..
Si vous utilisez simplement l'édition Starter pour jouer avec Xamarin, ces restrictions ne sont pas un gros problème. Si vous travaillez sur la prochaine grande application, vous devrez vous équiper pour l'édition Business ou Enterprise. Chaque édition est également livrée avec un IDE gratuit, Xamarin Studio.
Xamarin Studio est un IDE complet qui inclut de nombreuses fonctionnalités que vous trouvez également dans Visual Studio. Vous n'avez donc absolument pas besoin de vous sentir en court-circuit si vous choisissez d'utiliser Xamarin Studio. Je me sens très à l'aise de l'utiliser et c'est vraiment une joie de travailler avec.
La bonne chose est que les structures de la solution et du projet sont interchangeables avec celles de Visual Studio. Cela signifie que si vous possédez une licence pour une édition de Xamarin vous permettant d'utiliser Visual Studio, vous pouvez travailler sur la même solution dans les deux environnements de développement. Cela permet un développement inter-équipes entre développeurs utilisant un système Windows ou Mac. Aucun logiciel de virtualisation n’est nécessaire, car Xamarin Studio est disponible pour Windows et OS X.
Lorsque vous commencez à utiliser Xamarin, il est important de connaître les options de configuration. Pour entrer dans la configuration de base, sélectionnez Outils> Options depuis Visual Studio ou Xamarin Studio.
Je n'ai actuellement que Xamarin.Android installée. Si vous avez également installé Xamarin.iOS, vous verrez plus d'options de configuration. Dans la partie droite de la boîte de dialogue des options, vous verrez les options suivantes dans Visual Studio..
Dans Xamarin Studio, des options similaires sont réparties sur le SDK Emplacements, Débogueur, et Android arborescence des éléments dans le Projets section. Laissez-moi vous expliquer les différentes options de configuration..
Comme vous l'avez peut-être deviné, ces paramètres permettent de définir l'emplacement des bits Android sur votre machine. En général, je ne trouve pas nécessaire de les modifier et le plus souvent, une nouvelle installation de Xamarin (parfois avec une mise à jour ou deux) télécharge et installe toutes les versions appropriées aux emplacements appropriés. Si vous êtes un développeur Android plus expérimenté qui a besoin d'accéder à plusieurs versions et de pouvoir changer de version, vous avez cette possibilité..
C'est probablement l'option de configuration que j'utilise le plus. Lorsque j'écris une application qui fonctionne avec des données de sandbox locales sur un périphérique ou dans l'émulateur, tels que des fichiers ou une base de données, je cocherai éventuellement cette case..
Lors du déploiement d'une application sur un périphérique ou l'émulateur, toutes les données existantes, y compris les fichiers de base de données, sont supprimées et doivent être recréées. Au tout début du développement, lorsque je veux m'assurer que la base de données est créée avec succès, c'est très bien. Après cela, cependant, je souhaiterai travailler avec une base de données remplie sans avoir à configurer ces données à chaque déploiement de l'application..
Pendant le cycle de développement, vous déployez votre version de débogage sur un périphérique ou sur l'émulateur. Par défaut, vos symboles de débogage sont fournis avec votre application et vous permettent de déboguer, de définir des points d'arrêt dans votre propre code et de parcourir des lignes pendant l'exécution de l'application. Cette option vous permet également d'avoir accès aux symboles de débogage dans le runtime Mono partagé ainsi qu'aux bibliothèques de classes de base pour vous donner plus d'informations sur ce qui se passe dans ces zones ainsi que votre propre code..
Ceci n'est utilisé qu'à des fins de débogage. Une option similaire est disponible dans Xamarin Studio. Vous pouvez le trouver sous le Débogueur option comme Déboguer le code du projet uniquement; ne pas entrer dans le code cadre. Vous devrez décocher cette case pour accéder au framework Mono..
Si vous avez besoin de peaufiner l'émulateur Android avec des paramètres supplémentaires que vous pouvez généralement définir manuellement lors de l'exécution, cette option vous permet de transmettre ces arguments directement à l'émulateur via Visual Studio ou Xamarin Studio..
Le logiciel Xamarin est en constante évolution et mis à jour. Il est vraiment rentable de rester au courant de tout changement apporté à la version que vous utilisez actuellement, ainsi que de ce qui s'en vient. Voici où vous pouvez définir les types de mises à jour pour lesquelles vous souhaitez être averti. Vous serez invité à télécharger et installer de nouvelles versions si vous cochez cette case..
Je reste généralement avec des versions stables pour les applications dont la publication est prévue, mais j'aime avoir un alpha ou une bêta pour jouer avec. Il existe une option similaire dans Xamarin Studio, mais dans un emplacement différent. On peut le trouver sous Aide> Rechercher les mises à jour. Ici vous pouvez choisir le Canal de mise à jour comme Stable, Bêta, ou Alpha, comme dans Visual Studio.
Cette option active la journalisation du déploiement du périphérique. Lorsque cette option est activée, Visual Studio dirige la sortie du journal de déploiement vers le monodroid.log fichier trouvé sur votre bureau. Cette option n'est pas disponible dans Xamarin Studio, du moins pas en configuration..
Xamarin Studio écrit toujours les journaux de déploiement des périphériques, mais ils sont un peu plus difficiles à trouver. Sous Windows, vous pouvez les trouver dans la \ LOCALAPPDATA \ XamarinStudio- VERSION \ Logs
dossier où VERSION
est la version de Xamarin Studio que vous utilisez. Les fichiers sont créés dans ce dossier avec la convention de nommage de AndroidTools- DATA __ TIME
où RENDEZ-VOUS AMOUREUX
est la date actuelle du déploiement et TEMPS
est l'heure réelle du déploiement.
Avant de parler de la beauté de ce code, et que ce soit beau, il est important que vous compreniez que le fait d’écrire des applications iOS et Android en C # ne signifie pas simplement que vous pouvez écrire des applications iOS et Android en C #. L’équipe Xamarin a réalisé un travail fantastique en permettant aux développeurs possédant une expérience en C # de disposer du aptitudecréer des applications iOS et Android. Le problème réside dans la connaissance. Permettez-moi d'expliquer cela plus en détail.
Vous possédez peut-être les connaissances C # dont vous avez besoin, mais à moins que vous n’ayez déjà utilisé le développement iOS ou Android, vous n’avez pas les connaissances requises en matière de plate-forme. Afin de rendre Xamarin utilisable à tous les niveaux de développeurs iOS et Android, l'équipe Xamarin a mappé les constructions de langage et les structures de classe d'Objective-C pour iOS et de Java pour Android en C #..
Alors qu'est-ce que cela signifie? Cela signifie que vous devez au moins avoir une connaissance de base du modèle de programmation iOS et Android et des kits de développement logiciel (SDK) pour pouvoir tirer parti de Xamarin. Cela signifie que le AVFoundation
classe en Objective-C est la MonoTouch.AVFoundation
classe en C #. le Activité
classe en Java est le Android.App.Activity
classe en C #.
Si vous n'avez aucune expérience avec iOS ou Android, ne laissez pas votre manque de connaissances vous dissuader d'utiliser Xamarin. Vous n'avez pas besoin de passer des mois, des jours, voire des heures sur le centre de développement iOS ou sur le site Web du développeur Android. Le fait est que vous familiariser avec la plateforme pour laquelle vous développez vaut plus que votre temps si votre ambition est de créer un produit de haute qualité..
Ma suggestion est d’aller directement au centre de développement Xamarin et d’être rapidement opérationnel. Vous trouverez de la documentation, des exemples d'applications, des didacticiels, des vidéos et des références d'API. Une fois que vous avez commencé, tout commence simplement par rechercher comment accomplir certaines tâches. Une fois que vous maîtrisez bien les API et le processus de développement, vous pouvez revenir aux ressources iOS et Android pour obtenir une connaissance plus approfondie des plates-formes..
Maintenant que vous avez les outils nécessaires téléchargés et installés, essayons-les. Pour suivre, vous pouvez utiliser Visual Studio ou Xamarin Studio, car je vais me concentrer sur le code, pas sur l'EDI. Pour ce tutoriel, j'utiliserai Visual Studio 2013 sous Windows, mais vous êtes libre d'utiliser IDE sous Windows ou Xamarin Studio sous OS X. Nous allons créer une application Android simple qui lira le fil d'actualité actuel de Xamarin et nous l'appellerons XamFeed.
Commencez comme vous le feriez avec n'importe quelle autre application C # en créant un nouveau projet / solution et en le nommant. XamFeed. Des conventions de nommage typiques pour une application comme celle-ci seraient ajoutées .Android à la fin du nom. Ceci permet de différencier le nom de cette application de toute autre version de plate-forme que vous pourrez créer ultérieurement (comme .iOS, .Mac, .Téléphone Windows, etc).
Ce sera une application très simple, nous allons donc garder le nom simple. Vous pouvez choisir l'un des modèles Android de votre choix, une application Android, une application Android Honeycomb ou une application Android Ice Cream Sandwich. Ceux-ci viennent de définir la version de base d'Android que notre application va cibler. Je vais utiliser la base Application Android modèle.
dans le Explorateur de solution, ouvrir le Activité principale
classe, qui sera le point d’entrée principal de notre application. J'aime bien renommer ça Activité
pour mieux représenter le but qu'il servira, alors allez-y et renommez-le en FeedActivity
.
Si vous ne connaissez pas les activités, pensez à un Activité
sous forme d'écran ou de vue dans votre application Android. Chaque écran dont vous avez besoin dans votre application aura une classe correspondante qui hérite de la Activité
classe de base.
dans le FeedActivity
classe, vous avez la possibilité de remplacer un certain nombre de méthodes prédéfinies. Le seul qui nous préoccupe pour le moment est le OnCreate
méthode qui sera appelée lors de la création de notre écran et accessible à l'utilisateur.
La première chose à faire est de créer une nouvelle classe représentant le flux. Vous pouvez évidemment développer cela, mais tout ce dont nous avons besoin pour l'instant, c'est de Titre
, PubDate
, Créateur
, et Lien
au contenu de l'article.
Classe publique RssItem chaîne publique Titre get; ensemble; chaîne publique PubDate get; ensemble; chaîne publique Creator get; ensemble; chaîne publique Link get; ensemble;
Nous pouvons maintenant changer la mise en œuvre de la OnCreate
méthode au sein de notre Activité principale
classe pour obtenir les données du flux Xamarin. Remplace le OnCreate
mise en œuvre avec les éléments suivants:
[Activité (Label = "XamFeed", MainLauncher = true, Icon = "@ drawable / icon")] Classe publique FeedActivity: ListActivity private RssItem [] _items; protégé async remplacer void OnCreate (Bundle Bundle) base.OnCreate (Bundle); using (var client = new HttpClient ()) var xmlFeed = wait client.GetStringAsync ("http://blog.xamarin.com/feed/"); var doc = XDocument.Parse (xmlFeed); XNamespace dc = "http://purl.org/dc/elements/1.1/"; _items = (depuis item dans doc.Descendants ("item"), sélectionnez un nouveau RssItem Title = item.Element ("title"). Value, PubDate = item.Element ("pubDate"). Value, Creator = item.Element ( dc + "creator"). Value, Link = item.Element ("link"). Value). ToArray (); ListAdapter = new FeedAdapter (this, _items); protégé annulation void OnListItemClick (ListView l, Voir v, int position, id long) base.OnListItemClick (l, v, position, id); var second = new Intent (this, typeof (WebActivity)); second.PutExtra ("link", _items [position] .Link); StartActivity (seconde);
Parcourons cet extrait de code ligne par ligne pour voir ce qui se passe.
[Activité (Label = "XamFeed", MainLauncher = true, Icon = "@ drawable / icon")]
le ActivityAttribute
qui décore le FeedActivity
la classe est le mécanisme Xamarin.Android utilise pour laisser le périphérique cible ou l'émulateur savoir qu'il s'agit d'un Activité
(ou écran) accessible dans l’application. Ceci est requis pour tous Activité
cours au sein de votre application.
private RssItem [] _items;
Nous allons enregistrer tous les éléments de flux que nous extrairons du site Web Xamarin dans une variable pour nous empêcher de faire des requêtes HTTP en permanence. Vous voudrez peut-être gérer cela différemment selon que vous souhaitez ou non mettre à jour cet écran ultérieurement avec un nouveau contenu. Dans notre application simple, nous ne ferons pas cela.
protégé async remplacer void OnCreate (Bundle Bundle)
Ensuite, nous substituons la OnCreate
méthode qui est exposée à travers le Activité
classe de base dans notre FeedActivity
classe. Cette méthode s'appelle chaque fois que cette Activité
est instancié par le. Comme vous pouvez le constater, nous pouvons également utiliser le nouveau C # 5.0 asynchrone / wait
fonctionnalité pour rendre cette méthode asynchrone.
base.OnCreate (bundle);
Assurez-vous d'appeler le base.OnCréer
méthode sur la base Activité
classe. Cela garantira que tout traitement effectué par la classe de base pendant la OnCreate
méthode continuera à courir.
using (var client = new HttpClient ())
Pour récupérer les données RSS sur le site Web Xamarin, nous allons utiliser le HttpClient
classe car elle fournit un certain nombre de méthodes asynchrones pratiques pour récupérer des données sur HTTP.
var xmlFeed = wait client.GetStringAsync ("http://blog.xamarin.com/feed/"); var doc = XDocument.Parse (xmlFeed);
Nous invoquons ensuite le GetStringAsync
méthode sur le HttpClient
classe pour récupérer les données de flux et Analyser
dans un XDocument
objet à faire un peu Linq2XML la magie.
XNamespace dc = "http://purl.org/dc/elements/1.1/"; _items = (depuis item dans doc.Descendants ("item"), sélectionnez un nouveau RssItem Title = item.Element ("title"). Value, PubDate = item.Element ("pubDate"). Value, Creator = item.Element ( dc + "creator"). Value, Link = item.Element ("link"). Value). ToArray ();
Pour récupérer correctement les éléments du résultat XDocument
objet, nous devons créer une instance du XNamespace
classe qui représente une partie du formatage personnalisé utilisé dans le flux RSS Xamarin. Nous pouvons alors lancer une requête LINQ contre le XDocument
pour extraire tous les éléments et créer de nouvelles instances du RssItem
classe basée sur les propriétés de l'élément.
ListAdapter = new FeedAdapter (this, _items);
Enfin, nous utilisons un adaptateur personnalisé pour renseigner le ListView
du FeedActivity
, qui est défini dans le Main.axml
document dans le Ressources / Mise en page
dossier. Pensez aux adaptateurs d’Android comme un mécanisme permettant de personnaliser la mise en forme d’éléments ou de widgets dans l’interface utilisateur. Tous les composants d'interface utilisateur utilisant des adaptateurs, tels qu'un ListView
, utilisez des adaptateurs par défaut si vous n'en spécifiez pas explicitement, mais vous pouvez toujours les remplacer par vos propres.
La dernière pièce du puzzle pour la FeedActivity
la classe est de remplacer le OnListItemClick
méthode afin que nous puissions ouvrir une nouvelle Activité
qui nous montre le contenu réel des éléments de flux individuels que nous touchons.
base.OnListItemClick (l, v, position, id);
Une fois encore, nous appelons la méthode de classe de base pour nous assurer que tous les traitements normaux sont effectués..
var second = new Intent (this, typeof (WebActivity)); second.PutExtra ("link", _items [position] .Link); StartActivity (seconde);
Nous suivons maintenant le modèle de conception Android pour transmettre des données à un nouveau Activité
. Cela vous sera très familier à mesure que vous créerez plus d'applications comportant plusieurs écrans. Nous créons un nouveau Intention
objet, qui est le moyen Android de transmettre des données à un nouveau Activité
. Nous passons deux objets qui représentent le contexte d'où provient l'appel, ce
, et le Type
objecte à l'endroit où il va.
Une fois que nous avons le nouveau Intention
objet, nous mettre les choses, généralement des chaînes, dans et le transmettre. Dans ce cas, nous utilisons le PutExtra
méthode pour ajouter un valeur clé
paire au Intention
, et démarrer le processus de transition vers le WebActivité
écran avec le StartActivité
méthode.
Sur la base du code impliqué dans la création de la FeedActivity
écran, nous devons maintenant créer un FeedAdapter
classe qui remplit et formate le RssItem
données dans notre ListView
et un WebActivité
classe pour représenter l'écran suivant. Commençons par le FeedAdapter
classe.
Classe publique FeedAdapter: BaseAdapterprivate RssItem [] _items; activité privée _context; public FeedAdapter (contexte d'activité, éléments RssItem []): base () _context = context; _items = items; public override RssItem this [int position] get return _items [position]; public override int Count get return _items.Count (); public override long GetItemId (position int) position de retour; public override View GetView (position int, View convertView, parent ViewGroup) var view = convertView; if (view == null) view = _context.LayoutInflater.Inflate (Android.Resource.Layout.SimpleListItem2, null); view.FindViewById (Android.Resource.Id.Text1) .Text = _items [position] .Title; view.FindViewById (Android.Resource.Id.Text2) .Text = string.Format ("0 sur 1", _items [position] .Creator, _items [position] .PubDate); retourner la vue;
Beurk. C'est beaucoup de code. C'est en fait assez simple cependant. Nous devons substituer quatre méthodes / propriétés sur la classe de base, BaseAdapter
. Dans notre cas, le paramètre générique va être notre RssItem
classe. Les trois premiers sont assez explicites.
ceci [int position]
renvoie un RssItem
à la position donnée dans le tableau.Compter
renvoie le nombre de RssItem
objets dans le tableau.GetItemId
renvoie le Id
d'un RssItem
à une position donnée, la position dans notre exemple.Le dernier remplacement, légèrement plus compliqué, est le GetView
méthode. Cette méthode obtient une instance du ListView
au sein de notre Activité
et Gonfler
comme un SimpleListItem2
, qui est un type de ListItem
Voir dans Android qui permet deux lignes de texte dans un seul élément. Nous plaçons ensuite la première ligne de texte sur RssItem.Title
propriété et la deuxième ligne de texte à une concaténation du RssItem.Creator
la propriété et la RssItem.PubDate
propriété.
Avec le kit adaptateur, nous pouvons nous concentrer sur le deuxième écran de notre application., WebActivité
.
[Activity (Label = "WebActivity")], classe publique WebActivity: Activity protected override void OnCreate (ensemble), base.OnCreate (un ensemble); SetContentView (Resource.Layout.WebActivity); WebView view = FindViewById(Resource.Id.DetailView); view.LoadUrl (Intent.GetStringExtra ("lien"));
La structure est semblable à celle de la FeedActivity
classe. Nous utilisons encore une fois le ActivityAttribute
pour décorer le WebActivité
classe. Il n'y a que trois lignes légèrement différentes dans cette méthode que nous n'avions pas rencontrées auparavant.
SetContentView (Resource.Layout.WebActivity);
le SetContentView
méthode est une méthode d'assistance agréable qui mappera notre C # Activité
classe dans le fichier de mise en page spécifié. Dans cet exemple, nous référons à la WebActivity.axml
fichier.
WebView view = FindViewById(Resource.Id.DetailView); view.LoadUrl (Intent.GetStringExtra ("lien"));
Les deux dernières lignes sont spécifiques à la WebView
contrôle dans notre mise en page. Nous utilisons le FindViewById
méthode pour obtenir une référence à la spécifiée WebView
contrôler et appeler le LoadUrl
méthode et passez les données qui ont été envoyées à cette Activité
, via un Intention
, du FeedActivity
classe.
Les derniers éléments du puzzle sont les fichiers de mise en page qui définissent l’emplacement et le nom des commandes sur les écrans individuels. Le premier est le Main.axml
déposer dans le Ressources / Mise en page
dossier dans votre solution. Remplacez simplement son contenu par ce qui suit:
Ensuite, créez un nouveau fichier de mise en page Android dans Ressources / Mise en page
dossier, nommez-le WebActivity.axml
, et remplacez son contenu par ce qui suit:
Une fois que vous avez terminé de créer tous les éléments de cette application, vous devriez être en mesure de la créer et de la déployer avec succès sur l'émulateur Android. Le processus de construction ressemble à n'importe quelle autre application créée dans Visual Studio. Vous pouvez déboguer votre application en appuyant sur F5 ou exécuter votre application à l'aide de Control-F5. La seule différence est que vous pouvez configurer un certain nombre d'options de déploiement. Pour ce tutoriel, nous sommes intéressés à exécuter l'application dans l'émulateur Android, mais si vous avez un périphérique physique, vous pouvez également exécuter votre application là-bas..
Dans la barre d'outils Xamarin.Android, vous avez plusieurs options différentes. Vous disposez d'un menu déroulant qui vous permet de spécifier la version Android à exécuter par l'émulateur. Pour cette application, j'ai choisi de fonctionner sur la dernière version d'Android, Android_API_19 ou KitKat au moment de la rédaction..
Si vous ne disposez pas de la version la plus récente du SDK, vous pouvez ouvrir Android SDK Manager et télécharger la version sur laquelle vous souhaitez exécuter votre application. Si vous ouvrez le gestionnaire de SDK Android, vous pouvez choisir parmi une multitude de versions de SDK Android différentes et quelques outils supplémentaires..
Vous avez également la possibilité de configurer les émulateurs disponibles ou de créer les vôtres. Ceci est fait via le gestionnaire d'émulateur Android dans lequel vous pouvez créer, éditer, copier et supprimer des émulateurs.
En cliquant sur le Nouveau ou modifier bouton à droite, une boîte de dialogue vous permettant de configurer l'émulateur vous est présentée..
Une fois que tout est configuré comme vous le souhaitez, le moment est venu d'exécuter votre application Android. Appuyez sur F5 et attendez le lancement de l'émulateur, ce qui peut prendre un certain temps. Il est donc judicieux de laisser l'émulateur ouvert afin de ne pas attendre qu'il démarre chaque fois que vous déployez votre application. Une fois que votre application s'exécute dans l'émulateur, vous devriez voir quelque chose comme ceci..
Votre vue peut différer légèrement en fonction de la configuration de l'émulateur. Tapez ou cliquez sur l’un des titres pour afficher une vue Web similaire à ce