Le applicazioni mobile nascono in un contesto differente da quello del software tradizionale e devono, perciò, tenere conto di una serie di fattori molto importanti come il consumo di batteria, le performance, ecc. In questo webinar sarà approfondito il ciclo di vita delle applicazioni Microsoft Windows Phone e come sfruttare due delle caratteristiche peculiari della piattaforma, il Fast Application Switching e il Fast Resume, che consentono di offrire all'utente la migliore esperienza d'uso possibile. / Because mobile applications operate in a different context from that of traditional software, they must take into account important factors such as battery consumption and performance. This webinar will detail the life cycle of Microsoft Windows Phone applications and how to leverage two features of the platform — Fast Application Switching and Fast Resume — enabling your apps to offer users the best experience possible
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Il Ciclo di Vita Fast Application Switching e Fast Resume
1. IL CICLO DI VITA:
FAST APPLICATION
SWITCHING E FAST RESUME
Dan Ardelean
Nokia Developer Champion
dan@xpresscode.eu Twitter: @danardelean
NOKIA WEBINAR
2. Stack di navigazione
Launching & Closing
Dormant & Tombstoned
Dizionari di stato
Fast Application Resume
Obscured & Unobscured
Async & await
AGENDA
3. • Modello di navigazionePage-Based
• Per implementare questo modello di navigazione ogni applicazione ha uno
«Back Stack»
• Navigazioneversouna nuovapaginala vecchiavieneinseritain Back Stack
• Quandoviene premutoil tasto Back o chiamatoil metodoGoBack l’applicazioneritorna
alla primapaginadentroBack Stack
• Se Back Stack è vuotoquandosi navigaindietrol’applicazioneviene chiusa
LE BASI
4. • Possiamo manualmente rimuovere elementi dallo stack
• Non possiamo manualmente aggiungere elementi
• Le pagine possono essere notificatese vengono rimosse dallo stack
STACK DI NAVIGAZIONE
private void PurgeBackStackButton_Click(object sender, RoutedEventArgs
e)
{
while (NavigationService.CanGoBack)
NavigationService.RemoveBackEntry();
}
protected override void OnRemovedFromJournal(JournalEntryRemovedEventArgs
e)
{
base.OnRemovedFromJournal(e);
}
7. Istanza in memoria
Stato applicazione, data e oggetti non vengono
modificati
Deve essere pronta per essere chiusa
DORMANT
Not running
Running
LaunchingClosing
DeactivatingActivating
Dormant
11. Riattiva l’istanza dormant se l’utente lancia una
nuova istanza
Necessario per le applicazioni che fanno
tracking della posizionee non solo
FAST APPLICATION RESUME
Tombstoned
Not running
Running
LaunchingClosing
DeactivatingActivating
Dormant
20. • Riattiva l’istanza Dormant, se esiste, quando l’utente lancia nuovamente
l’applicazione
• Per abilitare la funzionalità bisogna modificare
PropertiesWMAppManifest.xml
FAST APPLICATION RESUME
<Tasks>
<DefaultTask Name ="_default" NavigationPage="MainPage.xaml"
ActivationPolicy="Resume">
</Tasks>
21.
22. • Quando l’interfaccia utente viene oscurata: notifiche toast, lockscreen,
chiamata in arrivo
• L’applicazionecontinua girare in background
• Per far girare l’applicazione dietro Lockscreen
• Per disabilitareil Lockscreen
OBSCURED & UNOBSCURED
PhoneApplicationService.Current.ApplicationIdleDetectionMode = IdleDetectionMode.Disabled;
PhoneApplicationService.Current.UserIdleDetectionMode = IdleDetectionMode.Disabled;
23. • Cosa succede quando usiamo async e await per Application_Closing e
Application_Deactivate?
• Meccanismo per applicazioni Windows Store
ASYNC E AWAIT
var deferral = e.SuspendingOperation.GetDeferral();
//TODO: Save application state and stop any background activity.
await ExecuteAsync();
deferral.Complete();