Slide 1

Slide 1 text

Cycle de vie d'une application Windows 8 et Windows Phone 8 Christopher MANEU Mobile UI Engineer Deezer.com Code / Développement @cmaneu http://maneu.net

Slide 2

Slide 2 text

No content

Slide 3

Slide 3 text

ARRÊTER DÉMARRER

Slide 4

Slide 4 text

• Le « vrai » cycle de vie des applications, • Bien démarrer son application, • L’arrêt de l’application, • Exécuter du code en tâche de fond Au sommaire

Slide 5

Slide 5 text

Tout le monde connait le cycle de la vie, non ?

Slide 6

Slide 6 text

Tout le monde connait le cycle de la vie, non ?

Slide 7

Slide 7 text

Pourquoi avoir un tel cycle de vie ? Usage répété et court Economies de batterie Multitâche

Slide 8

Slide 8 text

Les enjeux d’une bonne gestion du cycle de vie • Sauvegarder et restaurer efficacement « son contexte», • Conserver des performances/réactivité pendant ces opérations, • Quid du cycle de vie par rapport à la navigation ? • Quid du cycle de vie par rapport à l’architecture ?

Slide 9

Slide 9 text

Le lancement, une étape complexe 1. Initialiser toutes les classes obligatoires (VMLocator, IoC, …) 2. Vérifier si l’utilisateur est connecté/reconnu 3. Charger les données de l’utilisateur/l’app 4. Télécharger les données mises à jour 5. Commencer à s’occuper du lancement

Slide 10

Slide 10 text

Le lancement, une étape complexe Boot Screen Fichier Tuile Search Share

Slide 11

Slide 11 text

La gestion du démarrage

Slide 12

Slide 12 text

Adaptez votre application au monde des enfants ApplicationProfile. Modes

Slide 13

Slide 13 text

Tester notre démarrage • Chaque moyen de lancer l’application peut être un nouveau piège – URL mal formée – Fichier corrompu, – …

Slide 14

Slide 14 text

Popcorn

Slide 15

Slide 15 text

Le cycle de vie ne suffit pas ! • Les objets • Les pages • Les ViewModels

Slide 16

Slide 16 text

Le modèle de navigation

Slide 17

Slide 17 text

Le règne des HyperlinkButtons NavigateUri={Binding ResumeTaches.DetailUri} NavigateUri={ Binding Operateur.Det ailUri} NavigateUri={ Binding Operateur.Det ailUri}

Slide 18

Slide 18 text

Du routing dans mon téléphone !

Slide 19

Slide 19 text

Ajouter une « conscience » à nos ViewModels • IActiveAware – Obscurci, – Suspendu, … • INavigationAware – OnNavigatedTo – OnNavigatingFrom

Slide 20

Slide 20 text

Navigation et ViewModels

Slide 21

Slide 21 text

Fermeture • Sauvegarder les données/le travail de l’utilisateur • Enregistrer les préférences • Mettre à jour les données sur le serveur

Slide 22

Slide 22 text

Suspension • Faire exactement la même chose que la fermeture • Anticiper la fermeture et la suspension avant qu’elles n’arrivent

Slide 23

Slide 23 text

Les différents moyens de sauvegarder ses données • Mémoire • Fichiers temporaires • Roaming (uniquement Windows 8) • Cache HTTP • Cloud

Slide 24

Slide 24 text

Akavache, le cache des héros

Slide 25

Slide 25 text

« Alive, in motion »

Slide 26

Slide 26 text

Background downloader Background file transferts Tuiles Tuiles Push Push Audio Audio Background tasks Background Location Periodic tasks Windows 8 Windows Phone

Slide 27

Slide 27 text

Background transferts • Téléchargements et uploads de données en HTTP • Fonctionne y compris si l’application est en cours d’exécution (et c’est même conseillé) • Tous vos appels HTTP ne doivent pas utiliser les BTS: Images, fichiers volumineux (>500Ko/1mb

Slide 28

Slide 28 text

Tuiles • Peuvent êtres mises à jour par une background task, une Url ou une notification • Attention au délai de mise à jour (!= direct)

Slide 29

Slide 29 text

Background tasks W • Différents canaux de réveils – Channel control – Evénement système (internet, sms, timezone, …) – Minuteur – Notifications Push • Des contraintes très fortes (1 seconde/2h) • Les tâches de maintenances peuvent être utiles

Slide 30

Slide 30 text

Periodic tasks (WP) • S’exécute environ toutes les 15 minutes, • Peut ne pas s’exécuter ou s’arrêter de s’exécuter rapidement, • A utiliser pour apporter un « confort », pas pour une fonctionnalité importante • Les resources-intensives tasks ont des cas d’usages peu évidents

Slide 31

Slide 31 text

Location background tracking (WP8) • Une application qui s’exécute en permanence en background • Uniquement si vous avez besoin des APIs de Location • Pensez à alléger le fonctionnement de l’app (IActiveAware)

Slide 32

Slide 32 text

• Centrer son application autour de la navigation • Rendre vos VMs « aware » avec INavigationAware/IActiveAware, • Bien travailler le démarrage de l’application Pour résumer

Slide 33

Slide 33 text

Formez-vous en ligne Retrouvez nos évènements Faites-vous accompagner gratuitement Essayer gratuitement nos solutions IT Retrouver nos experts Microsoft Pros de l’IT Développeurs www.microsoftvirtualacademy.com http://aka.ms/generation-app http://aka.ms/evenements- developpeurs http://aka.ms/itcamps-france Les accélérateurs Windows Azure, Windows Phone, Windows 8 http://aka.ms/telechargements La Dev’Team sur MSDN http://aka.ms/devteam L’IT Team sur TechNet http://aka.ms/itteam

Slide 34

Slide 34 text

Accélérateur Windows Ressources Coaching Visibilité aka.ms/accelerateur-windows Plus d’info ? RDV stand Windows 8 L’Accélérateur Windows

Slide 35

Slide 35 text

Merci Retrouvez le contenu de la session sur le site des TechDays et sur http://maneu.net/mstd13-cycledevie

Slide 36

Slide 36 text

Life Stage designed by Jeff Gerlach from The Noun Project