Berita Produk

Jetpack WindowManager 1.5 sudah stabil

Waktu baca: 2 menit
Lihat profil Francesco Romano
Francesco Romano Developer Relations Engineer, Android

Dengan senang hati kami umumkan bahwa Jetpack WindowManager 1.5.0 kini sudah stabil.

Rilis ini dibangun berdasarkan fondasi adaptasi yang kuat di WindowManager, sehingga semakin memudahkan pembuatan UI adaptif yang sempurna dan terlihat bagus di semua ukuran layar. Seiring dengan pertumbuhan ekosistem Android, pengguna berinteraksi dengan aplikasi di berbagai perangkat yang lebih luas dari sebelumnya: mulai dari ponsel dan perangkat foldable hingga tablet, layar terhubung, Chromebook, dan bahkan layar mobil dalam mode parkir.

WindowManager 1.5 berfokus pada penyediaan alat yang lebih baik untuk lingkungan perangkat yang beragam ini.

Yang baru di WindowManager 1.5

Rilis stabil ini memperkenalkan titik henti sementara baru untuk layar yang sangat besar, meningkatkan API penyematan aktivitas, dan memberikan fleksibilitas lebih untuk menghitung metrik jendela.

Class ukuran jendela baru: Besar dan Ekstra besar

Update terbesar di 1.5 adalah penambahan dua class ukuran lebar jendela baru: Besar dan Ekstra besar.

Class ukuran jendela adalah kumpulan titik henti sementara area pandang resmi kami yang tidak berubah dan membantu Anda mendesain serta mengembangkan tata letak adaptif. Dengan 1.5, kami memperluas panduan ini untuk layar yang lebih besar dari tablet biasa.

Berikut adalah titik henti sementara lebar baru:

  • Besar: Untuk lebar antara 1200dp dan 1600dp
  • Ekstra besar: Untuk lebar ≥1600dp
window_size_classes_width.png

Berbagai class ukuran jendela berdasarkan lebar tampilan. 

Mengapa hal ini penting?

Mulai Android 16 QPR1 Beta 2, Android mendukung layar yang terhubung, sehingga pengguna dapat memasang layar eksternal ke perangkat mereka dan mengubahnya menjadi alat seperti desktop dengan layar besar.

ADB_5350_asset.gif

Ponsel terhubung ke layar eksternal, dengan sesi desktop di layar eksternal. 

Dengan tersedianya fitur baru ini, panduan yang tegas untuk menyertakan layar yang lebih besar sangatlah penting. 

Di platform yang sangat besar ini, hanya menskalakan tata letak yang Diperluas tablet tidak selalu memberikan pengalaman pengguna terbaik. Misalnya, program email mungkin dapat menampilkan dua panel (kotak surat dan pesan) dengan nyaman di class ukuran jendela Diperluas. Namun, di monitor desktop Ekstra besar, program email dapat menampilkan tiga atau bahkan empat panel dengan elegan—mungkin kotak surat, daftar pesan, konten pesan lengkap, dan panel kalender/tugas, sekaligus.

Dengan menyediakan titik henti sementara resmi untuk ukuran layar yang sangat besar, WindowManager 1.5 memberi Anda sinyal yang jelas untuk memperkenalkan tata letak yang dirancang khusus untuk pengalaman desktop yang produktif dan padat informasi.

Class ukuran jendela dapat dihitung menggunakan computeWindowSizeClass(), yang merupakan fungsi ekstensi library androidx.window.core.layout yang memperluas jenis Set<WindowSizeClass>. 

Untuk menyertakan class ukuran jendela baru dalam project Anda, cukup panggil fungsi dari set WindowSizeClass.BREAKPOINTS_V2, bukan WindowSizeClass.BREAKPOINTS_V1:

val currentWindowMetrics =

    WindowMetricsCalculator.getOrCreate()

    .computeCurrentWindowMetrics(LocalContext.current)


val sizeClass = WindowSizeClass.BREAKPOINTS_V2

    .computeWindowSizeClass(currentWindowMetrics)


Kemudian, terapkan tata letak yang benar saat Anda yakin aplikasi Anda memiliki setidaknya ruang sebesar itu:

if(sizeClass.isWidthAtLeastBreakpoint(

    WindowSizeClass.WIDTH_DP_LARGE_LOWER_BOUND)){

    ...

    // window is at least 1200 dp wide


}

Library adaptif

Library Adaptif Material 3 Compose membantu Anda membuat UI adaptif yang menyesuaikan diri secara otomatis sesuai dengan konfigurasi jendela saat ini seperti class ukuran jendela atau postur perangkat. 

Kabar baiknya, library ini sudah diupdate dengan titik henti sementara baru. Mulai dari versi 1.2 (sekarang dalam tahap Release Candidate), fungsi direktif scaffold panel default mendukung class ukuran lebar jendela Besar dan Sangat besar.

Anda hanya perlu mengaktifkannya dengan mendeklarasikan dalam file build Gradle bahwa Anda ingin menggunakan titik henti sementara baru:

currentWindowAdaptiveInfo(

    supportLargeAndXLargeWidth = true)

Peningkatan tambahan

  • Penyematan aktivitas — simpan dan pulihkan otomatis: WindowManager kini dapat menyimpan dan memulihkan status pemisahan penyematan aktivitas Anda secara otomatis. Hal ini membantu mempertahankan tata letak pengguna di seluruh pembuatan ulang proses, sehingga menghasilkan pengalaman yang lebih stabil dan konsisten. Developer tidak perlu lagi menyimpan dan memulihkan status secara manual, tetapi cukup memilih ikut serta secara otomatis dengan menyetel properti EmbeddingConfiguration#isAutoSaveEmbeddingState.
  • WindowMetrics yang Diperluas: Anda kini dapat menghitung WindowMetrics dari konteks Aplikasi, bukan hanya konteks Aktivitas. Hal ini memberikan fleksibilitas yang lebih besar untuk mengakses informasi jendela dari berbagai bagian aplikasi Anda.

Cara memulai

Untuk mulai menggunakan class ukuran Besar dan Ekstra besar yang baru serta fitur 1.5 lainnya di project Android, update dependensi aplikasi Anda di build.gradle.kts ke versi stabil terbaru:

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 adalah langkah maju lainnya untuk membuat aplikasi yang sepenuhnya adaptif yang berjalan di berbagai faktor bentuk Android. Lihat catatan rilis resmi untuk mengetahui daftar lengkap perubahan dan perbaikan bug.

Selamat membuat kode!

Ditulis oleh:
Lanjutkan membaca