9782746090750h

21
C# sous Windows Phone Christopher MANEU Développez et publiez vos applications sur le Store

Upload: yazinehajar

Post on 25-Sep-2015

212 views

Category:

Documents


0 download

DESCRIPTION

alire

TRANSCRIPT

  • C# sous Windows Phone

    ISBN

    : 97

    8-2-

    7460

    -907

    5-0

    29,9

    0

    Ce livre sur C# et Windows Phone (en versions 8 et 8.1 dans ces pages) sadresse tous les dveloppeurs qui souhaitent se lancer dans le dveloppe-ment dune application Windows Phone. Aucune connaissance des outils et langages de dveloppement Microsoft nest ncessaire.

    travers douze chapitres, louvrage dtaille de faon didactique ce type de dveloppement ; chaque concept prsent est systmatiquement accompa-gn dun exemple de code, permettant une application rapide. Les notions essentielles au dveloppement dapplications pour Windows Phone sont pas-ses en revue : les bases du dveloppement C#, la dcouverte de Visual Studio 2013, le dveloppement orient objet, la cration dinterfaces gra-phiques avec XAML, la gestion des donnes locales, lutilisation de services web, la gestion du cycle de vie dune application mobile, lutilisation des noti-fications Push, la montisation et la diffusion de son application dans le Windows Phone Store, etc

    La qualit et lergonomie de linterface utilisateur tant devenues des points critiques dans le succs dune application mobile, un chapitre dtaille les bases du design et de lergonomie, ainsi que la conception moderne Microsoft, permettant aux dveloppeurs de comprendre et dappliquer ces rgles dans leurs dveloppements.

    Ce livre peut tre lu de deux manires diffrentes. Il est possible de lutiliser comme support dautoformation et il est alors prfrable de lire les chapitres dans lordre ; la progression vous permettra de prendre en main lenvironne-ment de dveloppement Visual Studio et le langage C# avant daborder le dveloppement Windows Phone. Le niveau de dtail de la table des matires vous permet galement de lutiliser comme livre de rfrence au cours de vos dveloppements. Les exemples de codes tant indpendants entre les diffrents thmes, ils sont facilement transposables dans vos applications.

    Lauteur traite le dveloppement dapplications Silverlight Windows Phone 8.0 et Windows Phone 8.1 et propose des remarques au lecteur pour identi-fier les principaux points de diffrences avec les applications Windows univer-selles.

    Chaque exemple de code fait partie dun projet tlchargeable sur le site www.editions-eni.fr. Ainsi, le lecteur peut rapidement voir le code dans son contexte et le tester.

    Christopher MANEU

    Consultant et expert technique sur les solutions Microsoft, Christopher MANEU est Ingnieur UX Mobile chez Deezer. Il cre des interfaces ergonomiques pour terminaux mo-biles et en particulier pour Windows Phone. Il est reconnu Microsoft MVP (Most Valuable Professional) Windows Platform Development et a galement dtenu le titre de Nokia Developer Champion. Passionn par le dveloppement Windows Phone, il est trs actif auprs des commu-nauts et a souhait partager tra-vers les pages de ce livre toute son expertise et son savoir-faire dans le domaine.

    C# sous Windows PhoneDveloppez et publiez vos applications sur le Store

    Tlchargementwww.editions-eni.fr.fr

    sur www.editions-eni.fr : b Le code des exemples traits dans le livre.b Webographie. C#

    sous

    Win

    dows

    Pho

    ne

    Pour plus dinformations :

    Christopher MANEU

    Dveloppez et publiez vos applications sur le Store

    Les chapitres du livre

    Avant-propos Prsentation de Windows Phone Prsentation de Visual Studio Les bases du lan-gage C# La plateforme Windows Phone La programmation oriente objet La cration de linterface uti-lisateur La gestion des donnes Grer le cycle de vie dune applica-tion Aller plus loin avec linterface utilisateur Intgrer les applications Windows Phone Conception et ergonomie des applications Diffu-ser et faire voluer lapplication

  • 1Table des matires

    Avant-propos

    Chapitre 1Prsentation de Windows Phone

    1. Windows Phone, le tlphone selon Microsoft . . . . . . . . . . . . . . . . . . . . . . . 151.1 Une nouvelle manire de concevoir le tlphone . . . . . . . . . . . . . . . . . 171.2 Windows Phone aujourd'hui . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

    2. L'architecture de Windows Phone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202.1 Le matriel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202.2 La plateforme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

    2.2.1 Les options de dveloppement disponibles partir de Windows Phone 8.0. . . . . . . . . . . . . . . . . . . . . . . . . . 22

    2.2.2 Windows Phone 8.1 et les applications universelles . . . . . . . . . 232.2.3 Le dveloppement de jeux vido. . . . . . . . . . . . . . . . . . . . . . . . . 252.2.4 Les modes d'excution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

    2.3 Windows Phone et Windows 8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

    3. Le langage C# et le framework .NET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283.1 Le Common Language Runtime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303.2 La Base Class Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323.3 .NET dans Windows Phone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

    Les lments tlcharger sont disponibles l'adresse suivante : http://www.editions-eni.fr

    Saisissez la rfrence ENI de l'ouvrage RIWPCSHA dans la zone de recherche et validez. Cliquez sur le titre du livre puis sur le bouton de tlchargement.

  • 2Dveloppez et publiez vos applications sur le Store

    C# sous Windows Phone

    Chapitre 2Prsentation de Visual Studio

    1. Installation et premier dmarrage. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351.1 Configuration ncessaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

    1.1.1 Configuration requise pour Visual Studio 2013. . . . . . . . . . . . . 351.1.2 Configuration spcifique requise

    pour l'mulateur Windows Phone 8 . . . . . . . . . . . . . . . . . . . . . . 371.1.3 Configuration requise pour le dploiement

    sur tlphone physique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391.2 Installation du kit de dveloppement Windows Phone 8 . . . . . . . . . . 40

    2. Dcouverte de Visual Studio 2013 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 462.1 Dcouverte de l'environnement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 462.2 Les solutions et les projets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

    2.2.1 Les solutions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 512.2.2 Les projets. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

    2.3 Les outils de cration d'interfaces graphiques . . . . . . . . . . . . . . . . . . . . 602.3.1 Designer XAML de Visual Studio . . . . . . . . . . . . . . . . . . . . . . . . 602.3.2 Blend pour Visual Studio. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

    3. Dcouverte du kit de dveloppement Windows Phone 8.1 . . . . . . . . . . . . . 683.1 L'intgration Visual Studio 2013 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 693.2 Utilisation de l'mulateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 703.3 Outil d'enregistrement du tlphone dveloppeur . . . . . . . . . . . . . . . . 813.4 Outil de dploiement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 823.5 Le Windows App Certification Kit . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

    4. Cration des solutions et des projets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 854.1 Les diffrents types de projets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 854.2 Cration d'un premier projet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 874.3 Dploiement et test des applications. . . . . . . . . . . . . . . . . . . . . . . . . . . 924.4 Dboguer votre application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

    4.4.1 Lancer une application avec le dbogueur et analyser les exceptions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

    4.4.2 Analyser l'excution d'une application . . . . . . . . . . . . . . . . . . . . 944.4.3 Fonctionnalits de dbogage avances . . . . . . . . . . . . . . . . . . . . 97

  • 3Table des matires

    Chapitre 3Les bases du langage C#

    1. Les variables, constantes, structures et numrations . . . . . . . . . . . . . . . . 1011.1 Les variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101

    1.1.1 Dfinition d'une variable. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1011.1.2 Types de variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1021.1.3 Types de donnes valus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1031.1.4 Types de donnes rfrences. . . . . . . . . . . . . . . . . . . . . . . . . . . 1051.1.5 Porte d'une variable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1081.1.6 Conversions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109

    1.2 Les numrations et les constantes . . . . . . . . . . . . . . . . . . . . . . . . . . . 1151.2.1 Les numrations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1151.2.2 Les constantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117

    1.3 Les tableaux et les listes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1181.3.1 Les tableaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1181.3.2 Les listes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119

    2. Les oprateurs et les structures de contrle . . . . . . . . . . . . . . . . . . . . . . . . . 1202.1 Les oprateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120

    2.1.1 Oprateurs d'assignation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1202.1.2 Oprateurs de comparaison . . . . . . . . . . . . . . . . . . . . . . . . . . . 121

    2.2 Structures de choix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1212.2.1 If . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1212.2.2 Switch. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122

    2.3 Structures de boucles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1232.3.1 For. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1232.3.2 Foreach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1232.3.3 While . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1242.3.4 Do while . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1242.3.5 Break et continue. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124

    3. Les procdures et les fonctions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1253.1 Dclaration et usage d'une procdure . . . . . . . . . . . . . . . . . . . . . . . . . 1253.2 Dclaration et usage d'une fonction . . . . . . . . . . . . . . . . . . . . . . . . . . 1263.3 Les paramtres des mthodes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1273.4 Les proprits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129

  • 4Dveloppez et publiez vos applications sur le Store

    C# sous Windows Phone

    Chapitre 4La plateforme Windows Phone

    1. La programmation vnementielle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1311.1 Les vnements en .NET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131

    1.1.1 Traitement d'un vnement . . . . . . . . . . . . . . . . . . . . . . . . . . . 1311.1.2 Cration d'un vnement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135

    1.2 La programmation vnementielle avec XAML . . . . . . . . . . . . . . . . . 1371.2.1 L'utilisation des vnements en XAML . . . . . . . . . . . . . . . . . . 1371.2.2 Les vnements routs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139

    2. La programmation XAML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1402.1 Prsentation de XAML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1402.2 Les bases de XAML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141

    2.2.1 Syntaxe des lments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1412.2.2 Structure d'un fichier XAML. . . . . . . . . . . . . . . . . . . . . . . . . . . 1432.2.3 Interactions avec le code C#. . . . . . . . . . . . . . . . . . . . . . . . . . . 145

    2.3 Sparer les traitements graphiques et mtiers. . . . . . . . . . . . . . . . . . . 146

    3. Le modle d'application Windows Phone. . . . . . . . . . . . . . . . . . . . . . . . . . . 1493.1 Le contenu d'un projet Windows Phone . . . . . . . . . . . . . . . . . . . . . . . 149

    3.1.1 Les fichiers et dossiers du projet . . . . . . . . . . . . . . . . . . . . . . . . 1503.1.2 Le manifeste de l'application . . . . . . . . . . . . . . . . . . . . . . . . . . . 1503.1.3 Le fichier App.xaml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151

    3.2 Le cycle de vie d'une application Windows Phone . . . . . . . . . . . . . . . 1523.2.1 Tombstoning et Fast app resume . . . . . . . . . . . . . . . . . . . . . . . 1533.2.2 Le cycle de navigation d'une application Windows Phone . . . 154

    Chapitre 5La programmation oriente objet

    1. Introduction la programmation oriente objet . . . . . . . . . . . . . . . . . . . . . 155

    2. Les classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1562.1 Dclaration d'une classe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156

    2.1.1 Les variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1572.1.2 Les mthodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1582.1.3 Le constructeur. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1592.1.4 Le destructeur. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160

  • 5Table des matires

    2.1.5 Les proprits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1632.1.6 Indexeurs et oprateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166

    2.2 Utilisation d'une classe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1692.3 Membres statiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170

    3. L'hritage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1703.1 Cration d'une classe hrite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1713.2 Classes abstraites et finales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177

    4. Les interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1794.1 Dclaration d'une interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1794.2 Utilisation d'une interface dans une classe . . . . . . . . . . . . . . . . . . . . . 180

    5. La gestion des exceptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1805.1 La structure try-catch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1815.2 La leve et la cration d'exceptions . . . . . . . . . . . . . . . . . . . . . . . . . . . 1845.3 La gestion des exceptions avec Windows Phone . . . . . . . . . . . . . . . . 185

    6. Les expressions lambda et les types anonymes . . . . . . . . . . . . . . . . . . . . . . 185

    Chapitre 6La cration de l'interface utilisateur

    1. Organiser et positionner les contrles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1871.1 Retour sur XAML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1871.2 Les proprits lies au positionnement . . . . . . . . . . . . . . . . . . . . . . . . 192

    1.2.1 Width et Height. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1921.2.2 Les alignements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1931.2.3 Margin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1951.2.4 Un mot sur les pixels logiques . . . . . . . . . . . . . . . . . . . . . . . . . 1951.2.5 Padding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1971.2.6 ZIndex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197

    1.3 Les conteneurs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1981.3.1 Grid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1981.3.2 StackPanel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2011.3.3 Canvas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2011.3.4 Border . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2021.3.5 ScrollViewer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203

  • 6Dveloppez et publiez vos applications sur le Store

    C# sous Windows Phone

    1.4 La fentre popup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2041.4.1 MessageBox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2041.4.2 Popup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205

    2. Utiliser les contrles standards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2062.1 Les contrles de texte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206

    2.1.1 TextBlock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2062.1.2 TextBox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2082.1.3 PasswordBox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210

    2.2 Les boutons et contrles de slection. . . . . . . . . . . . . . . . . . . . . . . . . . 2102.2.1 Button. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2102.2.2 CheckBox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2112.2.3 RadioButton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2122.2.4 Slider . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2132.2.5 ProgressBar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214

    2.3 Les listes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2142.3.1 ListBox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2142.3.2 LongListSelector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217

    2.4 Les contrles multimdias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2242.4.1 Image . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2242.4.2 MediaElement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2252.4.3 WebBrowser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226

    3. Personnaliser l'apparence de son application . . . . . . . . . . . . . . . . . . . . . . . . 2283.1 Les ressources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229

    3.1.1 Dclarer et utiliser des ressources . . . . . . . . . . . . . . . . . . . . . . . 2293.1.2 Regrouper des ressources dans

    des dictionnaires de ressources . . . . . . . . . . . . . . . . . . . . . . . . . 2313.2 Les styles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2323.3 Les modles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2333.4 La typographie. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236

    3.4.1 Les proprits typographiques. . . . . . . . . . . . . . . . . . . . . . . . . . 2363.4.2 Utiliser une police personnalise. . . . . . . . . . . . . . . . . . . . . . . . 2373.4.3 Utiliser des polices de symbole . . . . . . . . . . . . . . . . . . . . . . . . . 238

    3.5 Adapter l'interface l'orientation et aux diffrentes rsolutions. . . . 2403.5.1 Grer les diffrentes orientations . . . . . . . . . . . . . . . . . . . . . . . 2403.5.2 Grer les diffrentes rsolutions d'cran . . . . . . . . . . . . . . . . . . 243

  • 7Table des matires

    4. Grer la navigation au sein de son application . . . . . . . . . . . . . . . . . . . . . . 2474.1 Naviguer entre les diffrentes pages . . . . . . . . . . . . . . . . . . . . . . . . . . 247

    4.1.1 Le systme de navigation de Windows Phone . . . . . . . . . . . . . 2474.1.2 Passage de paramtres entre les pages . . . . . . . . . . . . . . . . . . . 248

    4.2 Personnaliser la navigation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2504.2.1 Revenir la page prcdente . . . . . . . . . . . . . . . . . . . . . . . . . . . 2504.2.2 Supprimer l'historique de navigation . . . . . . . . . . . . . . . . . . . . 2504.2.3 Empcher le retour en arrire . . . . . . . . . . . . . . . . . . . . . . . . . . 251

    4.3 Intgrer la navigation son application . . . . . . . . . . . . . . . . . . . . . . . 2514.3.1 Utiliser les HyperLinkButton . . . . . . . . . . . . . . . . . . . . . . . . . . 2514.3.2 Personnaliser les liens avec un UriMapper . . . . . . . . . . . . . . . . 252

    5. Animer l'interface utilisateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2535.1 Animer son interface avec les storyboards . . . . . . . . . . . . . . . . . . . . . 253

    5.1.1 Cration des storyboards en XAML . . . . . . . . . . . . . . . . . . . . . 2535.1.2 Cration des storyboards en C#. . . . . . . . . . . . . . . . . . . . . . . . 2565.1.3 Animations et performances. . . . . . . . . . . . . . . . . . . . . . . . . . . 258

    5.2 Animer un contrle avec les tats visuels . . . . . . . . . . . . . . . . . . . . . . 2585.2.1 Personnaliser les tats visuels de contrles existants . . . . . . . 2585.2.2 Cration d'tats visuels pour les pages . . . . . . . . . . . . . . . . . . . 261

    5.3 Utiliser les animations signatures de Windows Phone . . . . . . . . . . . 2615.3.1 Utilisation du Tilt Effect. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2615.3.2 Animer les transitions de pages . . . . . . . . . . . . . . . . . . . . . . . . 263

    Chapitre 7La gestion des donnes

    1. Lier les donnes mtiers l'interface utilisateur . . . . . . . . . . . . . . . . . . . . . 2651.1 Utiliser le binding et le contexte de donnes . . . . . . . . . . . . . . . . . . . 265

    1.1.1 Principes du binding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2651.1.2 Crer une classe source supportant la liaison . . . . . . . . . . . . . 2671.1.3 Convertir ses donnes pour l'affichage. . . . . . . . . . . . . . . . . . . 2691.1.4 Les options de gestion du binding . . . . . . . . . . . . . . . . . . . . . . 271

    1.2 Afficher des donnes dans les outils de conception . . . . . . . . . . . . . . 2711.2.1 Utiliser un fichier XAML pour les donnes . . . . . . . . . . . . . . . 2721.2.2 Crer une classe de donnes . . . . . . . . . . . . . . . . . . . . . . . . . . . 275

  • 8Dveloppez et publiez vos applications sur le Store

    C# sous Windows Phone

    2. Utiliser le systme de fichiers et grer les paramtres . . . . . . . . . . . . . . . . . 2762.1 Manipuler les fichiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276

    2.1.1 Lire et crire des fichiers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2762.1.2 Grer les fichiers et les dossiers . . . . . . . . . . . . . . . . . . . . . . . . . 2792.1.3 Synchroniser des fichiers entre les priphriques

    d'un utilisateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2842.1.4 Accder aux fichiers de l'utilisateur. . . . . . . . . . . . . . . . . . . . . . 285

    2.2 Scuriser les donnes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2912.3 Grer les paramtres de l'utilisateur. . . . . . . . . . . . . . . . . . . . . . . . . . . 294

    2.3.1 Paramtres locaux des utilisateurs . . . . . . . . . . . . . . . . . . . . . . 2942.3.2 Synchroniser les paramtres utilisateurs . . . . . . . . . . . . . . . . . 296

    2.4 Partager les donnes avec d'autres applications . . . . . . . . . . . . . . . . . 2972.4.1 Partager des donnes via le presse-papiers . . . . . . . . . . . . . . . . 2982.4.2 Partager des donnes via le contrat de partage. . . . . . . . . . . . . 298

    3. Interagir avec les services web. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3023.1 Effectuer des requtes HTTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303

    3.1.1 Effectuer une requte de type GET. . . . . . . . . . . . . . . . . . . . . . 3033.1.2 Effectuer une requte de type POST . . . . . . . . . . . . . . . . . . . . 3053.1.3 Effectuer une requte personnalise . . . . . . . . . . . . . . . . . . . . . 3073.1.4 Communiquer avec des services web SOAP . . . . . . . . . . . . . . 307

    3.2 Analyser les rponses des services web . . . . . . . . . . . . . . . . . . . . . . . . 3083.2.1 Analyser les rponses au format JSON. . . . . . . . . . . . . . . . . . . 3083.2.2 Analyser les rponses au format XML . . . . . . . . . . . . . . . . . . . 312

    3.3 S'authentifier auprs des services web. . . . . . . . . . . . . . . . . . . . . . . . . 3143.3.1 Utiliser l'authentification basique . . . . . . . . . . . . . . . . . . . . . . 3143.3.2 Utiliser l'authentification par en-ttes HTTP . . . . . . . . . . . . . 3153.3.3 Utiliser l'authentification OAuth . . . . . . . . . . . . . . . . . . . . . . . 315

    4. Utiliser une base de donnes embarque . . . . . . . . . . . . . . . . . . . . . . . . . . . 3164.1 Ajouter le support des bases de donnes SQLite au projet. . . . . . . . . 3174.2 Se connecter la base et crer des tables . . . . . . . . . . . . . . . . . . . . . . . 321

    4.2.1 Prparer les classes reprsentant les tables . . . . . . . . . . . . . . . . 3214.2.2 Se connecter la base et crer les tables . . . . . . . . . . . . . . . . . . 3224.2.3 Excuter des requtes SQL brutes . . . . . . . . . . . . . . . . . . . . . . . 323

    4.3 Effectuer les oprations CRUD sur la base . . . . . . . . . . . . . . . . . . . . . 3234.3.1 Ajouter un enregistrement . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3244.3.2 Modifier un enregistrement . . . . . . . . . . . . . . . . . . . . . . . . . . . 3244.3.3 Supprimer un enregistrement . . . . . . . . . . . . . . . . . . . . . . . . . . 325

  • 9Table des matires

    4.3.4 Lire l'ensemble des enregistrements d'une table . . . . . . . . . . . 3254.3.5 Requter certains enregistrements d'une table . . . . . . . . . . . . 326

    Chapitre 8Grer le cycle de vie d'une application

    1. Grer les diffrents tats de l'application . . . . . . . . . . . . . . . . . . . . . . . . . . . 3271.1 Grer l'activation et la dsactivation d'une application . . . . . . . . . . . 327

    1.1.1 Le lancement de l'application . . . . . . . . . . . . . . . . . . . . . . . . . . 3281.1.2 La dsactivation de l'application. . . . . . . . . . . . . . . . . . . . . . . . 3291.1.3 L'activation de l'application . . . . . . . . . . . . . . . . . . . . . . . . . . . 331

    1.2 Grer le Fast App Resume . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3321.3 Dtecter et modifier la mise en veille . . . . . . . . . . . . . . . . . . . . . . . . . 334

    2. Structurer son code avec MVVM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3362.1 Un peu de thorie autour de MVVM . . . . . . . . . . . . . . . . . . . . . . . . . 336

    2.1.1 Pourquoi MVVM ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3362.1.2 L'architecture MVVM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3372.1.3 Quelques dtails sur l'architecture MVVM . . . . . . . . . . . . . . . 337

    2.2 Mettre en place l'architecture MVVM . . . . . . . . . . . . . . . . . . . . . . . . 3382.2.1 Cration du modle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3382.2.2 Cration de la vue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3402.2.3 Mise en place du ViewModel . . . . . . . . . . . . . . . . . . . . . . . . . . 3432.2.4 Lier la vue au ViewModel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3452.2.5 Ragir aux interactions des utilisateurs avec les commandes. 346

    3. Excuter du code en arrire-plan. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3493.1 Utiliser un agent de tches planifies . . . . . . . . . . . . . . . . . . . . . . . . . 349

    3.1.1 Les types d'agents de tches planifies . . . . . . . . . . . . . . . . . . . 3493.1.2 L'implmentation d'un agent de tches planifies. . . . . . . . . . 3503.1.3 Les bonnes pratiques du dveloppement

    d'agents de tches planifies . . . . . . . . . . . . . . . . . . . . . . . . . . . 3533.2 Tlcharger des donnes en arrire-plan . . . . . . . . . . . . . . . . . . . . . . . 354

    3.2.1 Tlcharger un fichier en arrire-plan. . . . . . . . . . . . . . . . . . . . 3553.2.2 Envoyer un fichier sur un serveur en arrire-plan . . . . . . . . . . 357

    3.3 Les tats d'excution en arrire-plan spcifiques . . . . . . . . . . . . . . . . 3593.3.1 Audio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3593.3.2 L'envoi de photos en arrire-plan . . . . . . . . . . . . . . . . . . . . . . . 360

  • 10Dveloppez et publiez vos applications sur le Store

    C# sous Windows Phone

    3.3.3 Application de suivi de la localisation. . . . . . . . . . . . . . . . . . . . 360

    4. Partager du code avec une autre plateforme . . . . . . . . . . . . . . . . . . . . . . . . 3604.1 Partager des assemblies avec la PCL. . . . . . . . . . . . . . . . . . . . . . . . . . . 3614.2 Partager des fichiers sources entre projets . . . . . . . . . . . . . . . . . . . . . . 3624.3 Quelques techniques pour le partage de code . . . . . . . . . . . . . . . . . . . 364

    4.3.1 L'utilisation d'interfaces et d'implmentations par plateforme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365

    4.3.2 L'utilisation de classes partielles . . . . . . . . . . . . . . . . . . . . . . . . 365

    Chapitre 9Aller plus loin avec l'interface utilisateur

    1. Une interface plus agrable avec les contrles signatures et le Windows Phone Toolkit . . . . . . . . . . . . . . . . . . . . . . . . . . . 3671.1 Les contrles signatures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367

    1.1.1 Le contrle Pivot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3671.1.2 Le contrle Panorama . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3711.1.3 La barre d'application. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374

    1.2 Les contrles du Windows Phone Toolkit. . . . . . . . . . . . . . . . . . . . . . 3781.2.1 Le contrle ToggleSwitch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3781.2.2 Les menus contextuels. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3791.2.3 Le ListPicker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3821.2.4 Le champ de saisie avec autocompltion . . . . . . . . . . . . . . . . . 384

    2. Intgrer le contrle de cartographie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3872.1 Afficher une carte avec la position courante . . . . . . . . . . . . . . . . . . . . 387

    2.1.1 Rcuprer la position courante de l'utilisateur. . . . . . . . . . . . . 3882.1.2 Intgrer et manipuler le contrle de cartographie . . . . . . . . . . 3912.1.3 Utilisation avance du contrle de cartographie . . . . . . . . . . . 394

    2.2 Afficher des donnes sur une carte . . . . . . . . . . . . . . . . . . . . . . . . . . . 3972.2.1 Ajouter des points sur une carte . . . . . . . . . . . . . . . . . . . . . . . . 3972.2.2 Ajouter des tracs et des formes gomtriques sur une carte . 3982.2.3 Ajouter des objets sur une carte . . . . . . . . . . . . . . . . . . . . . . . . 400

    2.3 Guider l'utilisateur en dplacement . . . . . . . . . . . . . . . . . . . . . . . . . . . 4022.3.1 Suivre la position de l'utilisateur en continu . . . . . . . . . . . . . . 4022.3.2 Calculer un itinraire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4052.3.3 Rediriger l'utilisateur vers l'application de navigation. . . . . . . 408

  • 11Table des matires

    3. Utiliser la voix comme moyen d'interaction . . . . . . . . . . . . . . . . . . . . . . . . 4093.1 Lancer l'application grce la voix . . . . . . . . . . . . . . . . . . . . . . . . . . . 409

    3.1.1 Utiliser les commandes vocales pour lancer l'application . . . . 4093.1.2 Personnaliser les commandes vocales lors de l'excution . . . . 414

    3.2 Utiliser la reconnaissance vocale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4143.2.1 Reconnatre du texte libre. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4143.2.2 Reconnatre une grammaire prtablie . . . . . . . . . . . . . . . . . . 416

    3.3 Parler l'utilisateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4173.3.1 Dicter un texte simple. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4173.3.2 Personnaliser l'expression de la voix . . . . . . . . . . . . . . . . . . . . . 418

    4. Adapter l'interface pour diffrentes langues et cultures . . . . . . . . . . . . . . . 4194.1 La gestion de l'internationalisation dans Windows Phone . . . . . . . . 419

    4.1.1 Pourquoi internationaliser l'application ? . . . . . . . . . . . . . . . . 4194.1.2 Le processus d'internationalisation. . . . . . . . . . . . . . . . . . . . . . 421

    4.2 Traduire l'application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4234.2.1 Traduire les lments de l'interface . . . . . . . . . . . . . . . . . . . . . 4234.2.2 Traduire les lments prsents dans votre code . . . . . . . . . . . 4244.2.3 Ajouter des langues l'application . . . . . . . . . . . . . . . . . . . . . . 424

    4.3 Adapter l'application aux diffrences rgionales. . . . . . . . . . . . . . . . . 4264.3.1 Adapter les dates et heures . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4264.3.2 Adapter l'affichage des devises . . . . . . . . . . . . . . . . . . . . . . . . . 427

    Chapitre 10Intgrer les applications Windows Phone

    1. Utiliser l'cran d'accueil et les notifications . . . . . . . . . . . . . . . . . . . . . . . . . 4291.1 Crer des tuiles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 430

    1.1.1 Personnaliser la tuile principale . . . . . . . . . . . . . . . . . . . . . . . . 4311.1.2 Crer des tuiles secondaires. . . . . . . . . . . . . . . . . . . . . . . . . . . . 434

    1.2 Utiliser les notifications locales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4361.2.1 Envoyer un toast . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4361.2.2 Grer le centre de notifications. . . . . . . . . . . . . . . . . . . . . . . . . 4391.2.3 Mettre jour les tuiles rgulirement . . . . . . . . . . . . . . . . . . . 441

    1.3 Utiliser les notifications push depuis un serveur . . . . . . . . . . . . . . . . 4421.3.1 Rcuprer un canal de communication pour un tlphone . . 4431.3.2 Envoyer une notification. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444

  • 12Dveloppez et publiez vos applications sur le Store

    C# sous Windows Phone

    1.3.3 Grer les notifications lors de lexcution . . . . . . . . . . . . . . . . 448

    2. S'intgrer aux autres applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4492.1 Lancer les applications systme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4492.2 Associer l'application un protocole . . . . . . . . . . . . . . . . . . . . . . . . . . 4512.3 Associer l'application un type de fichiers . . . . . . . . . . . . . . . . . . . . . 453

    3. Utiliser l'environnement du tlphone. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4563.1 Utiliser l'emplacement gographique de l'utilisateur . . . . . . . . . . . . . 456

    3.1.1 Mettre en place une geofence . . . . . . . . . . . . . . . . . . . . . . . . . . 4573.1.2 Grer les vnements geofence dans l'application . . . . . . . . . . 4593.1.3 Grer les vnements geofence en arrire-plan . . . . . . . . . . . . 460

    3.2 Utiliser les informations de positionnement dans l'espace . . . . . . . . 4633.2.1 Connatre l'orientation avec le compas . . . . . . . . . . . . . . . . . . 4643.2.2 Ragir aux mouvements du tlphone avec l'API Motion . . . 465

    3.3 changer des donnes par contact avec le NFC . . . . . . . . . . . . . . . . . 4703.3.1 changer de l'information avec un priphrique NFC. . . . . . . 4703.3.2 Communiquer entre deux priphriques proximit . . . . . . . 474

    Chapitre 11Conception et ergonomie des applications

    1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 479

    2. Le processus de conception d'une application mobile . . . . . . . . . . . . . . . . . 4792.1 L'ide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 480

    2.1.1 Rflchir, imaginer et construire son ide . . . . . . . . . . . . . . . . 4812.1.2 Consolider ses ides . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485

    2.2 L'architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4862.2.1 tablir la structure de l'application . . . . . . . . . . . . . . . . . . . . . . 4862.2.2 Peut-on commencer dvelopper ds maintenant ? . . . . . . . . 488

    2.3 L'ergonomie et l'interaction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4882.3.1 Rflchir ses crans avec le sketching et le wireframing. . . . 4882.3.2 Les autres types d'interactions . . . . . . . . . . . . . . . . . . . . . . . . . 493

    2.4 Le visuel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 493

  • 13Table des matires

    3. Les principes de design et d'ergonomie de Windows Phone . . . . . . . . . . . . 4953.1 L'origine de la "conception moderne Microsoft" . . . . . . . . . . . . . . . . . 4953.2 Les principes de la conception moderne Microsoft . . . . . . . . . . . . . . 496

    3.2.1 Fiert de notre savoir-faire . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4963.2.2 Faire plus avec moins. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4973.2.3 Rapidit et fluidit. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4983.2.4 Numrique authentique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4993.2.5 Gain collectif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 499

    4. Quelques notions de design pour le dveloppeur . . . . . . . . . . . . . . . . . . . . 5004.1 La typographie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5004.2 Les couleurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5064.3 La mise en page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 511

    5. Quelques notions d'ergonomie pour le dveloppeur . . . . . . . . . . . . . . . . . . 5125.1 L'affordance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5125.2 La loi de Fitts et la disposition des contrles . . . . . . . . . . . . . . . . . . . 5135.3 Le nombre de Miller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514

    6. Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 515

    Chapitre 12Diffuser et faire voluer lapplication

    1. Prparer et tester son application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5171.1 Tester la performance et la ractivit de son application. . . . . . . . . . 517

    1.1.1 Utiliser les compteurs de performances . . . . . . . . . . . . . . . . . . 5171.1.2 Utiliser les outils de performances . . . . . . . . . . . . . . . . . . . . . . 519

    1.2 Tester le fonctionnement de son application . . . . . . . . . . . . . . . . . . . 5241.2.1 Utiliser les tests unitaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5241.2.2 S'assurer du fonctionnement de lapplication

    dans toutes les situations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 527

    2. Soumettre son application sur le Windows Phone Store . . . . . . . . . . . . . . 5282.1 Crer un compte dveloppeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5282.2 Soumettre une application en accs bta . . . . . . . . . . . . . . . . . . . . . . 5302.3 Soumettre une application publique . . . . . . . . . . . . . . . . . . . . . . . . . . 5342.4 Les autres types de soumission . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 535

    2.4.1 Soumettre une mise jour . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5352.4.2 Soumettre une application cache . . . . . . . . . . . . . . . . . . . . . . 537

  • 14Dveloppez et publiez vos applications sur le Store

    C# sous Windows Phone

    2.4.3 Dploiement d'applications d'entreprise. . . . . . . . . . . . . . . . . . 538

    3. Montiser son application. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5383.1 Vendre son application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 539

    3.1.1 Paramtrer la vente de son application. . . . . . . . . . . . . . . . . . . 5393.1.2 Proposer une exprience d'essai . . . . . . . . . . . . . . . . . . . . . . . . . 541

    3.2 Utiliser les achats additionnels. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5423.2.1 Intgrer les achats additionnels dans son application . . . . . . . 5423.2.2 Tester les achats additionnels . . . . . . . . . . . . . . . . . . . . . . . . . . 545

    3.3 Rmunrer son application via la publicit . . . . . . . . . . . . . . . . . . . . . 5473.3.1 Les principes de la publicit sur mobile . . . . . . . . . . . . . . . . . . 5473.3.2 Intgrer le SDK Microsoft Advertising . . . . . . . . . . . . . . . . . . . 549

    4. Surveiller et grer son application publie . . . . . . . . . . . . . . . . . . . . . . . . . . 5534.1 Utiliser les outils du tableau de bord . . . . . . . . . . . . . . . . . . . . . . . . . . 553

    4.1.1 Suivre les tlchargements et les commentaires des utilisateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 553

    4.1.2 Suivre les exceptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5554.2 Utiliser des outils tiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 556

    4.2.1 Utiliser un outil de suivi des exceptions. . . . . . . . . . . . . . . . . . 5564.2.2 Contrler son application distance . . . . . . . . . . . . . . . . . . . . 557

    Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 559

  • 187

    Chapitre 6

    La cration de l'interface utilisateur

    La cration de l'interface utilisateur

    1. Organiser et positionner les contrles

    1.1 Retour sur XAML

    Nous avons dj abord l'criture de code XAML dans le chapitre La plateforme Win-dows Phone. Ce chapitre va aborder les dtails de la cration de vos interfaces utilisa-teur avec ce langage.La plateforme XAML disponible sous Windows Phone 8 (qui peut diffrer des autresplateformes disponibles, par exemple, pour les applications Windows Store ou WPF)offre un ensemble de contrles afin de crer votre interface. Ces contrles partagentun ensemble de proprits ou de comportements. Nous allons tout d'abord nous pen-cher sur ces similitudes avant de voir ce que ces contrles peuvent vous apporter.

    Remarque

    Il existe des contrles crs par des socits (telles que Telerik) ou disponibles souslicences libres. Ils peuvent vous faire gagner du temps ou enrichir rapidement vos appli-cations. Nous verrons une partie de ces contrles dans le chapitre Aller plus loin aveclinterface utilisateur.

    Tous les contrles disponibles sont accessibles directement via l'Intellisense dans unfichier XAML, ou depuis la barre d'outils. Si vous positionnez le curseur de l'diteur ausein d'une balise XAML et que vous appuyez sur la touche [F1] de votre clavier, lenavigateur s'ouvre directement sur la page d'aide du contrle courant.

  • E

    dit

    ions

    EN

    I -

    All r

    ights

    rese

    rved

    188Dveloppez et publiez vos applications sur le Store

    C# sous Windows Phone

    Cette page nous apporte plusieurs informations intressantes. Tout d'abord, cela nouspermet de nous remmorer que tous les objets graphiques ne sont que des classes. Ilssont donc accessibles galement depuis du code C#, que cela soit pour crer desobjets, ou pour modifier les proprits d'objets dfinis dans du code XAML. La docu-mentation en ligne apporte galement des exemples de code pour utiliser cescontrles.

  • 189La cration de l'interface utilisateurChapitre 6

    Remarque

    Il vous est possible de consulter la documentation sans connexion Internet. La proc-dure est explique sur http://blog.maneu.net/acceder-a-la-documentation-visual-stu-dio-windows-phone-net-hors-connexion/.

    Cette page de documentation nous apporte galement une autre information intres-sante : la hirarchie d'hritage. Tous les contrles graphiques hritent de la classeDispatcherObject. Ils sont donc intgrs au thread Dispatcher que nous avonsabord dans le chapitre La plateforme Windows Phone. D'autres classes parentesapportent des proprits utiles pour un grand nombre de contrles, telles que les pro-prits Width et Height que nous aborderons plus loin dans ce chapitre.Avant de nous pencher sur les proprits directement lies au positionnement, il fautcomprendre comment fonctionne le moteur XAML pour calculer la mise en page desobjets graphiques. Lorsqu'une proprit impactant le positionnement change devaleur, telle que Height ou HorizontalAlignment, le recalcul de l'cran n'est paseffectu directement. C'est le systme qui dcide quand est excut le prochain cyclede mise en page. Celui-ci est ralis en deux phases: Measure et Arrange.

  • E

    dit

    ions

    EN

    I -

    All r

    ights

    rese

    rved

    190Dveloppez et publiez vos applications sur le Store

    C# sous Windows Phone

    La phase Measure va dterminer la taille ncessaire l'objet pour tre dessin. Lamthode Measure() est ainsi appele sur tous les contrles qui vont en retour indi-quer la taille d'affichage qu'ils demandent. partir de ces rsultats, la phase Arrangeva finir le processus de mise en page en dfinissant ainsi la taille relle qu'obtiendrachacun des contrles. La manire dont la taille de chaque lment est dterminedpend des objets conteneurs, que nous verrons en dtail plus loin dans ce chapitre.

    Remarque

    Ce principe de fonctionnement a de nombreuses implications, notamment en termesde performances, ou dans les animations. Il est donc important de le conserver l'espritds que l'on cre des animations ou que l'on modifie via le code des proprits impac-tant le positionnement.

    Pour calculer la mise en page d'une page entire, il suffit que le systme appelle lesmthodes Measure() et Arrange() sur le contrle enfant de la page. Il va ainsiappeler ces deux mmes mthodes sur l'ensemble de ses enfants, qui vont faire demme et ainsi de suite, afin de couvrir l'ensemble de la hirarchie des contrles. Cettehirarchie de contrles XAML n'a rien voir avec la notion d'hritage telle qu'onl'a vu en C#, ou au dbut de ce chapitre. Il s'agit ici de l'ensemble de l'arborescence decontrles qui a t dfinie en XAML (ou en C#). On peut visualiser cette hirarchiedans l'diteur XAML avec le panneau Structure du document.

  • 191La cration de l'interface utilisateurChapitre 6

    Cette structure, et l'ordre des contrles dans cette hirarchie, a un impact sur la miseen page. Par exemple, prenons le code utilis dans la capture d'cran prcdente. Nouspouvons voir qu'au sein de l'lment Grid nomm ContentPanel, nous avons dfi-ni deux contrles Border. Un seul de ces lments est visible, celui qui a t dfini endernier dans le code XAML.

    Si nous inversons les deux blocs afin que le pav 1 soit dclar en dernier, c'est bien cesecond pav qui est visible. Ce comportement est d deux facteurs : le fonctionne-ment du contrle Grid, et l'ordre de dclaration. Les contrles dclars en fin defichier ont la priorit sur ceux dclars prcdemment.

  • E

    dit

    ions

    EN

    I -

    All r

    ights

    rese

    rved

    192Dveloppez et publiez vos applications sur le Store

    C# sous Windows Phone

    1.2 Les proprits lies au positionnement

    1.2.1 Width et Height

    De nombreuses proprits peuvent affecter directement le positionnement. Danscette liste, Width et Height sont certainement les plus simples. Elles permettent,respectivement, d'indiquer la largeur et la hauteur souhaites. Afin de mieux com-prendre comment ces deux proprits fonctionnent, nous allons prendre les quatreexemples suivants, en appliquant ces proprits sur les objets Border.

    Le premier bloc n'a aucune de ces proprits dfinie explicitement. C'est donc l'objetparent ici le StackPanel qui va dterminer la hauteur et la largeur de ce bloc.Dans le second bloc, nous avons explicitement dfini une largeur, exprime en pixels.Cette largeur tant infrieure la largeur du StackPanel parent, elle est directe-ment applique. Il est possible de dfinir une largeur ou une hauteur plus grande quela taille dont nous disposons, mais le rsultat dpend alors du conteneur utilis.Le troisime bloc a le mme positionnement que le premier bloc, alors qu'il dfinit lavaleur Auto comme largeur. Auto est en fait une valeur spcifique en XAML (tra-duite en Double.NaN en code) qui indique au systme qu'il doit valuer la valeur enfonction d'autres proprits et du conteneur.