loading experience

.NET MAUI

.NET MAUI: app che si avviano in fretta e scorrono fluide

Layout leggeri, binding compilati, trimming e AOT: le leve principali per le prestazioni delle app MAUI.

.NET MAUI: app che si avviano in fretta e scorrono fluide

Un'app lenta ad avviarsi viene disinstallata. Queste sono le tecniche che hanno più impatto sulle prestazioni di un'app .NET MAUI.

Interventi semplici, effetti grandi sui dispositivi economici.
Interventi semplici, effetti grandi sui dispositivi economici.

1. Layout semplici

Ogni livello di layout annidato costa tempo di misura e disegno. Una Grid con righe e colonne sostituisce spesso tre o quattro StackLayout uno dentro l'altro.

2. Binding compilati

Con x:DataType sulle pagine e sui DataTemplate, i binding vengono risolti a compilazione invece che con la reflection a runtime.

3. Lavoro lontano dall'avvio

public partial class HomeViewModel(ICatalogo catalogo) : ObservableObject
{
    [ObservableProperty]
    public partial IReadOnlyList<Prodotto> InEvidenza { get; set; } = [];

    // chiamato dalla pagina in OnAppearing, non nel costruttore
    [RelayCommand]
    private async Task CaricaAsync() => InEvidenza = await catalogo.InEvidenzaAsync();
}

Registra i servizi come transient o lazy, carica i dati quando la pagina appare e rimanda tutto ciò che non serve alla prima schermata.

4. Trimming e AOT

In Release il trimming rimuove il codice non usato e riduce le dimensioni dell'app. Su iOS e Mac Catalyst si può attivare Native AOT, con avvii più rapidi e minore memoria:

<PropertyGroup Condition="'$(TargetFramework)' == 'net10.0-ios'">
  <PublishAot>true</PublishAot>
</PropertyGroup>

5. Immagini

Usa immagini della dimensione giusta per lo schermo, formati compressi e cache per quelle scaricate dalla rete. Un'immagine da dieci megapixel in una miniatura spreca memoria e tempo.

Misurare

Prova sempre in configurazione Release su dispositivi reali, anche economici: l'emulatore su un PC potente nasconde molti problemi.

Commenti (0)

Nessun commento ancora.

Lascia un commento