Upload
alphormcom
View
777
Download
17
Tags:
Embed Size (px)
DESCRIPTION
La formation complète est disponible ici: http://www.alphorm.com/tutoriel/formation-en-ligne-windows-phone-8-1 Le système Windows Phone 8.1 est un système majeur dans l'univers des mobiles. Création de Microsoft, il succède aux versions 7 et 8 du système. Cette formation vous permet de programmer pour Windows Phone 8.1, utilisant l'environnement Visual Studio 2013, en mettant en évidence les différences entre les projets supportant Windows Phone 8.0, 8.1 RT et 8.1 Silverlight. De la création de l'interface graphique aux accès réseau et à la gestion de l'accéléromètre, vous profiterez de l'expertise de développement de Fabien Brissonneau, qui vous amènera à découvrir les aspects les plus intéressants de ces applications. Le but de cette formation pragmatique est de vous permettre de programmer au plus vite sous Windows Phone 8.1
Citation preview
25/08/2014
1
Présentation de la formation
Windows Phone 8/8.1
Windows Phone 8 alphorm.com™©
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Windows Phone 8/8.1
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
25/08/2014
3
Présentation du formateur• Fabien Brissonneau
• Email : [email protected]
• 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/
25/08/2014
4
Mes formations déjà réalisées sur alphorm.com
Windows Phone 8 alphorm.com™©
25/08/2014
5
Autres formations en .NET déjà réalisées sur alphorm.com
Windows Phone 8 alphorm.com™©
Autres formations en .NET sur alphorm
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
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
25/08/2014
8
Présentation des outils
• Visual Studio
• Les projets Windows Phone
• Windows Phone 8, 8.1, 8.1 Silverlight
Windows Phone 8 alphorm.com™©
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™©
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™©
25/08/2014
11
Les références
• Un système Windows 8
• Le site dev.windows.com
• Visual Studio 2013, Update 2
Windows Phone 8 alphorm.com™©
25/08/2014
12
Are you ready ? ☺
Windows Phone 8 alphorm.com™©
25/08/2014
13
Introduction
Visual Studio et Blend
Windows Phone 8 alphorm.com™©
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Visual Studio et Blend
25/08/2014
14
Plan
• Visual Studio 2013
• Edition du code C# vs XAML
• Propriétés de projets
• Blend
Windows Phone 8 alphorm.com™©
25/08/2014
15
Visual Studio 2013
Windows Phone 8 alphorm.com™©
25/08/2014
16
Edition du code C# vs XAML
Windows Phone 8 alphorm.com™©
25/08/2014
17
Propriétés de projets
Windows Phone 8 alphorm.com™©
25/08/2014
18
Blend
Windows Phone 8 alphorm.com™©
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
25/08/2014
20
Introduction
Les différents projets WP
Windows Phone 8 alphorm.com™©
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Les différents projets WP
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
25/08/2014
22
Application Windows Phone
• PhoneApplicationFrame
• PhoneApplicationPage
• Canvas, Border, Grid
Windows Phone 8 alphorm.com™©
25/08/2014
23
Application liée aux données
• Utilise une liste liée
• Navigation facile en partant des items sélectionnés
Windows Phone 8 alphorm.com™©
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™©
25/08/2014
25
Application Pivot
• Alternative au panorama
• Contient des items qui sont rapidement accessibles
Windows Phone 8 alphorm.com™©
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
25/08/2014
27
Application HTML5
• Utilisable via le composant WebBrowser, navigateur HTML
Windows Phone 8 alphorm.com™©
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
25/08/2014
29
Introduction
Emulateur et matériel
Windows Phone 8 alphorm.com™©
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Emulateur et matériel
25/08/2014
30
Plan
• L’émulateur WP
• Le paramétrage de l’émulateur
• L’exécution sur un matériel
Windows Phone 8 alphorm.com™©
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™©
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 …
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™©
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™©
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
25/08/2014
36
Introduction
Version 8 et 8.1
Windows Phone 8 alphorm.com™©
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Version 8 et 8.1
25/08/2014
37
Plan
• Les projets Visual Studio
• La convergence vers Windows Store Apps
• Les nouveautés de 8.1
Windows Phone 8 alphorm.com™©
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
25/08/2014
39
La convergence Windows Store
• Modèle d’application et cycle de vie
• Manifest, construction et déploiement
• XAML
Windows Phone 8 alphorm.com™©
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
• …
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
25/08/2014
42
Construire une application
Construire l’interface
Windows Phone 8 alphorm.com™©
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Construire l’interface
25/08/2014
43
Plan
• L’application, les pages
• Utiliser la boîte à outils
� Les layout
� Les contrôles
• Edition du XAML
Windows Phone 8 alphorm.com™©
• Edition du XAML
• Edition du C#
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
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
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
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™©
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
25/08/2014
49
Construire une application
Améliorer l’interface
Windows Phone 8 alphorm.com™©
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Améliorer l’interface
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
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™©
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™©
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™©
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™©
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™©
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
25/08/2014
57
Construire une application
Gestion des événements
Windows Phone 8 alphorm.com™©
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Gestion des événements
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™©
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 »
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
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
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
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
25/08/2014
64
Construire une application
Les gestion des erreurs
Windows Phone 8 alphorm.com™©
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Les gestion des erreurs
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
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
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)
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™©
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
25/08/2014
70
Construire une application
Les ressources images
Windows Phone 8 alphorm.com™©
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Les ressources images
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
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
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™©
25/08/2014
74
Les images en XAML
• Balise Image, propriété Source
Windows Phone 8 alphorm.com™©
25/08/2014
75
Les images en C#
• Possibilité de positionner les images sources
Windows Phone 8 alphorm.com™©
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
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
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
25/08/2014
79
Le déploiement
Le compte développeur
Windows Phone 8 alphorm.com™©
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Le compte développeur
25/08/2014
80
Plan
• Créer un compte développeur
• Le site dev.windows.com
Windows Phone 8 alphorm.com™©
25/08/2014
81
Le site dev.windows.com
• Centre de développement
• Tableau de bord, pour suivi des applications
• Accès à la publication des applications
Windows Phone 8 alphorm.com™©
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™©
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
25/08/2014
84
Le déploiement
Le manifest
Windows Phone 8 alphorm.com™©
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Le manifest
25/08/2014
85
Plan
• Définition
• Contenu
Windows Phone 8 alphorm.com™©
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™©
25/08/2014
87
Contenu
• Identité du package
• Dépendances
• Capacités requises
• Elements visuels
Windows Phone 8 alphorm.com™©
• Points d’extension
25/08/2014
88
Ce qu’on a couvert
• Définition
• Contenu
Windows Phone 8 alphorm.com™©
FIN
25/08/2014
89
Le déploiement
Le package
Windows Phone 8 alphorm.com™©
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Le package
25/08/2014
90
Plan
• Construire le package
• Le Kit de certification
• Soumettre l’application
Windows Phone 8 alphorm.com™©
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
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™©
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
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
25/08/2014
95
Le déploiement
L’internationalisation
Windows Phone 8 alphorm.com™©
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
L’internationalisation
25/08/2014
96
Plan
• Traduction des ressources utilisateur
• L’internationalisation de ressources image, audio, vidéo…
Windows Phone 8 alphorm.com™©
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>)
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
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
25/08/2014
100
Les interfaces graphiques
Les différents types
Windows Phone 8 alphorm.com™©
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Les différents types d’interfaces
25/08/2014
101
Plan
• L’application vide
• L’application Hub ou Panorama
• L’application Pivot
• L’application Webview ou HTML
Windows Phone 8 alphorm.com™©
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™©
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™©
25/08/2014
104
L’application Pivot
• L’application Pivot met en avant un découpage de groupes en items
• Les contrôles à utiliser sont Pivot et Pivot Item
• Le databinding est ici très utile
Windows Phone 8 alphorm.com™©
25/08/2014
105
L’application Webview ou HTML
• Une application basée sur un contrôles WebView
• Edition de pages HTML
• Une interface web, basée sur du HTML
Windows Phone 8 alphorm.com™©
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
25/08/2014
107
Les interfaces graphiques
La navigation
Windows Phone 8 alphorm.com™©
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
La navigation
25/08/2014
108
Plan
• OnNavigatedFrom / OnNavigatedTo
• NavigationService
• Frame : Navigate, GoBack, GoForward
• NavigationHelper / SyspensionManager
Windows Phone 8 alphorm.com™©
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™©
25/08/2014
110
NavigationService
• Disponible pour Silverlight 8.1
• Founir l’URI de la page cible
• NavigationService.Navigate(new Uri( …))
Windows Phone 8 alphorm.com™©
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
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
25/08/2014
113
Ce qu’on a couvert
• OnNavigatedFrom / OnNavigatedTo
• NavigationService
• Frame : Navigate, GoBack, GoForward
• NavigationHelper / SuspensionManager
Windows Phone 8 alphorm.com™©
FIN
25/08/2014
114
Les interfaces graphiques
L’interface DirectX
Windows Phone 8 alphorm.com™©
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
L’interface DirectX
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
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
25/08/2014
117
XAML et DirectX
• Possibilité de mixer XAML et accès direct à l’affichage
• Moindre performance
Windows Phone 8 alphorm.com™©
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
25/08/2014
119
Les interfaces graphiques
Action et multitouch
Windows Phone 8 alphorm.com™©
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Action et multitouch
25/08/2014
120
Plan
• Les mouvements utilisateur
• Les niveaux de traitements
Windows Phone 8 alphorm.com™©
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
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
25/08/2014
123
Ce qu’on a couvert
• Les mouvements utilisateur
• Les niveaux de traitements
Windows Phone 8 alphorm.com™©
FIN
25/08/2014
124
Les interactions avec le système
Le cycle de vie
Windows Phone 8 alphorm.com™©
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Le cycle de vie
25/08/2014
125
Plan
• 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
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™©
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
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
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
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
25/08/2014
131
Les interactions avec le système
Launchers et choosers
Windows Phone 8 alphorm.com™©
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Launchers et choosersEt équivalents sous 8.1
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
25/08/2014
133
Launchers
• BingMapsTask
• ConnectionSettingsTask
• EmailComposeTask
• PhoneCallTask
Windows Phone 8 alphorm.com™©
• …
• Dans l’espace de nommage Microsoft.Phone.Tasks
25/08/2014
134
Choosers
• AddressChooserTask
• PhotoChooserTask
• SaveContactTask
• …
Windows Phone 8 alphorm.com™©
• Ces tâches sont prévues pour retourner une information
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™©
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™©
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
25/08/2014
138
Les interactions avec le système
Les settings
Windows Phone 8 alphorm.com™©
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Les settings
25/08/2014
139
Plan
• ApplicationData
• Exemple de code pour sauver les paramètres
• Exemple de code pour charger les paramètres
Windows Phone 8 alphorm.com™©
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
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™©
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();
• }
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
25/08/2014
144
Les interactions avec le système
Le stockage local
Windows Phone 8 alphorm.com™©
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Le stockage local
25/08/2014
145
Plan
• ApplicationData
• Stockage « local » ou « roaming »
• Stockage temporaire
Windows Phone 8 alphorm.com™©
25/08/2014
146
Windows.Storage.ApplicationData
• Current
• LocalFolder
• LocalSettings
• RoamingFolder
Windows Phone 8 alphorm.com™©
• RoamingSettings
• RoamingStorageQuota
• TemporaryFolder
• Version
25/08/2014
147
Stockage local
• Propriété LocalFolder de ApplicationData
• Pour des données larges
• Valable pour le matériel local uniquement
Windows Phone 8 alphorm.com™©
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
25/08/2014
149
Stockage temporaire
• Propriété TemporaryFolder
• Le système peut nettoyer les données
• L’utilisateur peut nettoyer les données
Windows Phone 8 alphorm.com™©
25/08/2014
150
Ce qu’on a couvert
• ApplicationData
• Stockage « local » ou « roaming »
• Stockage temporaire
Windows Phone 8 alphorm.com™©
FIN
25/08/2014
151
Les interactions avec le système
Les fichiers et répertoires
Windows Phone 8 alphorm.com™©
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Les fichiers et répertoires
25/08/2014
152
Plan
• Généralités
• Le répertoire d’installation
• Les FileOpenPicker et FolderPicker
• Les répertoires supplémentaires
Windows Phone 8 alphorm.com™©
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
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™©
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™©
• …
25/08/2014
156
Les répertoires supplémentaires
• KnownFolders.MusicLibrary
• KnownFolders.PicturesLibrary
• KnownFolders.VideosLibrary
• KnownFolders.HomeGroup
Windows Phone 8 alphorm.com™©
• …
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
25/08/2014
158
Les interactions avec le système
SQL
Windows Phone 8 alphorm.com™©
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
SQL
25/08/2014
159
Plan
• SQLite
• Créer une base
• Insérer une élément
• Récupérer les infos
Windows Phone 8 alphorm.com™©
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
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();
• }
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™©
• }
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();
• }
• }
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
25/08/2014
165
Les accès réseau
Les accès au Web
Windows Phone 8 alphorm.com™©
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Les accès au Web
25/08/2014
166
Plan
• HttpClient
• Méthodes Delete, Get, Put, Post
• HttpResponseMessage
• Cookies et en-têtes HTTP
Windows Phone 8 alphorm.com™©
25/08/2014
167
HttpClient
• Windows.Web.Http.HttpClient
• Classe à instancier
• Méthode GetStringAsync(uri) retourne le contenu
• Ne pas oublier l’appel à Dispose
Windows Phone 8 alphorm.com™©
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
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
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
• …
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
25/08/2014
172
Les accès réseau
Les services WCF
Windows Phone 8 alphorm.com™©
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Les services WCF
25/08/2014
173
Plan
• Les services WCF
• Créer un service WCF
• Consommer un service
Windows Phone 8 alphorm.com™©
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™©
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
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™©
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
25/08/2014
178
Les accès réseau
Les services mobiles
Windows Phone 8 alphorm.com™©
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Les services mobiles
25/08/2014
179
Plan
• Le compte Azure
• Définir un service mobile
• Utiliser le service mobile
Windows Phone 8 alphorm.com™©
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™©
25/08/2014
181
Définir un service mobile
• Fournir une url
• Lier une base de données
Windows Phone 8 alphorm.com™©
25/08/2014
182
Utiliser un service mobile
• Etablir la connexion
• Accéder aux tables
• Procéder avec les applications générées
Windows Phone 8 alphorm.com™©
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
25/08/2014
184
Les accès réseau
Les services de notifications
Windows Phone 8 alphorm.com™©
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Les services de notifications Push
25/08/2014
185
Plan
• Les étapes
• PushNotificationChannelManager
• HttpNotificationChannel
Windows Phone 8 alphorm.com™©
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
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
25/08/2014
188
HttpNotificationChannel
• Espace de nommage Miscrosoft.Phone.Notification
• Propriétés
� ChannelName
� ChannelUri
ConnectionStatus
Windows Phone 8 alphorm.com™©
� ConnectionStatus
� IsShellTileBound
� IsShellToastBound
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™©
25/08/2014
190
Détails
• Les notifications peuvent être récupérées
� Par un toast
� Par une tuile
• Les méthodes du manager à utiliser sont différentes
Windows Phone 8 alphorm.com™©
25/08/2014
191
Ce qu’on a couvert
• Les étapes
• PushNotificationChannelManager
• HttpNotificationChannel
Windows Phone 8 alphorm.com™©
FIN
25/08/2014
192
Les capteurs
L’accéléromètre
Windows Phone 8 alphorm.com™©
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
L’accéléromètre
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™©
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
25/08/2014
195
Récupérer les données
• AccelerometerReading
• Accelerometer.GetCurrentReading()
Windows Phone 8 alphorm.com™©
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™©
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
25/08/2014
198
Les capteurs
Géolocalisation
Windows Phone 8 alphorm.com™©
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Géolocalisation
25/08/2014
199
Plan
• Récupération de position
• L’espace de nommage Geofencing
Windows Phone 8 alphorm.com™©
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
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
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
25/08/2014
203
Les capteurs
La caméra
Windows Phone 8 alphorm.com™©
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
La caméra
25/08/2014
204
Plan
• Classe MediaCapture
• Lancer un preview
• Générer une photo à partir de la caméra
Windows Phone 8 alphorm.com™©
25/08/2014
205
MediaCapture
• Espace de nommage Windows.Media.Capture
• InitializeAsync()
• StartPreviewAsync() / Stop
• CapturePhotoToStorageFileAsync()
Windows Phone 8 alphorm.com™©
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™©
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™©
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
25/08/2014
209
Conclusion
Windows Phone 8/8.1
Windows Phone 8 alphorm.com™©
Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Windows Phone 8/8.1
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
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™©