Une introduction à Xamarin Partie 1

De modestes débuts

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.

Se lever et courir

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..

Étape 1: Installation

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..

Étape 2: Environnements de développement

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..

  • Vous n'êtes plus en mesure d'utiliser Visual Studio.
  • Votre application a une restriction de taille.

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.

Étape 3: Configuration

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..

SDK Android et emplacements NDK

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é..

Préserver les données d'application / cache sur le périphérique entre les déploiements

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..

Fournir des symboles de débogage pour les bibliothèques de classes d'exécution de base et partagées (Visual Studio uniquement)

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..

Arguments de lancement d'émulateur supplémentaires

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..

M'avertir des mises à jour (Visual Studio uniquement)

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.

Journalisation de débogage d'extension (écrit monodroid.log sur votre bureau) (Visual Studio uniquement)

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ù VERSIONest la version de Xamarin Studio que vous utilisez. Les fichiers sont créés dans ce dossier avec la convention de nommage de AndroidTools- DATA __ TIMERENDEZ-VOUS AMOUREUXest la date actuelle du déploiement et TEMPSest l'heure réelle du déploiement.

Code d'écriture

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..

Créons une application

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.

Créer un projet Xamarin.Android

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.

Écrire du code

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: BaseAdapter private 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:

   

Construire et déployer

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