Ürün Haberleri

Jetpack WindowManager 1.5 kararlı sürümde

Okuma süresi: 3 dakika
Francesco Romano
Geliştirici İlişkileri Mühendisi, Android

Jetpack WindowManager 1.5.0'ın kararlı sürümünün kullanıma sunulduğunu duyurmaktan heyecan duyuyoruz.

Bu sürüm, WindowManager'daki güçlü uyarlanabilirlik temelini daha da geliştirerek tüm ekran boyutlarında harika görünen, kusursuz ve uyarlanabilir kullanıcı arayüzleri oluşturmayı daha da kolaylaştırıyor. Android ekosistemi büyümeye devam ederken kullanıcılar, uygulamalarla etkileşim kurmak için hiç olmadığı kadar çeşitli cihazlar kullanıyor: telefonlar ve katlanabilir cihazlardan tabletlere, bağlı ekranlara, Chromebook'lara ve hatta park modundaki araba ekranlarına kadar.

WindowManager 1.5, bu çeşitli cihaz ortamı için daha iyi araçlar sunmaya odaklanıyor.

WindowManager 1.5 sürümündeki yenilikler

Bu kararlı sürümde çok büyük ekranlar için yeni kesme noktaları sunuluyor, etkinlik yerleştirme API'si geliştiriliyor ve pencere metriklerinin hesaplanması konusunda daha fazla esneklik sağlanıyor.

Yeni pencere boyutu sınıfları: Büyük ve Çok büyük

1.5 sürümündeki en büyük yenilik, iki yeni genişlik pencere boyutu sınıfının (Büyük ve Çok Büyük) eklenmesidir.

Pencere boyutu sınıfları, uyarlanabilir düzenler tasarlayıp geliştirmenize yardımcı olan, resmi ve belirli bir görüşe dayalı görüntü alanı kesme noktalarıdır. 1.5 sürümünde, bu rehberliği normal tabletlerin ötesindeki ekranlar için de genişletiyoruz.

Yeni genişlik kesme noktaları:

  • Büyük: 1.200 dp ile 1.600 dp arasındaki genişlikler için
  • Çok büyük: Genişlik ≥1.600 dp olan cihazlar için
window_size_classes_width.png

Ekran genişliğine göre farklı pencere boyutu sınıfları. 

Bu metrikler neden önemlidir?

Android 16 QPR1 Beta 2'den itibaren Android, bağlı ekranları destekleyerek kullanıcıların cihazlarına harici bir ekran bağlamasına ve cihazlarını büyük ekranlı bir masaüstü aracı gibi kullanmasına olanak tanır.

ADB_5350_asset.gif

Telefon, harici ekrana bağlıyken harici ekranda masaüstü oturumu açık. 

Bu yeni özellik kullanıma sunulduğundan, daha büyük ekranların dahil edilmesiyle ilgili kesin talimatlar verilmesi çok önemlidir. 

Bu çok büyük yüzeylerde, tabletin genişletilmiş düzenini büyütmek her zaman en iyi kullanıcı deneyimini sunmaz. Örneğin, bir e-posta istemcisi, Genişletilmiş pencere boyutu sınıfında iki bölmeyi (bir posta kutusu ve bir ileti) rahatça gösterebilir. Ancak ekstra büyük bir masaüstü monitöründe e-posta istemcisi, üç hatta dört bölmeyi aynı anda zarif bir şekilde gösterebilir. Örneğin, posta kutusu, ileti listesi, iletinin tam içeriği ve takvim/görevler paneli.

WindowManager 1.5, çok büyük ekran boyutları için resmi kesme noktaları sağlayarak üretkenliğe ve bilgi yoğunluğuna yönelik masaüstü deneyimi için özel olarak tasarlanmış düzenler sunmanız konusunda size net bir sinyal verir.

Pencere boyutu sınıfları, androidx.window.core.layout kitaplık uzantısı işlevi olan ve Set<WindowSizeClass> türünü genişleten computeWindowSizeClass() kullanılarak hesaplanabilir. 

Yeni pencere boyutu sınıflarını projenize dahil etmek için WindowSizeClass.BREAKPOINTS_V1 yerine WindowSizeClass.BREAKPOINTS_V2 kümesinden işlevi çağırmanız yeterlidir:

  val currentWindowMetrics =

    WindowMetricsCalculator.getOrCreate()

    .computeCurrentWindowMetrics(LocalContext.current)


val sizeClass = WindowSizeClass.BREAKPOINTS_V2

    .computeWindowSizeClass(currentWindowMetrics)


Ardından, uygulamanızın en az o kadar alana sahip olduğundan emin olduğunuzda doğru düzeni uygulayın:

  if(sizeClass.isWidthAtLeastBreakpoint(

    WindowSizeClass.WIDTH_DP_LARGE_LOWER_BOUND)){

    ...

    // window is at least 1200 dp wide


}

Uyarlanabilir kitaplıklar

Compose Material 3 Adaptive kitaplığı, pencere boyutu sınıfları veya cihaz duruşları gibi mevcut pencere yapılandırmalarına göre otomatik olarak uyum sağlayan uyarlanabilir kullanıcı arayüzleri oluşturmanıza yardımcı olur. 

İyi haber şu ki kitaplık, yeni kesme noktalarıyla uyumlu olacak şekilde güncellendi. 1.2 sürümünden (şu anda yayın adayı aşamasında) itibaren, varsayılan bölme iskeleti yönergesi işlevleri büyük ve çok büyük pencere genişliği boyut sınıflarını destekler.

Yalnızca Gradle derleme dosyanızda yeni kesme noktalarını kullanmak istediğinizi belirterek bu özelliği etkinleştirmeniz gerekir:

  currentWindowAdaptiveInfo(

    supportLargeAndXLargeWidth = true)

Ek iyileştirmeler

  • Etkinlik yerleştirme: Otomatik kaydetme ve geri yükleme: WindowManager artık etkinlik yerleştirme bölümlerinizin durumunu otomatik olarak kaydedip geri yükleyebilir. Bu, kullanıcının düzeninin süreç yeniden oluşturma sırasında korunmasına yardımcı olarak daha kararlı ve tutarlı bir deneyim sağlar. Geliştiricilerin artık durumu manuel olarak kaydetmesi ve geri yüklemesi gerekmez. Bunun yerine EmbeddingConfiguration#isAutoSaveEmbeddingState özelliğini ayarlayarak otomatik olarak etkinleştirebilirler.
  • Genişletilmiş WindowMetrics: Artık WindowMetrics'i yalnızca bir Etkinlik bağlamından değil, bir Uygulama bağlamından da hesaplayabilirsiniz. Bu, uygulamanızın farklı bölümlerinden pencere bilgilerine erişmek için daha fazla esneklik sağlar.

Başlarken

Android projelerinizde yeni Large ve Extra-large boyut sınıflarını ve diğer 1.5 özelliklerini kullanmaya başlamak için build.gradle.kts dosyasındaki uygulama bağımlılıklarınızı en son kararlı sürüme güncelleyin:

  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, Android form faktörlerinde çalışan tamamen uyarlanabilir uygulamalar oluşturma konusunda bir adım daha ileriye gitmemizi sağlıyor. Değişikliklerin ve hata düzeltmelerinin tam listesi için resmi sürüm notlarını inceleyin.

Keyifli kodlamalar!

Yazan:

Okumaya devam edin