Notizie sui prodotti

Jetpack WindowManager 1.5 è stabile

Lettura di 3 minuti
Francesco Romano
Rapporto sviluppatore, Android

Siamo felici di annunciare che Jetpack WindowManager 1.5.0 è ora stabile.

Questa release si basa sulla solida base di adattabilità di WindowManager, semplificando ulteriormente la creazione di UI adattive e raffinate che hanno un aspetto fantastico su tutte le dimensioni dello schermo. Man mano che l'ecosistema Android continua a crescere, gli utenti interagiscono con le app su una varietà di dispositivi più ampia che mai: da smartphone e pieghevoli a tablet, display connessi, Chromebook e persino display per auto in modalità di parcheggio.

WindowManager 1.5 si concentra sulla fornitura di strumenti migliori per questo ambiente di dispositivi diversi.

Novità di WindowManager 1.5

Questa release stabile introduce nuovi punti di interruzione per schermi molto grandi, migliora l'API di incorporamento delle attività e offre maggiore flessibilità per il calcolo delle metriche delle finestre.

Nuove classi di dimensioni delle finestre: Large e Extra-large

L'aggiornamento più importante della versione 1.5 è l'aggiunta di due nuove classi di dimensioni delle finestre in larghezza: Large e Extra-large.

Le classi di dimensioni delle finestre sono il nostro insieme ufficiale e basato su opinioni di punti di interruzione della finestra di visualizzazione che ti aiutano a progettare e sviluppare layout adattivi. Con la versione 1.5, estendiamo queste indicazioni per gli schermi che vanno oltre i tablet standard.

Ecco i nuovi punti di interruzione della larghezza:

  • Large:per larghezze comprese tra 1200 dp e 1600 dp
  • Extra-large:per larghezze ≥ 1600 dp
window_size_classes_width.png

Le diverse classi di dimensioni delle finestre in base alla larghezza del display. 

Perché sono importanti?

A partire da Android 16 QPR1 Beta 2, Android supporta i display connessi, consentendo agli utenti di collegare un display esterno al proprio dispositivo e trasformarlo in uno strumento simile a un computer desktop con uno schermo grande.

ADB_5350_asset.gif

Smartphone collegato a un display esterno, con una sessione desktop sul display esterno. 

Con questa nuova funzionalità disponibile, è fondamentale fornire indicazioni basate su opinioni per includere display più grandi. 

Su queste superfici molto grandi, la semplice scalabilità del layout espanso di un tablet non sempre garantisce la migliore esperienza utente. Un client di posta, ad esempio, potrebbe mostrare comodamente due riquadri (una casella di posta e un messaggio) nella classe di dimensioni delle finestre Expanded. Tuttavia, su un monitor desktop Extra-large, il client di posta potrebbe visualizzare elegantemente tre o persino quattro riquadri, ad esempio una casella di posta, un elenco di messaggi, il contenuto completo del messaggio e un riquadro di calendario/attività, tutto in una volta.

Fornendo punti di interruzione ufficiali per le dimensioni di visualizzazione molto grandi, WindowManager 1.5 ti dà un segnale chiaro per introdurre layout progettati specificamente per un'esperienza desktop produttiva e ricca di informazioni.

Le classi di dimensioni delle finestre possono essere calcolate utilizzando computeWindowSizeClass(), che è una funzione di estensione della libreria androidx.window.core.layout che estende il tipo Set<WindowSizeClass>

Per includere le nuove classi di dimensioni delle finestre nel tuo progetto, chiama semplicemente la funzione dal set WindowSizeClass.BREAKPOINTS_V2 anziché WindowSizeClass.BREAKPOINTS_V1:

val currentWindowMetrics =

    WindowMetricsCalculator.getOrCreate()

    .computeCurrentWindowMetrics(LocalContext.current)


val sizeClass = WindowSizeClass.BREAKPOINTS_V2

    .computeWindowSizeClass(currentWindowMetrics)


Quindi applica il layout corretto quando sei sicuro che la tua app abbia almeno questo spazio:

if(sizeClass.isWidthAtLeastBreakpoint(

    WindowSizeClass.WIDTH_DP_LARGE_LOWER_BOUND)){

    ...

    // window is at least 1200 dp wide


}

Librerie adattive

La libreria adattiva di Compose Material 3 ti aiuta a creare UI adattive che si adattano automaticamente in base alle configurazioni delle finestre correnti, come le classi di dimensioni delle finestre o le posizioni dei dispositivi. 

La buona notizia è che la libreria è già aggiornata con i nuovi punti di interruzione. A partire dalla versione 1.2 (ora in fase di Release Candidate), le funzioni predefinite della direttiva di scaffolding del riquadro supportano le classi di dimensioni delle finestre Large e Extra-large.

Devi solo attivare la funzionalità dichiarando nel file di build Gradle che vuoi utilizzare i nuovi punti di interruzione:

currentWindowAdaptiveInfo(

    supportLargeAndXLargeWidth = true)

Miglioramenti aggiuntivi

  • Incorporamento delle attività: salvataggio e ripristino automatici: WindowManager ora può salvare e ripristinare automaticamente lo stato delle suddivisioni dell'incorporamento delle attività. In questo modo, il layout dell'utente viene mantenuto durante la ricreazione del processo, con un'esperienza più stabile e coerente. Gli sviluppatori non devono più salvare e ripristinare manualmente lo stato, ma possono semplicemente attivare la funzionalità impostando la proprietà EmbeddingConfiguration#isAutoSaveEmbeddingState.
  • WindowMetrics espanso: ora puoi calcolare WindowMetrics da un contesto Application, non solo da un contesto Activity. In questo modo, hai maggiore flessibilità per accedere alle informazioni sulle finestre da diverse parti dell'app.

Come iniziare

Per iniziare a utilizzare le nuove classi di dimensioni Large e Extra-large e altre funzionalità della versione 1.5 nei tuoi progetti Android, aggiorna le dipendenze dell'app in build.gradle.kts all'ultima versione stabile:

dependencies {
    implementation("androidx.window:window:1.5.0") 

    // or, if you're using the WindowManager testing library:

    testImplementation("androidx.window:window-testing:1.5.0")

}

WindowManager 1.5 è un altro passo avanti per la creazione di app completamente adattive che vengono eseguite su tutti i fattori di forma Android. Consulta le note di rilascio ufficiali per un elenco completo delle modifiche e delle correzioni di bug.

Buona programmazione!

Scritto da:

Continua a leggere