Lo splash screen è quell'immagine che appare all'avvio dell'applicazione e "intrattiene" l'utente durante il caricamento iniziale dell'applicazione. Il tempo di visualizzazione che trascorre parte dalla pressione dell'utente sul nome dell'app, fino a quando la prima pagina è stata caricata e visualizzata. Per caricamento intendiamo quelle attività inerenti all'interfaccia e non rientrano attività asincrone come le chiamate HTTP o su altri thread.
Ci sono app però, che per mostrare la prima pagina necessitano di effettuare anche questo genere di operazioni asincrone, e quindi viene utile mostrare all'utente lo splash screen anche durante tali attività. Il trucco per raggiungere questo obbiettivo consiste nell'inserire nella prima pagina di navigazione la stessa immagine dello splash screen, e in essa avviare tutte le attività asincrone. Preparate tutte le informazioni e memorizzate in classi statiche, o oggetti condivisi tra le pagine, possiamo in automatico navigare alla seconda pagina, che di fatto è la vera pagina iniziale. In essa è fondamentale scrivere le seguenti righe di codice:
protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e) { base.OnNavigatedTo(e); while (this.NavigationService.CanGoBack) this.NavigationService.RemoveBackEntry(); }
In questo modo l'utente, se preme back, esce dall'applicazione e non torna alla pagina di splash screen, come è normale che sia.
A questo punto possiamo scegliere di attuare alcuni piccoli accorgimenti che mirano a rendere il più leggero possibile l'avvio dell'app, in modo da visualizzare immediatamente la pagina di splash screen. Essi sono:
- Mettere il minore numero possibile di risorse nel file App.xaml;
- Impostare tutte le immagini con la build action su "Content" e non su "Resource";
- Eseguire nel costruttore o nel metodo OnNavigatedTo della pagina di splash screen, solo il codice necessario per avviare su un altro thread le operazioni di preparazione dei dati.
Seguite queste istruzioni possiamo, nella pagina di splash screen, inserire animazioni il cui primo fotogramma corrisponda alla immagine di splash screen, in modo da rendere totalmente trasparente all'utente il nostro trucco. Infine, se utilizziamo animazioni che lavorano solo su RenderTransform e non sul layout, otteniamo animazioni fluide che non subiscono rallentamenti a causa dall'attività in background di download ed elaborazioni dei dati.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Generare velocemente pagine CRUD in Blazor con QuickGrid
Ricevere notifiche sui test con Azure Load Testing
Creare un webhook in Azure DevOps
Triggerare una pipeline su un altro repository di Azure DevOps
Inference di dati strutturati da testo con Semantic Kernel e ASP.NET Core Web API
Usare i servizi di Azure OpenAI e ChatGPT in ASP.NET Core con Semantic Kernel
Utilizzare Hybrid Cache in .NET 9
Migliorare la scalabilità delle Azure Function con il Flex Consumption
Effettuare il log delle chiamate a function di GPT in ASP.NET Web API
Cancellare una run di un workflow di GitHub
Potenziare la ricerca su Cosmos DB con Full Text Search
Ordinare randomicamente una lista in C#