Fundamentals of Metro Style Apps : How and when your application will run ?

Message de Roch Baduel (Le 14-09-2011)

La session aborde le cycle de vie des applications Metro, comment donner l’impression qu’elles sont toujours en train de fonctionner en sauvegardant l’état et le restaurant  et l’utilisation des notifications dans Windows 8.
Après un délai une application est suspendue, ceci se produit après un certain délai : l’application est notifiée. Ensuite l’application peut être terminée en cas de besoin (ex : mémoire)  sans aucune notification.
Une application suspendue peut être résumée instantanément. Quand une application est suspendue elle ne consomme pas de ressource processeur à amélioration de la consommation batterie.
Une application est suspendue en cas de besoin mémoire, arrêt système … ceci se produit sans qu’elle soit notifiée.
On peut voir l’état suspendu dans le gestionnaire des tâches.

Process state transition :
L’application a 5 secondes pour gérér la suspension et est notifiée quand elle est résumée.
Il existe un évènement suspending et resuming.
Les applications suspendues ne sont pas planifiées pour execution par le Kernel : pas de consommation CPU, Disk, Network. Tous les thread sont suspendus. Cependant le Kernel prends soin de ne pas suspendre les applications dans les sections critiques.
Les applications dans Windows 8 peuvent être lancées de différentes manières, notamment à cause des contrats.

Cycle de lancement :Activation au travers du contrat exposé à L’application initialise le contrat à le contexte du contrat est passé à l’application (ex : contexte de recherche pour le contrat search).

Splash Screen :
Le system procure un splashscreen pendant que votre application est activée. Le splash screen est constitué d’une image et d’un texte.Le développeur fixe la couleur et l’image dans le manifest.
On peut utiliser les APIs pour afficher manuellement un SplashScreen.

Tile launch activation :
L’évènement activated est lancé et le splashscreen s’affiche à l’application affiche son écran principal.
Dans l’évènement d’activiation il y a une propriété Kind qui indique  comment l’application a été lancée (ex : Tile, SharedContracct)

Comment faire pour que votre application paraisse être toujours en train de fonctionner ?

  • Les applications doivent sauvegarder et restaurer leurs états.
  • Sauvegarder au fur et à mesure du fonctionnement
  • Utiliser Windows.Storage.ApplicationData
  • Utiliser éventuellement les IO fichier

Sauvegarde de l’état de la session :

En JS : WinJS.Application.sessionSessionState object
Il s’agit d’un property bag automatiquement sérialiser
En C# SessionStateManager

Que faire en cas de crash applicatif ?

  • Ignorer l’état de la session
  • Redémarrer depuis le début
  • previousExecutionState est une des propriétés exposée par l’évènement d’activation. On peut vérifier la cause de l’arrêt de l’application et ainsi decider si on doit restaurer l’application.

Utiliser les Live Tiles :

Les live tiles peuvent être animées de trois manières :

  •  local quand votre application est en fonctionnement : elle l’update au travers des API
  •  Scheduled
  • Par Notification notamment quand votre application ne fonctionne pas

Fonctionnement des notifications : identiques à WP7

Autres fonctionnalités :

  • Une application peut jouer de l’audio en tache de fonds
  • Une application peut faire des updload / download en tâche de fonds (même quand suspendue)
  • Lock Screen Apps : il s’agit des icônes affichées sur l’écran de verrouillage de windows.Il est possible de les mettre à jour en temps réel. Du code peut être exécuté à intervalles régulier ou répondre à l’événement de login

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s