Weitere ähnliche Inhalte Ähnlich wie Alphorm.com-Formation windows phone 8.1 (20) Alphorm.com-Formation windows phone 8.11. 25/08/2014
1
Présentation de la formation
Windows Phone 8/8.1
Windows Phone 8 alphorm.com™©
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Windows Phone 8/8.1
2. 25/08/2014
2
Plan
• Présentation du formateur
• Les autres formations en programmation sur alphorm.com
• Qu’est-ce que Windows Phone 8?
• Le plan de formation
• Présentation des outils
Windows Phone 8 alphorm.com™©
• Présentation des outils
• Publics concernés
• Connaissances requises
• Les références
3. 25/08/2014
3
Présentation du formateur
• Fabien Brissonneau
• Email : fabien.brissonneau@gmail.com
• Consultant Concepteur et Formateur
• Missions d’architecture, de conception , de réalisation logicielles
• Fondateur de eiXa6
• Actuellement en mission sur un projet de gestion
Windows Phone 8 alphorm.com™©
• Actuellement en mission sur un projet de gestion
• Mes références :
Mon profil Viadeo : http://fr.viadeo.com/fr/profile/fabien.brissonneau
Mon profil LinkedIn : http://fr.linkedin.com/pub/fabien-brissonneau/65/902/92a/
6. 25/08/2014
6
Qu’est ce que c’est Windows Phone 8.1
• Windows Phone 8.1 est un système d’exploitation
• Successeur des Windows Phone 7 et 8
• Utilise les ressources d’un appareil mobile
• Converge vers le système Windows
Windows Phone 8 alphorm.com™©
• Le framework à utiliser est quasi le même
7. 25/08/2014
7
Le plan de formation
1. Introduction
2. Construire une application
3. Le déploiement de l'application
4. Les interfaces graphiques
Windows Phone 8 alphorm.com™©
5. Les interactions avec le système
6. Les accès réseau
7. Les capteurs
8. Conclusion
9. 25/08/2014
9
Publics concernés
• Tout développeur intéressé par une première approche du système
• Même sans connaissance de l’écosystème Microsoft
• Développeur souhaitant passer de Windows Phone 7 à 8
Windows Phone 8 alphorm.com™©
10. 25/08/2014
10
Connaissances requises
• Bases de la programmation
• A l’aise avec la notion de compilation, de debug
• La connaissance d’un langage de programmation est un plus
• Le C# est ici utilisé pour la partie programmation
Windows Phone 8 alphorm.com™©
13. 25/08/2014
13
Introduction
Visual Studio et Blend
Windows Phone 8 alphorm.com™©
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Visual Studio et Blend
19. 25/08/2014
19
Ce qu’on a couvert
• Présentation de Visual Studio
• Les éditeurs de code C# et de XAML
• Les propriétés du projet
• Blend, outil graphique
Windows Phone 8 alphorm.com™©
FIN
20. 25/08/2014
20
Introduction
Les différents projets WP
Windows Phone 8 alphorm.com™©
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Les différents projets WP
21. 25/08/2014
21
Plan
• Application WP
• Application liée aux données
• Application panorama
• Application pivot
Windows Phone 8 alphorm.com™©
• Application XAML avec Direct3D
• Application HTML5
• Et les autres : bibliothèques, tests, agents
24. 25/08/2014
24
Application Panorama
• Un panorama est un conteneur long qui contient des items
• Idéal pour placer un contenu qui s’étale en longueur
• Pas à gérer les mouvements de l’utilisateur
Windows Phone 8 alphorm.com™©
26. 25/08/2014
26
Application XAML et Direct3D
• Il existe des application pure Direct3D, écrites en C++
• Un contrôle Direct3D peut être intégré dans l’application managée
• La surface occupée et le contrôle utilisé pour faire l’interaction Appli
Managée/Direct3D dépend du modèle utilisé :
DrawingSurface, qui est un contrôle comme un autre
Windows Phone 8 alphorm.com™©
DrawingSurface, qui est un contrôle comme un autre
DrawingSurfaceBackgroundGrid, qui occupe toute la surface de l’écran
28. 25/08/2014
28
Ce qu’on a couvert
• Les différents types de projets offerts sous Windows Phone 8
• Le modèle de base
• Les applications liées aux données
• Le panorama
Windows Phone 8 alphorm.com™©
• Le pivot
• XAML et Direct3D
• Les applications HTML5
FIN
31. 25/08/2014
31
L’émulateur WP
• L’émulateur Windows Phone est une application qui émule un matériel
• Il fournit aussi un environnement isolé pour tester
• L’émulateur WP8 n’est pas compatible avec des applications avant 7.1
• Les paramétrages identiques à ceux d’un appareil physique
Windows Phone 8 alphorm.com™©
32. 25/08/2014
32
Le paramétrage de l’émulateur
• Résolutions d’écrans : WVGA (800x480), WXGA (1280x768), 720p
(1280x720)
• Options portrait/paysage
• Mémoire contrainte : par défaut WXGA 512Mo
• Réseau : possibilité de limiter la bande passante
Windows Phone 8 alphorm.com™©
• Réseau : possibilité de limiter la bande passante
• Langue et régionalisation
• Cycle de vie de l’application
• Stockage local : (isolated storage) de la durée de fonctionnement
• Caméra, GPS …
33. 25/08/2014
33
La barre d’outil
• Changer l’orientation
• Zoomer, ajuster la taille de l’émulateur
• Changer de langue et de paramètres régionaux
• Faire que l’application change d’état : Start, Back, Punaise
Windows Phone 8 alphorm.com™©
34. 25/08/2014
34
L’exécution sur un matériel
• Nécessaire avant livraison
• Suppose de cibler un appareil connecté
• Indispensable pour tester : boussole, gyroscope, vibrations, luminosité
Windows Phone 8 alphorm.com™©
35. 25/08/2014
35
Ce qu’on a couvert
• L’émulateur est un outil qui permet de tester l’application
• Les menus permettent de l’utiliser comme un vrai téléphone
• Les paramètres vont permettre de tester des conditions limites
• Il faut tester l’application sur un téléphone matériel avant livraison
Windows Phone 8 alphorm.com™©
FIN
36. 25/08/2014
36
Introduction
Version 8 et 8.1
Windows Phone 8 alphorm.com™©
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Version 8 et 8.1
38. 25/08/2014
38
Les projets Visual Studio
• Projets renommés
• Bien faire la différence entre
Windows Phone 8.1 Silverlight
Windows Phone 8.1
• Suivant le type du projet, les menus sont différents
Windows Phone 8 alphorm.com™©
• Suivant le type du projet, les menus sont différents
40. 25/08/2014
40
Les nouveautés de 8.1
• Nouvelles classes de gélocalisation
• Zonage géographique (geofencing)
• Meilleure gestion des cartes
• Transferts en arrière-plan
Windows Phone 8 alphorm.com™©
• Nouvelle gestion des media
• Utilisation de WNS pour les notifications
• La barre de commande nouvelle
• …
41. 25/08/2014
41
Ce qu’on a couvert
• Les projets Visual Studio
• La convergence vers Windows Store Apps
• Les nouveautés de 8.1
Windows Phone 8 alphorm.com™©
FIN
42. 25/08/2014
42
Construire une application
Construire l’interface
Windows Phone 8 alphorm.com™©
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Construire l’interface
44. 25/08/2014
44
L’application, les pages
• L’application est l’objet qui réalise le démarrage du programme
• Peut être utilisée pour intervenir avant l’apparition de l’ihm
• App.xaml référence l’objet PhoneApplicationFrame
• Ce dernier objet sert à la navigation entre les pages
Windows Phone 8 alphorm.com™©
• Une page, dérivée de PhoneApplicationPage, contient les contrôles
• Elle référence divers espaces de nommages, dont MS.Phone.Controls
45. 25/08/2014
45
Utiliser la boîte à outils
• La boîte à outils sert à construire l’ihm
• Les contrôles sont déposés simplement sur le concepteur graphique
• La boîte à outils sert aussi à disposer les layout
• Le layout est un conteneur qui règle le positionnement initial et la
déformation des contrôles
Windows Phone 8 alphorm.com™©
déformation des contrôles
46. 25/08/2014
46
Edition du XAML
• L’édition directe du XAML est rapide
• XAML est un langage de description de pages dialecte XML
• Support de WPF et Silverlight
• Avec XAML, on peut décrire la quasi-totalité de l’ihm
Windows Phone 8 alphorm.com™©
• Le lien avec la code C# (ou autre) est réalisé par le runtime
47. 25/08/2014
47
Edition du C#
• Le C# est un langage de programmation orienté objet
• Il permet d’implémenter la logique applicative
• Les objet XAML sont utilisables par leur noms
• Les attributs du XAML sont des propriétés des objets C#
Windows Phone 8 alphorm.com™©
48. 25/08/2014
48
Ce qu’on a couvert
• L’application est unique et référence la racine
• Une page est le conteneur des contrôles à un moment donné
• Utiliser la boîte à outils pour distribuer les contrôles en tenant compte
des conteneur de positionnement utilisés
• Edition du XAML pour intervenir sur l’ihm
Windows Phone 8 alphorm.com™©
• Edition du XAML pour intervenir sur l’ihm
• Edition du C# pour ajouter le code ayant une logique plus applicative
FIN
49. 25/08/2014
49
Construire une application
Améliorer l’interface
Windows Phone 8 alphorm.com™©
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Améliorer l’interface
50. 25/08/2014
50
Plan
• Saisie de dates, heures
• Liaison entre contrôles
• Validation des entrées
• Onglets avec Pivot
Windows Phone 8 alphorm.com™©
• Scrolling
• Application bar
51. 25/08/2014
51
Saisies de dates et heures
• Depuis WP 8.1, contrôles DatePicker et TimePicker
• Possibilités d’initialiser les propriétés de ces contrôles
• Récupérer les informations
Windows Phone 8 alphorm.com™©
52. 25/08/2014
52
Les liaisons entre contrôles
• Le databinding permet de :
Positionner une propriété d’un champ en fonction d’un autre
Mettre à jour un champ par rapport à un objet C#
Mettre à jour un objet C# par rapport à un contrôle
Windows Phone 8 alphorm.com™©
53. 25/08/2014
53
La validation des entrées
• Il faut contrôler la validité des saisies utilisateurs
• Réagir sur l’événement de saisie
Windows Phone 8 alphorm.com™©
54. 25/08/2014
54
Les onglets avec Pivot
• Le contrôle Pivot permet de présenter plusieurs onglets
• Navigation facile, avec une description différente dans chaque partie
• Le contrôle Pivot est à la base d’un type de projet Visual
Windows Phone 8 alphorm.com™©
55. 25/08/2014
55
Scrolling et application bar
• Le scrolling va être automatique si la surface n’est pas suffisante
• La barre de boutons 8.1 est différente de celle de 8
AppBarButton
AppBarToggleButton
Windows Phone 8 alphorm.com™©
56. 25/08/2014
56
Ce qu’on a couvert
• La richesse des contrôles
• La liaison entre contrôles et données permet d’économiser pas mal de
code
• Les onglets avec Pivot permettent de construire une ihm plus riche
Windows Phone 8 alphorm.com™©
FIN
57. 25/08/2014
57
Construire une application
Gestion des événements
Windows Phone 8 alphorm.com™©
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Gestion des événements
58. 25/08/2014
58
Plan
• Principe des callbacks en XAML/C#
• Les événements disponibles sur les contrôles
• Le modèle de commandes
• Le modèle MVVM
Windows Phone 8 alphorm.com™©
59. 25/08/2014
59
Principe des callback
• Une fonction de rappel est déclenchée lorsqu’un événement est levé
• La fonction de rappel est typiquement écrite en C#
• La fonction peut être branchée
Lors du chargement du formulaire, en C#
Windows Phone 8 alphorm.com™©
Dans la description du contrôle, en XAML
• La callback, ou fonction de rappel, est le « event handler »
60. 25/08/2014
60
Les événements disponibles sur les contrôles
• Chaque contrôle propose un ensemble d’événements
• Un événement est un message émis en réponse à une action utilisateur
ou à la logique interne
• Le « event handler » reçoit 2 ,paramètres
L’émetteur de l’événement
Windows Phone 8 alphorm.com™©
L’émetteur de l’événement
Un objet d’une sous-classe de EventArgs
• Les RoutedEvents sont spécifiques UI WP, et peuvent remonter les
contrôles parents
61. 25/08/2014
61
Le modèle MVVM
• Model View ViewModel
Model : les objets de donnée
View : la page XAML
ViewModel : un objet lié par DataContext de la View
• Les binding vont faire le lien entre les contrôles et les propriétés du
Windows Phone 8 alphorm.com™©
• Les binding vont faire le lien entre les contrôles et les propriétés du
ViewModel
62. 25/08/2014
62
Le modèle de commande
• Repose sur l’utilisation de ICommand
• Créer une classe qui :
Implémente les méthodes Execute et CanExecute
Expose un événement CanExecuteChanged
• Cette classe délègue au ViewModel l’exécution réelle
Windows Phone 8 alphorm.com™©
• Cette classe délègue au ViewModel l’exécution réelle
Func<P,R> : représente une fonction paramètre type P, retour type R
Action<P> : représente une procédure de paramètre de type P
63. 25/08/2014
63
Ce qu’on a couvert
• Les gestionnaires d’événements se connectent sur les contrôles
• Les contrôles présentent des événements auxquels s’baonner
Certains événements sont routés vers les parents au besoin
• Les commandes sont des objets qui sont connectés aux contrôles
Windows Phone 8 alphorm.com™©
• Le modèle MVVM simplifie la maintenance de l’application
FIN
64. 25/08/2014
64
Construire une application
Les gestion des erreurs
Windows Phone 8 alphorm.com™©
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Les gestion des erreurs
65. 25/08/2014
65
Plan
• Les exceptions CLR
• Les exceptions dans la validation
BindingValidationError
• Les déclarations de capacités dans le manifest
Windows Phone 8 alphorm.com™©
UnauthorizedAccessException
• Ne pas laisser passer d’exceptions, requis par la certification
66. 25/08/2014
66
Les exceptions CLR
• Le framework DotNet signale les erreurs exceptionnelles par exceptions
• Une exception est un objet d’une classe héritant de la classe Exception
SystemException, ApplicationException
• Une exception capte un contexte d’erreur
Windows Phone 8 alphorm.com™©
Création de l’objet exception en passant des paramètres
Levée avec throw
• Un gestionnaire d’erreur récupère ces informations
Mots-clés try / catch/ finally
67. 25/08/2014
67
Les exceptions dans la validation
• En mode two-way, le modèle est mis à jour
• Le modèle lève une exception en cas d’erreur
• Dans le XAML, utiliser un gestionnaire sur le parent du contrôle
concerné par la validation
BindingValidationError=<nom du gestionnaire>
Windows Phone 8 alphorm.com™©
BindingValidationError=<nom du gestionnaire>
Tester la propriété Action de l’argument (Added, Removed)
68. 25/08/2014
68
Les exceptions de capacité
• Si on tente de déclencher du code sous contrôle du manifest
• Sélectionner dans le manifest
Windows Phone 8 alphorm.com™©
69. 25/08/2014
69
Ce qu’on a couvert
• Les exceptions CLR
• Les exceptions dans la validation
BindingValidationError
• Les déclarations de capacités dans le manifest
Windows Phone 8 alphorm.com™©
UnauthorizedAccessException
• Ne pas laisser passer d’exceptions, requis par la certification
FIN
70. 25/08/2014
70
Construire une application
Les ressources images
Windows Phone 8 alphorm.com™©
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Les ressources images
71. 25/08/2014
71
Plan
• Le répertoire Assets
• Les images en tant que contenu ou ressource
• Lier une image à XAML
• Charger une image en C#
Windows Phone 8 alphorm.com™©
• Les images dans la publication de l’application
• Les images et les tuiles
72. 25/08/2014
72
Le répertoire Assets
• Le répertoire Assets est fourni avec quelques images-types
• En général, il existe 3 tailles d’images, et le système va les mettre à
l’échelle en fonction de la résolution de l’appareil
• La référence vers l’image se fait en spécifiant le chemin
• Les formats sont : jpg, png, bmp, gif, tiff, ico
Windows Phone 8 alphorm.com™©
• Les formats sont : jpg, png, bmp, gif, tiff, ico
• Pour charger une image, Image ou ImageBrush
73. 25/08/2014
73
Les images, contenu ou ressource
• Action de build sur l’image : Contenu vs Ressource
Contenu : packagé, mais pas dans l’assembly, obligatoire pour contrôles
Ressource : dans l’assembly, problème de temps de chargement initial
Windows Phone 8 alphorm.com™©
76. 25/08/2014
76
Les images pour publier l’application
• Certaines images sont indispensables à la création du package
Icône d’application 300x300
• Images optionnelles de promotion
• Pour publication dans le Store, au moins une capture d’écran (8 max)
Windows Phone 8 alphorm.com™©
• Les règles sont différentes dans le Windows Store
77. 25/08/2014
77
Les images et les tuiles
• Les tuiles peuvent être « flip », « cycle » ou « iconic »
Une icône : taille small (71x110)+ medium (134x202)
Cyclique : 1 small (159x159) + 9 maxi medium
Flip : 3 front et 3 back
• Les images sont fournies selon différentes résolutions
Windows Phone 8 alphorm.com™©
• Les images sont fournies selon différentes résolutions
• La taille des images affichées est choisie par l’utilisateur
78. 25/08/2014
78
Ce qu’on a couvert
• Le répertoire Assets
• Les ressources en tant que contenu ou ressource
• Lier une image à XAML
• Charger une image en C#
Windows Phone 8 alphorm.com™©
• Les images dans la publication de l’application
• Les images et les tuiles
FIN
79. 25/08/2014
79
Le déploiement
Le compte développeur
Windows Phone 8 alphorm.com™©
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Le compte développeur
82. 25/08/2014
82
Créer un compte développeur
• Infos compte Microsoft
• Information de carte de crédit
• Compte individuel ou entreprise
Windows Phone 8 alphorm.com™©
83. 25/08/2014
83
Ce qu’on a couvert
• Créer un compte développeur
• Le site dev.windows.com
Windows Phone 8 alphorm.com™©
FIN
84. 25/08/2014
84
Le déploiement
Le manifest
Windows Phone 8 alphorm.com™©
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Le manifest
86. 25/08/2014
86
Définition
• Le « manifest » est un document XML
• Contient les infos pour déployer, afficher et mettre à jour l’application
Windows Phone 8 alphorm.com™©
89. 25/08/2014
89
Le déploiement
Le package
Windows Phone 8 alphorm.com™©
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Le package
91. 25/08/2014
91
Construire le package
• Sous Visual Studio
• Ensuite le package généré sera
Directement utilisé sur un téléphone déverrouillé
Téléchargé dans le Windows Phone Store
Utilisé dans un émulateur Windows Phone
Windows Phone 8 alphorm.com™©
Utilisé dans un émulateur Windows Phone
• Nécessite un compte développeur
92. 25/08/2014
92
Le Kit de certification
• Livré avec le SDK
• Accessible en tant qu’application sous Windows
• Ou bien lancée directement via Visual Studio
Windows Phone 8 alphorm.com™©
93. 25/08/2014
93
Soumettre l’application
• La soumission comprend :
Les infos rentrées à la soumission
Le package d’application
• Différents états, 12 possibles
• A suivre dans le tableau de bord
Windows Phone 8 alphorm.com™©
• A suivre dans le tableau de bord
94. 25/08/2014
94
Ce qu’on a couvert
• Construire le package
• Le Kit de certification
• Soumettre l’application
Windows Phone 8 alphorm.com™©
FIN
97. 25/08/2014
97
Traduction des ressources utilisateur
• Définir la langue par défaut « fr-FR »
• Créer les dossiers et fichiers de ressources
Strings/fr-FR/Resources.resw
• Les éléments visuels portent un attribut x:Uid
Windows Phone 8 alphorm.com™©
X:Uid=<nom de la chaîne>
• Dans le code, accès via
Windows.ApplicationModel.Resources.ResourceLoader() . GetString(<nom>)
98. 25/08/2014
98
Ressources audio, vidéo…
• Consommateur de ressources systèmes
• Utiliser si possible des ressources neutres
• Fichiers nommés par qualificateurs de ressources
Images/fr-FR/logo.scale-100_contrast-white.png
Windows Phone 8 alphorm.com™©
Images/logo.png
99. 25/08/2014
99
Ce qu’on a couvert
• Traduction des ressources utilisateur
• L’internationalisation de ressources image, audio, vidéo…
Windows Phone 8 alphorm.com™©
FIN
100. 25/08/2014
100
Les interfaces graphiques
Les différents types
Windows Phone 8 alphorm.com™©
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Les différents types
d’interfaces
102. 25/08/2014
102
L’application vide
• L’ihm est quasi vide, selon qu’on prend Silverlight ou non
• Libre choix de la construction de l’interface graphique
• Nécessité de créer des pages entre lesquelles il faut naviguer
• Les layouts : Grid, StackPanel, Canvas
Windows Phone 8 alphorm.com™©
103. 25/08/2014
103
L’application Hub ou Panorama
• Le Hub, ou Panorama est une organisation particulière de l’application
• Un contrôle Hub (Panorama) et des contrôles
HubSection(PanoramaItem)
• Le contrôle Hub offre : Background, Title, Items
Windows Phone 8 alphorm.com™©
106. 25/08/2014
106
Ce qu’on a couvert
• L’application vide
• L’application Hub ou Panorama
• L’application Pivot
• L’application Webview ou HTML
Windows Phone 8 alphorm.com™©
FIN
107. 25/08/2014
107
Les interfaces graphiques
La navigation
Windows Phone 8 alphorm.com™©
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
La navigation
109. 25/08/2014
109
OnNavigatedFrom / OnNavigatedTo
• La construction des pages : hyperlink / Navigate
• La maintenance de l’état de la page ne doit donc pas être fait dans le
constructeur, ni Loaded ou LayoutUpdated
Windows Phone 8 alphorm.com™©
111. 25/08/2014
111
Frame
• Sur la classe Frame :
Navigate
GoBack
GoForward
• Exemple :
Windows Phone 8 alphorm.com™©
• Exemple :
Frame.Navigate(typeof(AutrePage));
• Dans App.cs, Navigate sur rootFrame pour charger la première
112. 25/08/2014
112
SuspensionManager / NavigationHelper
• SuspensionManager
Une classe fournie dans certains types de projets
Simplifie la gestion de l’état de l’application
Propose un dictionnaire, SessionState
• NavigationHelper
Windows Phone 8 alphorm.com™©
• NavigationHelper
Chargé de rappeler LoadState/SaveState de la page
Utiliser (EventArgs) e .PageState
113. 25/08/2014
113
Ce qu’on a couvert
• OnNavigatedFrom / OnNavigatedTo
• NavigationService
• Frame : Navigate, GoBack, GoForward
• NavigationHelper / SuspensionManager
Windows Phone 8 alphorm.com™©
FIN
114. 25/08/2014
114
Les interfaces graphiques
L’interface DirectX
Windows Phone 8 alphorm.com™©
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
L’interface DirectX
115. 25/08/2014
115
Plan
• L’application DirectX
Ne permet pas le mixage XAML/C++
• L’application DirectX et XAML
Une surface de dessin DirectX dimensionnée, intégrée dans un projet XAML
Composant SurfaceImageSource
Windows Phone 8 alphorm.com™©
• Composant SurfaceImageSource
Une grande image, sur laquelle on zoom
• Composant VirtualSurfaceImageSource
Des images en temps réel
• Composant SwapChainPanel
116. 25/08/2014
116
L’application DirectX
• La fenêtre complète est occupée par un objet de rendu graphique
• Une boucle dans laquelle :
On met à jour le contenu
On affiche directement
• Les actions de l’utilisateur sont redirigées
Windows Phone 8 alphorm.com™©
• Les actions de l’utilisateur sont redirigées
118. 25/08/2014
118
Ce qu’on a couvert
• L’application DirectX
Ne permet pas le mixage XAML/C++
• L’application DirectX et XAML
Une surface de dessin DirectX dimensionnée, intégrée dans un projet XAML
Composant SurfaceImageSource
Windows Phone 8 alphorm.com™©
• Composant SurfaceImageSource
Une grande image, sur laquelle on zoom
• Composant VirtualSurfaceImageSource
Des images en temps réel
• Composant SwapChainPanel
FIN
119. 25/08/2014
119
Les interfaces graphiques
Action et multitouch
Windows Phone 8 alphorm.com™©
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Action et multitouch
121. 25/08/2014
121
Les mouvements utilisateur
• Tap : un doigt touche et relâche
• DoubleTap : 2 taps
• Hold : un doigt touche et reste en place
• Pan/Drag : un doigt touche et bouge un contenu(Pan : le contenu est
plus grand que l’écran)
Windows Phone 8 alphorm.com™©
plus grand que l’écran)
• Flick : un doigt touche et se déplace en dehors de l’écran
• Pinch : 2 doigts touchent et se rapprochent
• Stretch : 2 doigts touchent et s’écartent
122. 25/08/2014
122
Les niveaux de traitements
• Evénements bas-niveau (Manipulation)
• On- méthodes bas niveau
• Evénements haut-niveau
• On- méthodes haut niveau
Windows Phone 8 alphorm.com™©
• FrameReported Event
123. 25/08/2014
123
Ce qu’on a couvert
• Les mouvements utilisateur
• Les niveaux de traitements
Windows Phone 8 alphorm.com™©
FIN
124. 25/08/2014
124
Les interactions avec le système
Le cycle de vie
Windows Phone 8 alphorm.com™©
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Le cycle de vie
126. 25/08/2014
126
Les états d’une application
• NotRunning -> Activated -> Running
• Running -> Suspending -> Suspended
• Suspended -> Resuming -> Running
• Suspended -> NotRunning
Windows Phone 8 alphorm.com™©
127. 25/08/2014
127
Règles générales
• Il peut y avoir plusieurs applications tournant en même temps, mais une
seule est active
• Seule l’application active peut activer une autre application
• Il n’y a qu’une seule page active
• L’utilisateur peut toujours revenir au départ
Windows Phone 8 alphorm.com™©
• L’utilisateur peut toujours revenir au départ
• L’utilisateur peut toujours faire un back, retour vers la page précédente
ou vers l’application précédente
• Une application vers laquelle on fait un forward doit se présenter
comme précédemment
128. 25/08/2014
128
Les scénarios
• Une application recharge ses données lorsqu’elle reçoit l’événement
Launch
• Un test sur PreviousExecutionState permettra de savoir si elle doit
recharger ses données ou non
• Lors de la suspension, il faudra sauvegarder les données associées,
libérer les ressources
Windows Phone 8 alphorm.com™©
libérer les ressources
• Il n’y a pas de notification lors de la terminaison éventuelle
129. 25/08/2014
129
Les méthodes de App
• OnLaunched : une nouvelle instance de l’application est lancée
• OnActivated : l’application est active, il faut restaurer l’état
• Suspending : on passe en arrière plan, peut être terminée plus tard
• Resuming : avant activation, si un gestionnaire est enregistré
Windows Phone 8 alphorm.com™©
• Ne pas oublier OnNavigatedFrom et OnNavigatedTo
130. 25/08/2014
130
Ce qu’on a couvert
• Règles générales
• Les états d’une application
• Scénarios
• Les méthodes de App : OnLaunched, OnActivated, Suspending,
Resuming
Windows Phone 8 alphorm.com™©
Resuming
FIN
131. 25/08/2014
131
Les interactions avec le système
Launchers et choosers
Windows Phone 8 alphorm.com™©
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Launchers et choosers
Et équivalents sous 8.1
132. 25/08/2014
132
Plan
• Windows Phone 8.0
Launchers
• Lance une application et ne retourne rien
Choosers
• Lance une application et retourne quelque chose
Windows Phone 8 alphorm.com™©
• Lance une application et retourne quelque chose
• Windows Phone 8.1
Microsoft.Phone.Tasks n’existe pas
135. 25/08/2014
135
Sous Windows Phone 8.1 …
• Lancer un appel téléphonique …
• Utiliser PhoneCallManager
• Espace de nommage Windows.ApplicationModel.Calls
Windows Phone 8 alphorm.com™©
136. 25/08/2014
136
Sous Windows Phone 8.1 …
• La gestion des medias via MediaCapture
• Récupérer une photo via FileOpenPicker …
• …
• Espace de nommage Windows.Storage.Pickers
Windows Phone 8 alphorm.com™©
137. 25/08/2014
137
Ce qu’on a couvert
• Launchers
Lance une application et ne retourne rien
• Choosers
Lance une application et retourne quelque chose
L’équivalent sous Windows Phone 8.1
Windows Phone 8 alphorm.com™©
L’équivalent sous Windows Phone 8.1
FIN
138. 25/08/2014
138
Les interactions avec le système
Les settings
Windows Phone 8 alphorm.com™©
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Les settings
140. 25/08/2014
140
ApplicationData
• Classe de Windows.Storage
• Disponible à partir de Windows Phone 8.1
• Emplacement des données géré par le système
Local : sur le matériel courant et le cloud
Roaming : pour tous les matériels sur lequel cette app est installée
Windows Phone 8 alphorm.com™©
Roaming : pour tous les matériels sur lequel cette app est installée
Temporary : les données peuvent disparaître n’importe quand
Localcache : données qui n’existent QUE sur ce matériel
• Possibilités de versionner les data
141. 25/08/2014
141
Exemple de code pour sauver les paramètres
• var appData = Windows.Storage.ApplicationData.Current;
• var localSettings = appData.LocalSettings;
• localSettings.Values["NomUtilisateur"] = nom.Text;
Windows Phone 8 alphorm.com™©
142. 25/08/2014
142
Exemple pour charger les paramètres
• var appData = Windows.Storage.ApplicationData.Current;
• var localSettings = appData.LocalSettings;
• if (localSettings.Values.ContainsKey("Nom"))
Windows Phone 8 alphorm.com™©
• {
• nom.Text = localSettings.Values["Nom"].ToString();
• }
143. 25/08/2014
143
Ce qu’on a couvert
• ApplicationData
• Exemple de code pour sauver les paramètres
• Exemple de code pour charger les paramètres
Windows Phone 8 alphorm.com™©
FIN
144. 25/08/2014
144
Les interactions avec le système
Le stockage local
Windows Phone 8 alphorm.com™©
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Le stockage local
148. 25/08/2014
148
Stockage roaming
• Propriété RoamingFolder de ApplicationData
• Le stockage des données est synchronisé entre plusieurs matériels sur
lesquels l’application est installée
• Les données sont limitées en taille
• On peut s’abonner à une événement DataChanged qui signale que les
Windows Phone 8 alphorm.com™©
• On peut s’abonner à une événement DataChanged qui signale que les
données ont changé
• Les données sont liées aux versions
150. 25/08/2014
150
Ce qu’on a couvert
• ApplicationData
• Stockage « local » ou « roaming »
• Stockage temporaire
Windows Phone 8 alphorm.com™©
FIN
151. 25/08/2014
151
Les interactions avec le système
Les fichiers et répertoires
Windows Phone 8 alphorm.com™©
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Les fichiers et répertoires
153. 25/08/2014
153
Généralités
• Lecture et écriture asynchrone
• Les méthodes asynchrones s’appellent avec « await »
• Obtenir un StorageFile ou un StorageFolder
StorageFile f = await sd.CreateFileAsync("data.txt",
CreationCollisionOption.ReplaceExisting);
Windows Phone 8 alphorm.com™©
CreationCollisionOption.ReplaceExisting);
• Ecrire dans un fichier
await FileIO.WriteTextAsync(f, "Voici les données ...");
• Espace de nommage Windows.Storage
154. 25/08/2014
154
Les répertoires
• Le répertoire d’installation
StorageFolder sf = Package.Current.InstalledLocation;
• Les fichiers de ce répertoire sont en lecture seule
• Préfixe « ms-appx:/// » pour accéder à un fichier de ce répertoire
Windows Phone 8 alphorm.com™©
155. 25/08/2014
155
FileOpenPicker et FolderPicker
• FileOpenPicker, méthode PickSingleFileAndContinue
• API différente entre Windows et Windows Phone
• Doit être lié via OnActivated à l’application d’origine
• FolderPicker, méthode PickFolderAndContinue
Windows Phone 8 alphorm.com™©
• …
157. 25/08/2014
157
Ce qu’on a couvert
• Le répertoire d’installation
• Les FileOpenPicker et FolderPicker
• Les répertoires supplémentaires
Windows Phone 8 alphorm.com™©
FIN
158. 25/08/2014
158
Les interactions avec le système
SQL
Windows Phone 8 alphorm.com™©
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
SQL
160. 25/08/2014
160
SQLite
• SQLite et SQLitePCL
• Installés via les extensions et Nuget
• Espace de nommage SQLite
• SQLite s’utilise via Linq
Windows Phone 8 alphorm.com™©
• SQLitePCL permet d’accéder bas niveau au SQL
161. 25/08/2014
161
Créer un élément
• conn = new SQLiteConnection("data.db");
• string sql = @"CREATE TABLE IF NOT EXISTS LIVRE(
• Id INTEGER PRIMARY KEY AUTOINCREMENT NOt NULL,
• Titre VARCHAR(100),
• ISBN VARCHAR(100),
Windows Phone 8 alphorm.com™©
• ISBN VARCHAR(100),
• Auteur VARCHAR(100));";
• using (var st = conn.Prepare(sql))
• {
• st.Step();
• }
162. 25/08/2014
162
Insérer un élément
• using(var l = conn.Prepare("INSERT INTO Livre(Titre,ISBN,Auteur) Values(?,?,?)") ){
• l.Bind(1,"Promenades et randonnées …");
• l.Bind(2,"2-9506274-4-7");
• l.Bind(3,"FFRP");
• l.Step();
Windows Phone 8 alphorm.com™©
• }
163. 25/08/2014
163
Sélectionner
• using (var st = App.conn.Prepare("SELECT * FROM Livre"))
• {
• var res = st.Step();
• if (SQLiteResult.ROW == res)
• {
Windows Phone 8 alphorm.com™©
• {
• Titre.Text = st[0].ToString();
• ISBN.Text = st[1].ToString();
• Auteur.Text = st[2].ToString();
• }
• }
164. 25/08/2014
164
Ce qu’on a couvert
• SQLite
• Créer une base
• Insérer un élément
• Récupérer les infos
Windows Phone 8 alphorm.com™©
FIN
165. 25/08/2014
165
Les accès réseau
Les accès au Web
Windows Phone 8 alphorm.com™©
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Les accès au Web
168. 25/08/2014
168
Méthodes
• GetAsync(uri) : requête GET
• PostAsync(uri) : requête POST
• PutAsync(uri) : requête PUT
• DeleteAsync(uri) : requête DELETE
Windows Phone 8 alphorm.com™©
• SendRequestAsync(HttpRequestMessage) : requête générique
169. 25/08/2014
169
HttpResponseMessage
• Class de Windows.Web.Http
• Réponse à la requête avec en-têtes, code d’état et données
• Propriétés
Content
Windows Phone 8 alphorm.com™©
StatusCode
IsSuccessStatusCode
Headers
Version
170. 25/08/2014
170
Cookies et en-têtes
• Sur la classe HttpClient
DefaultRequestHeaders
Classe …Headers.HttpRequestHeadersCollection
Propriétés :
• UserAgent
Windows Phone 8 alphorm.com™©
• UserAgent
• Cookies
• …
171. 25/08/2014
171
Ce qu’on a couvert
• HttpClient
• Méthodes Delete, Get, Put, Post
• HttpResponseMessage
• Cookies et en-têtes HTTP
Windows Phone 8 alphorm.com™©
FIN
172. 25/08/2014
172
Les accès réseau
Les services WCF
Windows Phone 8 alphorm.com™©
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Les services WCF
174. 25/08/2014
174
Les services WCF
• Un sur-ensemble des services distants
• Sépare l’implémentation de la description du service
• Souplesse accrue
• Tuyauterie de présentation du service non codée
Windows Phone 8 alphorm.com™©
175. 25/08/2014
175
Créer un service WCF
• Un type de projet WCF
• Implémentation du service dans une classe
• Représentation du service par une interface
• Description du service dans un fichier de configuration
Windows Phone 8 alphorm.com™©
• Web services : BasicHttpBinding, WsHttpBinding, WebHttpBinding
176. 25/08/2014
176
Consommer un service
• Laisser VS créer un proxy pour s’occuper de la tuyauterie
• Lui fournir un fichier svc
• Accéder aux méthodes du proxy
Windows Phone 8 alphorm.com™©
177. 25/08/2014
177
Ce qu’on a couvert
• Les services WCF
• Créer un service WCF
• Consommer un service
Windows Phone 8 alphorm.com™©
FIN
178. 25/08/2014
178
Les accès réseau
Les services mobiles
Windows Phone 8 alphorm.com™©
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Les services mobiles
180. 25/08/2014
180
Le compte Azure
• Adresse azure.microsoft.com
• Version d’évaluation gratuite, version payante ou compte développeur
msdn
Windows Phone 8 alphorm.com™©
183. 25/08/2014
183
Ce qu’on a couvert
• Le compte Azure
• Définir un service mobile
• Utiliser le service mobile
Windows Phone 8 alphorm.com™©
FIN
184. 25/08/2014
184
Les accès réseau
Les services de notifications
Windows Phone 8 alphorm.com™©
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Les services de notifications
Push
186. 25/08/2014
186
Les étapes
• Enregistrer son application dans le Store
• Associer sous Visual Studio le projet avec l’appli dans le Store
• Dans le Windows Dev Center, visiter la page des services
positionner client ID et client Secret
Windows Phone 8 alphorm.com™©
• Sur le service Azure, indiquer les 2 infos préalables
• Mettre en place le code
Dans l’application Windows Phone 8.1
Dans l’application serveur
187. 25/08/2014
187
PushNotificationChannelManager
• Espace de nommage Windows.Networking.PushNotifications
• Créer les objets à utiliser pour recevoir les notifications
• On va les lier ensuite à une application ou à une tuile
• .CreatePushNotificationChannelForApplicationAsync();
Windows Phone 8 alphorm.com™©
• On enregister le PushNotificationChannel résultant
189. 25/08/2014
189
Sur le serveur
• Lorsque la notification doit être faite …
• Créer un WindowsPushMessage
• Le construire (XML)
• L’envoyer : Services.Push.SendAsync(msg)
Windows Phone 8 alphorm.com™©
191. 25/08/2014
191
Ce qu’on a couvert
• Les étapes
• PushNotificationChannelManager
• HttpNotificationChannel
Windows Phone 8 alphorm.com™©
FIN
193. 25/08/2014
193
Plan
• Les événements de données
• Récupérer les données à intervalles réguliers
• Motion, outil de synthèse des infos de mouvement
Windows Phone 8 alphorm.com™©
194. 25/08/2014
194
Les événements de données
• Espaces de nommage :
Microsoft.Devices.Sensors
• Classe Accelerometer
• Testable IsSupported
Windows Phone 8 alphorm.com™©
• Evenement Reading
• AccelerometerReading.Acceleration
196. 25/08/2014
196
Motion
• Créer un objet Motion
• Il rassemble les informations des senseurs
• Start pour le démarrer
• CurrentValue ou bien CurrentValueChanged pour récupérer les données
Windows Phone 8 alphorm.com™©
197. 25/08/2014
197
Ce qu’on a couvert
• Les événements de données
• Récupérer les données à intervalles réguliers
• Motion
Windows Phone 8 alphorm.com™©
FIN
200. 25/08/2014
200
Récupération de position
• Windows.Devices.Geolocation
• Classe Geolocator
• Récupérer les données de position
par événement PositionChanged
Windows Phone 8 alphorm.com™©
ou bien avec GetGeoPositionAsync
201. 25/08/2014
201
L’espace de nommage Geofencing
• Classe Geofence
• Définir une zone géographique et être averti lorsqu’on arrive dans cette
zone
• Enregistrer un gestionnaire d’événement en rapport avec un
changement d’état
Windows Phone 8 alphorm.com™©
• Fournir un point géographique
202. 25/08/2014
202
Ce qu’on a couvert
• Récupération de position
• L’espace de nommage Geofencing
Windows Phone 8 alphorm.com™©
FIN
203. 25/08/2014
203
Les capteurs
La caméra
Windows Phone 8 alphorm.com™©
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
La caméra
206. 25/08/2014
206
Lancer un preview
• Préparer une image qui recevra la prévisualisation
• Position la propriété Source comme l’objet MediaCapture
• Lancer StartPreviewAsync
• Pour arrêter la capture, utiliser StopPreviewAsync
Windows Phone 8 alphorm.com™©
207. 25/08/2014
207
Capturer une photo
• Préparer un StorageFile (créer ou s’assurer de sa présence)
• Créer un encodage
• Utiliser CapturePhotoToStorageFileAsync
Windows Phone 8 alphorm.com™©
208. 25/08/2014
208
Ce qu’on a couvert
• Classe MediaCapture
• Lancer un preview
• Générer une photo à partir de la caméra
Windows Phone 8 alphorm.com™©
FIN
209. 25/08/2014
209
Conclusion
Windows Phone 8/8.1
Windows Phone 8 alphorm.com™©
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : http://www.alphorm.com/forum
Windows Phone 8/8.1
210. 25/08/2014
210
Ce que nous avons vu …
• Présentation des outils
• La construction de l’application
• Le déploiement de l’application
• Les interfaces graphiques
Windows Phone 8 alphorm.com™©
• Les interactions avec le système
• Les accès réseau
• Les capteurs
211. 25/08/2014
211
Ne pas oublier …
• Installer Visual Studio 2013, Update 2 si vous voulez travailler sous 8.1
• Travailler sur un système Windows 8
• Disposer pour vos tests réels d’un appareil Windows Phone 8.1
Windows Phone 8 alphorm.com™©