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
Miglioramenti agli screen reader e al contrasto in Angular
Supportare il sorting di dati tabellari in Blazor con QuickGrid
Utilizzare le collection expression in C#
Usare il colore CSS per migliorare lo stile della pagina
Utilizzare i primary constructor in C#
Gestire liste di tipi semplici con Entity Framework Core
Sfruttare lo streaming di una chiamata Http da Blazor
Evitare la command injection in un workflow di GitHub
Creare un webhook in Azure DevOps
Eseguire query manipolando le liste contenute in un oggetto mappato verso una colonna JSON
Usare un KeyedService di default in ASP.NET Core 8
Effettuare chiamate con versioning da Blazor ad ASP.NET Core
I più letti di oggi
- I tutorials, percorsi guidati per tutti
- Costruire applicazioni cross-plaftorm con Visual Studio 2013 e Xamarin
- Creare semplici grafici a barre con ASP
- rilasciato #mono 2.8.1: bug fix importanti, anche di security: http://u.aspitalia.com/o5
- Mappare una relazione uno a molti con Entity Framework Code First
- Dichiarare tutte le proprietà di un record usando solo il costruttore in C#
- Gestire la cancellazione di una richiesta in streaming da Blazor
- Fragment Caching con dipendenza da altri controls
- grazie a tutti per aver seguito #aspilive! tutto il materiale è già online e le registrazioni saranno pubblicate nei prossimi giorni su => https://aspit.co/BlazorConf-20
- Modificare i metadati nell'head dell'HTML di una Blazor Web App