SlideShare une entreprise Scribd logo
Développer une application
       Winows 8
 Tiré du blog de Loic Rebours : http://blog.loicrebours.fr

                Labo DEV.MS Bruxelles
Lifecycle d’une app METRO
   Clément Hallet – clement.hallet@supinfo.com
Introduction
•Avant : l’utilisateur ouvre, ferme, … gère

•Maintenant : le système gère !

•METRO = full screen donc une app à la fois
                    (valable uniqument pour les applis METRO et non desktop)
Etats d’une app METRO
•RUNNING
App au premier plan
SplashScreen compris. Si ce screen prend +15sec, mise en suspension de l’app

•SUSPENDED
Quand l’user retourne sur le StartScreen METRO
L’app a 5sec pour sauver les données
Sauvegarde l’etat de l’app mais la met de côté en attendant le retour éventuel sur l’app

•TERMINATED
Si le device n’a plus assez de mémoire pour maintenir toutes les app en suspended
PAS DE NOTIFICATION DU SYSTEME QUAND L’APP PASSE EN TERMINATED !!!
Scénario
• L’utilisateur démarre son système et lance l’application Metro
  Finance. Celle-ci est dans l’état Running
• L’utilisateur retourne ensuite sur le start screen et lance l’application
  Meteo. Cette dernière occupe désormais le premier plan. Elle est
  dans l’état Running tandis que l’application Finance passe en
  Suspended; son exécution est arrêtée.
• L’utilisateur retourne sur l’application Finance. Son état est
  immédiatement restauré car le système le conservait en mémoire.
  L’application Finance repasse alors dans l’état Running.
• L’utilisateur lance de multiples applications. Le système manque de
  mémoire et passe l’application Finance dans l’état Terminated.
  Celle-ci n’est plus conservée en mémoire. Son exécution est arrêtée.
Let’s code it ! (App.xaml)
OnLaunched utilise l’objet LaunchActivatedEventsArgs :
Running
Terminated


Mais il existe aussi :
ClosedByUser,
NotRunning,
Suspended
Kind
Kind in example
• Kind définit la facon dont l’app a été activée :




• Où l’application se serait lancée depuis une recherche
La suspension et la reprise
La classe App possède deux évènements :
•Suspending (lancé avant que l’app soit suspendue)
•Resuming (lancé à la reprise de l’app – pour RAFRAICHIR les données si besoin)
                                   Le système restaure les données automatiquement !!!
Car un exemple vaut mieux qu’un long discours
Une app affiche une liste d’éléments dans une ListBox. L’élé
séléctionné doit être sauvé.

Côté XAML, on crée la ListBox dans un GridLayout avec des Item




Côté C# ()MainPage.xaml.cs :
Car un exemple vaut mieux qu’un long discours



Dans l’app.xaml : la variable qui sauve l’index de l’élé sauvé :
                      (Dans app.xaml.cs, juste après la décla de la classe « App » )
Car un exemple vaut mieux qu’un long discours
Maintenant on s’occupe de la sauvegarde de cette valeur pour la
restaurer plus tard si l’app passe en TERMINATED :
Car un exemple vaut mieux qu’un long discours
Maintenant, on fait en sorte que l’app recharge les données une
fois qu’on repasse à l’état RUNNING ! Donc dans l’OnLaunched
on ajoute :




Si on sort de l’état TERMINATED (et si la valeur est bien sauvée), on met en
couleur l’item possédant l’id d’item sauvé !
Car un exemple vaut mieux qu’un long discours
Dernière étape : la sauvegarde de l’itemId !
On la récupère lors de la navigation vers « BlankPage », au sein
de la méthode « OnNavigateTo » (MainPage.xaml.cs) :
Car un exemple vaut mieux qu’un long discours
Tad-Ham
Gestion des états VS
Votre app en mode débug vous donne accès
à la toolbar debug location. Avec celle-ci, on
peut passer d’un état à un autre.
avez-vous des questions ?



            ?
facebook.com/LaboDevM
S

@dev_ms


devms.org

Contenu connexe

Similaire à Développement Windows 8 METRO App part2

Développement des applications REDUX.pptx
Développement des applications REDUX.pptxDéveloppement des applications REDUX.pptx
Développement des applications REDUX.pptx
SoumiaZITI1
 

Similaire à Développement Windows 8 METRO App part2 (20)

Hello PhoneGap
Hello PhoneGapHello PhoneGap
Hello PhoneGap
 
Drupal & Mobilité
Drupal & MobilitéDrupal & Mobilité
Drupal & Mobilité
 
Développement des applications REDUX.pptx
Développement des applications REDUX.pptxDéveloppement des applications REDUX.pptx
Développement des applications REDUX.pptx
 
Cloud & Google app engine Presentation by Ngiambus Marcus
 Cloud & Google app engine Presentation  by Ngiambus Marcus Cloud & Google app engine Presentation  by Ngiambus Marcus
Cloud & Google app engine Presentation by Ngiambus Marcus
 
chapitre 2 Android 2.pptx
chapitre 2 Android 2.pptxchapitre 2 Android 2.pptx
chapitre 2 Android 2.pptx
 
Les ateliers android_1_vers2015
Les ateliers android_1_vers2015Les ateliers android_1_vers2015
Les ateliers android_1_vers2015
 
Les ateliers android_1_vers2015
Les ateliers android_1_vers2015Les ateliers android_1_vers2015
Les ateliers android_1_vers2015
 
Les ateliers android_1_vers2015
Les ateliers android_1_vers2015Les ateliers android_1_vers2015
Les ateliers android_1_vers2015
 
Microsoft experiences'16 - Tester, Monitorer et Déployer son application mobile
Microsoft experiences'16 - Tester, Monitorer et Déployer son application mobileMicrosoft experiences'16 - Tester, Monitorer et Déployer son application mobile
Microsoft experiences'16 - Tester, Monitorer et Déployer son application mobile
 
Tester, Monitorer et Déployer son application mobile
Tester, Monitorer et Déployer son application mobileTester, Monitorer et Déployer son application mobile
Tester, Monitorer et Déployer son application mobile
 
Android
AndroidAndroid
Android
 
Tuto spring
Tuto springTuto spring
Tuto spring
 
chapitre 4 Android 2.pptx
chapitre 4 Android 2.pptxchapitre 4 Android 2.pptx
chapitre 4 Android 2.pptx
 
Tuto bada
Tuto badaTuto bada
Tuto bada
 
Push Notification
Push Notification Push Notification
Push Notification
 
jQuery mobile / PhoneGap : contenus dynamiques client-side
jQuery mobile / PhoneGap : contenus dynamiques client-sidejQuery mobile / PhoneGap : contenus dynamiques client-side
jQuery mobile / PhoneGap : contenus dynamiques client-side
 
#12 et #13 Versioning et JaDOrT
#12 et #13 Versioning et JaDOrT#12 et #13 Versioning et JaDOrT
#12 et #13 Versioning et JaDOrT
 
Détection des mobiles
Détection des mobilesDétection des mobiles
Détection des mobiles
 
Sauvegarder et restaurer l'état des applications mobiles
Sauvegarder et restaurer l'état des applications mobilesSauvegarder et restaurer l'état des applications mobiles
Sauvegarder et restaurer l'état des applications mobiles
 
Mysql
MysqlMysql
Mysql
 

Dernier

Dernier (6)

cours Systèmes de Gestion des Identités.pdf
cours Systèmes de Gestion des Identités.pdfcours Systèmes de Gestion des Identités.pdf
cours Systèmes de Gestion des Identités.pdf
 
Modèles de contrôle d accès_ RBAC (Role Based Access Control).pdf
Modèles de contrôle d accès_ RBAC (Role Based Access Control).pdfModèles de contrôle d accès_ RBAC (Role Based Access Control).pdf
Modèles de contrôle d accès_ RBAC (Role Based Access Control).pdf
 
Augmentez vos conversions en ligne : les techniques et outils qui marchent vr...
Augmentez vos conversions en ligne : les techniques et outils qui marchent vr...Augmentez vos conversions en ligne : les techniques et outils qui marchent vr...
Augmentez vos conversions en ligne : les techniques et outils qui marchent vr...
 
Protéger l'intégrité de son environnement numérique
Protéger l'intégrité de son environnement numériqueProtéger l'intégrité de son environnement numérique
Protéger l'intégrité de son environnement numérique
 
Contrôle d’accès et Gestion des identités: Terminologies et Protocoles d’auth...
Contrôle d’accès et Gestion des identités: Terminologies et Protocoles d’auth...Contrôle d’accès et Gestion des identités: Terminologies et Protocoles d’auth...
Contrôle d’accès et Gestion des identités: Terminologies et Protocoles d’auth...
 
Slides du webinaire de l'Infopole sur l'IA
Slides du webinaire de l'Infopole sur l'IASlides du webinaire de l'Infopole sur l'IA
Slides du webinaire de l'Infopole sur l'IA
 

Développement Windows 8 METRO App part2

  • 1. Développer une application Winows 8 Tiré du blog de Loic Rebours : http://blog.loicrebours.fr Labo DEV.MS Bruxelles
  • 2.
  • 3. Lifecycle d’une app METRO Clément Hallet – clement.hallet@supinfo.com
  • 4. Introduction •Avant : l’utilisateur ouvre, ferme, … gère •Maintenant : le système gère ! •METRO = full screen donc une app à la fois (valable uniqument pour les applis METRO et non desktop)
  • 5. Etats d’une app METRO •RUNNING App au premier plan SplashScreen compris. Si ce screen prend +15sec, mise en suspension de l’app •SUSPENDED Quand l’user retourne sur le StartScreen METRO L’app a 5sec pour sauver les données Sauvegarde l’etat de l’app mais la met de côté en attendant le retour éventuel sur l’app •TERMINATED Si le device n’a plus assez de mémoire pour maintenir toutes les app en suspended PAS DE NOTIFICATION DU SYSTEME QUAND L’APP PASSE EN TERMINATED !!!
  • 6. Scénario • L’utilisateur démarre son système et lance l’application Metro Finance. Celle-ci est dans l’état Running • L’utilisateur retourne ensuite sur le start screen et lance l’application Meteo. Cette dernière occupe désormais le premier plan. Elle est dans l’état Running tandis que l’application Finance passe en Suspended; son exécution est arrêtée. • L’utilisateur retourne sur l’application Finance. Son état est immédiatement restauré car le système le conservait en mémoire. L’application Finance repasse alors dans l’état Running. • L’utilisateur lance de multiples applications. Le système manque de mémoire et passe l’application Finance dans l’état Terminated. Celle-ci n’est plus conservée en mémoire. Son exécution est arrêtée.
  • 7. Let’s code it ! (App.xaml) OnLaunched utilise l’objet LaunchActivatedEventsArgs : Running Terminated Mais il existe aussi : ClosedByUser, NotRunning, Suspended Kind
  • 8. Kind in example • Kind définit la facon dont l’app a été activée : • Où l’application se serait lancée depuis une recherche
  • 9. La suspension et la reprise La classe App possède deux évènements : •Suspending (lancé avant que l’app soit suspendue) •Resuming (lancé à la reprise de l’app – pour RAFRAICHIR les données si besoin) Le système restaure les données automatiquement !!!
  • 10. Car un exemple vaut mieux qu’un long discours Une app affiche une liste d’éléments dans une ListBox. L’élé séléctionné doit être sauvé. Côté XAML, on crée la ListBox dans un GridLayout avec des Item Côté C# ()MainPage.xaml.cs :
  • 11. Car un exemple vaut mieux qu’un long discours Dans l’app.xaml : la variable qui sauve l’index de l’élé sauvé : (Dans app.xaml.cs, juste après la décla de la classe « App » )
  • 12. Car un exemple vaut mieux qu’un long discours Maintenant on s’occupe de la sauvegarde de cette valeur pour la restaurer plus tard si l’app passe en TERMINATED :
  • 13. Car un exemple vaut mieux qu’un long discours Maintenant, on fait en sorte que l’app recharge les données une fois qu’on repasse à l’état RUNNING ! Donc dans l’OnLaunched on ajoute : Si on sort de l’état TERMINATED (et si la valeur est bien sauvée), on met en couleur l’item possédant l’id d’item sauvé !
  • 14. Car un exemple vaut mieux qu’un long discours Dernière étape : la sauvegarde de l’itemId ! On la récupère lors de la navigation vers « BlankPage », au sein de la méthode « OnNavigateTo » (MainPage.xaml.cs) :
  • 15. Car un exemple vaut mieux qu’un long discours Tad-Ham
  • 16. Gestion des états VS Votre app en mode débug vous donne accès à la toolbar debug location. Avec celle-ci, on peut passer d’un état à un autre.