1. Live Tile, Background Agent e Push Notification
Luca Cestola
luca.cestola@domusdotnet.org
@lucacestola
2. Un approccio differente
Con Windows 8 la nostra applicazione ha diversi modi
per comunicare attivamente informazioni all’utente.
Dove?
• Start screen
• Lock screen
Come?
• Tiles
• Toast
• Badge
3. Start screen e Lock screen
Start screen
• È dove risiedono le Tiles delle applicazioni.
• Si può organizzare la posizione e la grandezza delle
Tiles e decidere quali includere o escludere.
• Veicola informazioni che hanno a che fare con le
nostre applicazioni
Lock screen
• In maniera ridotta, offre comunque la possibilità alle
nostre applicazioni di comunicare con l’utente alcune
informazioni utili.
4. Tiles: cos’è?
“Una tile è la rappresentazione di una app sullo start
screen” Rappresenta un punto di ingresso alla nostra
applicazione, ma è anche veicolo attivo di informazioni
verso l’utente.
• Principale o secondaria
• Due grandezze: Square o Wide
• Se esistono entrambe, l’utente può scegliere quale
grandezza visualizzare.
• Zero o più tile secondarie
• Ogni tile secondaria può offrire un diverso contenuto
e punto di ingresso all’applicazione
5. Live Tiles: perché?
Investire del tempo nelle Live Tiles perché:
• Rappresentano un elemento distintivo per la
nostra app.
• Posizionamento migliore sullo Start Screen
• Una Live Tile è più accattivante (ed utile) di
una statica
• Se l’aspetto non è accattivante e le
informazioni non sono utili l’utente la Tile verrà
posizionata in fondo allo Start Screen
7. Live Tiles: perché?
Caratteristiche da tenere in considerazione:
• Non è solo una questione di «gradevolezza»
• Contenuti nuovi e frequenti comunicano che la
nostra applicazione è «viva»
• Informazioni personalizzate tramite ciò che
conosciamo dell’utente (app settings o info
presenti sui social)
• Informazioni contestualizzate (ad esempio
localizzazione GPS)
8. Aspetto grafico: Dimensioni
Le tiles possono avere aspetti grafici
differenti. Si devono utilizzare i
template predefiniti.
• Square Tile
• Contenuti e testo ridotti
• Possono contenere un badge e
un glyph o un numero
• Wide Tile
• Più spazio e di conseguenza
più immagini o testo
10. Aspetto grafico: Errori da evitare
Il brand o il nome dell’applicazione hanno un
loro apposito posizionamento, evitate di
ripetere tali informazioni in altre posizioni
12. Toast
• É una notifica popup che appare in alto a
destra sullo schermo.
• Template come per le tiles
http://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.notifications.toasttemplatetype
• Uno è poco due sono troppi da usare
per comunicazioni importanti senza
esagerare se non si vuole che l’utente le
disabiliti.
14. Aggiornamenti tramite notifica
I contenuti delle tiles possono essere
aggiornati tramite notifiche, in uno dei
seguenti modi:
• direttamente dall’ app
• da un Task in background
• da un Push Notification Message
15. Xml di notifica
La notifica avviene tramite uno specifico formato xml
http://msdn.microsoft.com/en-us/library/windows/apps/br212853.aspx
La libreria WnsRecipe installabile tramite NuGet offre un
model per semplificare la creazione delle notifiche per
Tile, Toast e Badge
17. Background Tasks
• Windows 8 consente alle Store App di eseguire
operazioni anche se non sono correntemente attive
(Running).
• L’esecuzione del Background task, una volta
registrato, è gestito dal sistema operativo
• Tali operazioni sono eseguite in un host esterno
all’applicazione (BackgroundTaskHost.exe) o
all’interno della nostra App a seconda delle
impostazioni o delle condizioni correnti della nostra
App (Running, Suspended, Terminated)
• I task sono attivati attraverso Trigger specifici per ogni
tipologia di evento e possono avere delle precondizioni
18. Background Task: Triggers
Background task trigger type Trigger event When the background task is triggered
ControlChannelTrigger ControlChannelTrigger On incoming messages on the control channel.
MaintenanceTrigger MaintenanceTrigger It’s time for maintenance background tasks.
PushNotificationTrigger PushNotificationTrigger A raw notification arrives on the WNS channel.
SystemEventTrigger InternetAvailable The Internet becomes available.
SystemEventTrigger SmsReceived A new SMS message is received by an installed
mobile broadband device.
SystemEventTrigger UserAway The user becomes absent.
SystemEventTrigger UserPresent The user becomes present.
TimeTrigger TimeTrigger A time event occurs.
19. Background Task: Task Conditions
Background task condition The condition that must be satisfied
InternetAvailable The Internet must be available.
InternetNotAvailable The Internet must be unavailable.
SessionConnected The session must be connected.
SessionDisconnected The session must be disconnected.
UserNotPresent The user must be away.
UserPresent The user must be present.
20. Background Task: Host types
Background task trigger type Host executable
TimeTrigger Cannot be specified (default system host)
SystemTrigger Cannot be specified (default system host)
MaintenanceTrigger Cannot be specified (default system host)
PushNotificationTrigger Application provided exe OR Not specified
(default system host)
ControlChannelTrigger Application provided exe
23. Push notification: WNS
• Il Windows Push Notification Services (WNS)
permette l’invio di notifiche alle nostre
Windows Store App installate su un
determinato device.
• Tramite WNS un servizio cloud o classico può
inviare alla nostra Store App notifiche
toast, tile, badge o raw.
• Il server ottiene un canale di comunicazione
valido verso il WNS tramite il
PackageSecurityidentifier ed il ClientSecret
associati all’app.
25. Demo: Push Notifications
• Richiesta di un Canale per le notifiche al
client
• Simulazione di invio di notifiche da server
26. Riferimenti e risorse
• White papers
http://msdn.microsoft.com/en-us/library/windows/apps/hh465413.aspx
• Guidelines and checklist for tiles and badges
http://msdn.microsoft.com/en-us/library/windows/apps/hh465403.aspx
• Guidelines and checklist for background tasks
http://msdn.microsoft.com/en-us/library/windows/apps/hh977043.aspx
• Guidelines and checklist for push notifications
http://msdn.microsoft.com/en-us/library/windows/apps/Hh761462.aspx
• Samples
http://code.msdn.microsoft.com/windowsapps