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
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 : 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/
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 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
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 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
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 Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : 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 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
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 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
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 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
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 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
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 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
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 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
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 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
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 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
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 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
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 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’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 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
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 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
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 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
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 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
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 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
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 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
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 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
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 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
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 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
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 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
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 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
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 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
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 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
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 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
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 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’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 Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Forum : 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 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
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 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
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™©

Alphorm.com-Formation windows phone 8.1

  • 1.
    25/08/2014 1 Présentation de laformation 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 duformateur • 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/
  • 4.
    25/08/2014 4 Mes formations déjàréalisées sur alphorm.com Windows Phone 8 alphorm.com™©
  • 5.
    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
  • 6.
    25/08/2014 6 Qu’est ce quec’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 deformation 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
  • 8.
    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™©
  • 9.
    25/08/2014 9 Publics concernés • Toutdé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 • Basesde 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™©
  • 11.
    25/08/2014 11 Les références • Unsystème Windows 8 • Le site dev.windows.com • Visual Studio 2013, Update 2 Windows Phone 8 alphorm.com™©
  • 12.
    25/08/2014 12 Are you ready? ☺ Windows Phone 8 alphorm.com™©
  • 13.
    25/08/2014 13 Introduction Visual Studio etBlend 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
  • 14.
    25/08/2014 14 Plan • Visual Studio2013 • Edition du code C# vs XAML • Propriétés de projets • Blend Windows Phone 8 alphorm.com™©
  • 15.
  • 16.
    25/08/2014 16 Edition du codeC# vs XAML Windows Phone 8 alphorm.com™©
  • 17.
  • 18.
  • 19.
    25/08/2014 19 Ce qu’on acouvert • 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 projetsWP 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
  • 22.
    25/08/2014 22 Application Windows Phone •PhoneApplicationFrame • PhoneApplicationPage • Canvas, Border, Grid Windows Phone 8 alphorm.com™©
  • 23.
    25/08/2014 23 Application liée auxdonnées • Utilise une liste liée • Navigation facile en partant des items sélectionnés Windows Phone 8 alphorm.com™©
  • 24.
    25/08/2014 24 Application Panorama • Unpanorama 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.
    25/08/2014 25 Application Pivot • Alternativeau panorama • Contient des items qui sont rapidement accessibles Windows Phone 8 alphorm.com™©
  • 26.
    25/08/2014 26 Application XAML etDirect3D • 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
  • 27.
    25/08/2014 27 Application HTML5 • Utilisablevia le composant WebBrowser, navigateur HTML Windows Phone 8 alphorm.com™©
  • 28.
    25/08/2014 28 Ce qu’on acouvert • 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
  • 29.
    25/08/2014 29 Introduction Emulateur et matériel WindowsPhone 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 Emulateur et matériel
  • 30.
    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™©
  • 31.
    25/08/2014 31 L’émulateur WP • L’émulateurWindows 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 del’é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 unmaté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 acouvert • 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 et8.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
  • 37.
    25/08/2014 37 Plan • Les projetsVisual Studio • La convergence vers Windows Store Apps • Les nouveautés de 8.1 Windows Phone 8 alphorm.com™©
  • 38.
    25/08/2014 38 Les projets VisualStudio • 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
  • 39.
    25/08/2014 39 La convergence WindowsStore • Modèle d’application et cycle de vie • Manifest, construction et déploiement • XAML Windows Phone 8 alphorm.com™©
  • 40.
    25/08/2014 40 Les nouveautés de8.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 acouvert • 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 Construirel’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
  • 43.
    25/08/2014 43 Plan • L’application, lespages • Utiliser la boîte à outils Les layout Les contrôles • Edition du XAML Windows Phone 8 alphorm.com™© • Edition du XAML • Edition du C#
  • 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 acouvert • 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éliorerl’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 dedates, 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 dateset 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 entrecontrô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 desentré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 avecPivot • 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 applicationbar • 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 acouvert • 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 Gestiondes é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 descallbacks 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 disponiblessur 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 decommande • 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 acouvert • 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 Lesgestion 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 exceptionsCLR • 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 dansla 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 decapacité • 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 acouvert • 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 Lesressources 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épertoireAssets • 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, contenuou 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™©
  • 74.
    25/08/2014 74 Les images enXAML • Balise Image, propriété Source Windows Phone 8 alphorm.com™©
  • 75.
    25/08/2014 75 Les images enC# • Possibilité de positionner les images sources Windows Phone 8 alphorm.com™©
  • 76.
    25/08/2014 76 Les images pourpublier 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 etles 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 acouvert • 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 comptedé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
  • 80.
    25/08/2014 80 Plan • Créer uncompte développeur • Le site dev.windows.com Windows Phone 8 alphorm.com™©
  • 81.
    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™©
  • 82.
    25/08/2014 82 Créer un comptedé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 acouvert • 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 WindowsPhone 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
  • 85.
  • 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™©
  • 87.
    25/08/2014 87 Contenu • Identité dupackage • Dépendances • Capacités requises • Elements visuels Windows Phone 8 alphorm.com™© • Points d’extension
  • 88.
    25/08/2014 88 Ce qu’on acouvert • Définition • Contenu Windows Phone 8 alphorm.com™© FIN
  • 89.
    25/08/2014 89 Le déploiement Le package WindowsPhone 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
  • 90.
    25/08/2014 90 Plan • Construire lepackage • Le Kit de certification • Soumettre l’application Windows Phone 8 alphorm.com™©
  • 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 decertification • 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 • Lasoumission 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 acouvert • Construire le package • Le Kit de certification • Soumettre l’application Windows Phone 8 alphorm.com™© FIN
  • 95.
    25/08/2014 95 Le déploiement L’internationalisation Windows Phone8 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’internationalisation
  • 96.
    25/08/2014 96 Plan • Traduction desressources utilisateur • L’internationalisation de ressources image, audio, vidéo… Windows Phone 8 alphorm.com™©
  • 97.
    25/08/2014 97 Traduction des ressourcesutilisateur • 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 acouvert • 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 Lesdiffé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
  • 101.
    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™©
  • 102.
    25/08/2014 102 L’application vide • L’ihmest 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 ouPanorama • 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™©
  • 104.
    25/08/2014 104 L’application Pivot • L’applicationPivot 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™©
  • 105.
    25/08/2014 105 L’application Webview ouHTML • 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™©
  • 106.
    25/08/2014 106 Ce qu’on acouvert • 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 Lanavigation 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
  • 108.
    25/08/2014 108 Plan • OnNavigatedFrom /OnNavigatedTo • NavigationService • Frame : Navigate, GoBack, GoForward • NavigationHelper / SyspensionManager Windows Phone 8 alphorm.com™©
  • 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™©
  • 110.
    25/08/2014 110 NavigationService • Disponible pourSilverlight 8.1 • Founir l’URI de la page cible • NavigationService.Navigate(new Uri( …)) Windows Phone 8 alphorm.com™©
  • 111.
    25/08/2014 111 Frame • Sur laclasse 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 acouvert • OnNavigatedFrom / OnNavigatedTo • NavigationService • Frame : Navigate, GoBack, GoForward • NavigationHelper / SuspensionManager Windows Phone 8 alphorm.com™© FIN
  • 114.
    25/08/2014 114 Les interfaces graphiques L’interfaceDirectX 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 Nepermet 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 • Lafenê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
  • 117.
    25/08/2014 117 XAML et DirectX •Possibilité de mixer XAML et accès direct à l’affichage • Moindre performance Windows Phone 8 alphorm.com™©
  • 118.
    25/08/2014 118 Ce qu’on acouvert • 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 Actionet 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
  • 120.
    25/08/2014 120 Plan • Les mouvementsutilisateur • Les niveaux de traitements Windows Phone 8 alphorm.com™©
  • 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 detraitements • 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 acouvert • Les mouvements utilisateur • Les niveaux de traitements Windows Phone 8 alphorm.com™© FIN
  • 124.
    25/08/2014 124 Les interactions avecle 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
  • 125.
    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
  • 126.
    25/08/2014 126 Les états d’uneapplication • 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 • Ilpeut 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 • Uneapplication 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 deApp • 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 acouvert • 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 avecle 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 Phone8.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
  • 133.
    25/08/2014 133 Launchers • BingMapsTask • ConnectionSettingsTask •EmailComposeTask • PhoneCallTask Windows Phone 8 alphorm.com™© • … • Dans l’espace de nommage Microsoft.Phone.Tasks
  • 134.
    25/08/2014 134 Choosers • AddressChooserTask • PhotoChooserTask •SaveContactTask • … Windows Phone 8 alphorm.com™© • Ces tâches sont prévues pour retourner une information
  • 135.
    25/08/2014 135 Sous Windows Phone8.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 Phone8.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 acouvert • 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 avecle 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
  • 139.
    25/08/2014 139 Plan • ApplicationData • Exemplede code pour sauver les paramètres • Exemple de code pour charger les paramètres Windows Phone 8 alphorm.com™©
  • 140.
    25/08/2014 140 ApplicationData • Classe deWindows.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 codepour 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 chargerles 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 acouvert • 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 avecle 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
  • 145.
    25/08/2014 145 Plan • ApplicationData • Stockage« local » ou « roaming » • Stockage temporaire Windows Phone 8 alphorm.com™©
  • 146.
    25/08/2014 146 Windows.Storage.ApplicationData • Current • LocalFolder •LocalSettings • RoamingFolder Windows Phone 8 alphorm.com™© • RoamingSettings • RoamingStorageQuota • TemporaryFolder • Version
  • 147.
    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™©
  • 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
  • 149.
    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™©
  • 150.
    25/08/2014 150 Ce qu’on acouvert • ApplicationData • Stockage « local » ou « roaming » • Stockage temporaire Windows Phone 8 alphorm.com™© FIN
  • 151.
    25/08/2014 151 Les interactions avecle 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
  • 152.
    25/08/2014 152 Plan • Généralités • Lerépertoire d’installation • Les FileOpenPicker et FolderPicker • Les répertoires supplémentaires Windows Phone 8 alphorm.com™©
  • 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 • Leré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™© • …
  • 156.
    25/08/2014 156 Les répertoires supplémentaires •KnownFolders.MusicLibrary • KnownFolders.PicturesLibrary • KnownFolders.VideosLibrary • KnownFolders.HomeGroup Windows Phone 8 alphorm.com™© • …
  • 157.
    25/08/2014 157 Ce qu’on acouvert • 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 avecle 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
  • 159.
    25/08/2014 159 Plan • SQLite • Créerune base • Insérer une élément • Récupérer les infos Windows Phone 8 alphorm.com™©
  • 160.
    25/08/2014 160 SQLite • SQLite etSQLitePCL • 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 (varst = 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 acouvert • 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 Lesaccè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
  • 166.
    25/08/2014 166 Plan • HttpClient • MéthodesDelete, Get, Put, Post • HttpResponseMessage • Cookies et en-têtes HTTP Windows Phone 8 alphorm.com™©
  • 167.
    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™©
  • 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 deWindows.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 acouvert • 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 Lesservices 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
  • 173.
    25/08/2014 173 Plan • Les servicesWCF • Créer un service WCF • Consommer un service Windows Phone 8 alphorm.com™©
  • 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 serviceWCF • 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 acouvert • 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 Lesservices 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
  • 179.
    25/08/2014 179 Plan • Le compteAzure • Définir un service mobile • Utiliser le service mobile Windows Phone 8 alphorm.com™©
  • 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™©
  • 181.
    25/08/2014 181 Définir un servicemobile • Fournir une url • Lier une base de données Windows Phone 8 alphorm.com™©
  • 182.
    25/08/2014 182 Utiliser un servicemobile • Etablir la connexion • Accéder aux tables • Procéder avec les applications générées Windows Phone 8 alphorm.com™©
  • 183.
    25/08/2014 183 Ce qu’on acouvert • 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 Lesservices 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
  • 185.
    25/08/2014 185 Plan • Les étapes •PushNotificationChannelManager • HttpNotificationChannel Windows Phone 8 alphorm.com™©
  • 186.
    25/08/2014 186 Les étapes • Enregistrerson 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 denommage 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
  • 188.
    25/08/2014 188 HttpNotificationChannel • Espace denommage Miscrosoft.Phone.Notification • Propriétés ChannelName ChannelUri ConnectionStatus Windows Phone 8 alphorm.com™© ConnectionStatus IsShellTileBound IsShellToastBound
  • 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™©
  • 190.
    25/08/2014 190 Détails • Les notificationspeuvent ê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™©
  • 191.
    25/08/2014 191 Ce qu’on acouvert • Les étapes • PushNotificationChannelManager • HttpNotificationChannel Windows Phone 8 alphorm.com™© FIN
  • 192.
    25/08/2014 192 Les capteurs L’accéléromètre Windows Phone8 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’accéléromètre
  • 193.
    25/08/2014 193 Plan • Les événementsde 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 dedonnées • Espaces de nommage : Microsoft.Devices.Sensors • Classe Accelerometer • Testable IsSupported Windows Phone 8 alphorm.com™© • Evenement Reading • AccelerometerReading.Acceleration
  • 195.
    25/08/2014 195 Récupérer les données •AccelerometerReading • Accelerometer.GetCurrentReading() Windows Phone 8 alphorm.com™©
  • 196.
    25/08/2014 196 Motion • Créer unobjet 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 acouvert • Les événements de données • Récupérer les données à intervalles réguliers • Motion Windows Phone 8 alphorm.com™© FIN
  • 198.
    25/08/2014 198 Les capteurs Géolocalisation Windows Phone8 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 Géolocalisation
  • 199.
    25/08/2014 199 Plan • Récupération deposition • L’espace de nommage Geofencing Windows Phone 8 alphorm.com™©
  • 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 nommageGeofencing • 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 acouvert • 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 WindowsPhone 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
  • 204.
    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™©
  • 205.
    25/08/2014 205 MediaCapture • Espace denommage Windows.Media.Capture • InitializeAsync() • StartPreviewAsync() / Stop • CapturePhotoToStorageFileAsync() Windows Phone 8 alphorm.com™©
  • 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 acouvert • 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 WindowsPhone 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 nousavons 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™©