Berita Produk

Jetpack WindowManager 1.5 sudah stabil

Waktu baca: 3 menit
Francesco Romano
Developer Relations Engineer, Android

Dengan senang hati kami mengumumkan 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 pertumbuhan ekosistem Android, pengguna berinteraksi dengan aplikasi di berbagai perangkat yang lebih luas daripada 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 kualitas API penyematan aktivitas, dan memberikan fleksibilitas yang lebih besar untuk menghitung metrik jendela.

Class ukuran jendela baru: Besar dan Ekstra besar

Update terbesar di 1.5 adalah penambahan dua class ukuran jendela lebar 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 melampaui 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 dari Android 16 QPR1 Beta 2, Android mendukung tampilan terhubung, sehingga pengguna dapat menghubungkan tampilan 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 tampilan yang lebih besar menjadi sangat penting. 

Di platform yang sangat besar ini, hanya menskalakan tata letak yang Diperluas tablet tidak selalu memberikan pengalaman pengguna terbaik. Misalnya, program email dapat menampilkan dua panel (kotak surat dan pesan) dengan nyaman dalam 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, semuanya 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 ruang setidaknya 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 memilih ikut serta dengan menyatakan 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 mereka dapat 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 lebih banyak fleksibilitas untuk mengakses informasi jendela dari berbagai bagian aplikasi Anda.

Cara memulai

Untuk mulai menggunakan class ukuran Besar dan Sangat besar yang baru serta fitur 1.5 lainnya dalam project Android Anda, 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 seluruh faktor bentuk Android. Lihat catatan rilis resmi untuk mengetahui daftar lengkap perubahan dan perbaikan bug.

Selamat membuat kode!

Ditulis oleh:

Lanjutkan membaca