Uyarlanabilir yapılacaklar ve yapılmaması gerekenler

Uyarlanabilir uygulamalar her boyuttaki ekranları destekler: cihaz ekranının tamamı, çoklu pencere modunda yeniden boyutlandırılabilir pencereler, dikey ve yatay yönler, katlanabilir cihazların katlanmış ve açılmış ekranları.

Kısa bir yapılandırma ayarları ve API listesi, uyarlanabilir uygulamalar oluşturmanıza olanak tanır. Ancak bazı eski ayarlar ve API'ler uyarlanabilir uygulamalarla uyumlu değildir ve bunlardan kaçınılmalıdır.

Yeniden boyutlandırılabilirlik

Uyarlanabilir uygulamalar, uygulamanın yeniden boyutlandırılabilmesini ve çok pencereli modu destekler.

resizeableActivity, <activity> ve <application> manifest öğelerinin özelliği, Android 11 (API düzeyi 30) ve önceki sürümlerde çoklu pencere modunu etkinleştirir veya devre dışı bırakır. Android 12 (API düzeyi 31) ve sonraki sürümlerde, büyük ekranlar özellikten bağımsız olarak çok pencereli modu destekler. Daha fazla bilgi için Çok pencereli modu destekleme başlıklı makaleyi inceleyin.

✓ Yapılması gerekenler

Uygulamanızın, kullanıcı verimliliğini ve memnuniyetini artırmak için çoklu pencere ve çoklu görev senaryolarına katılmasını sağlayın.

Uygulamanız 24'ten düşük API düzeylerini hedefliyorsa resizeableActivity="true" değerini ayarlayın. Aksi takdirde bu değeri göz ardı edebilirsiniz. Android 7.0 (API düzeyi 24) ve sonraki sürümlerde varsayılan olarak true değerini alır.

✗ Yapılmaması gerekenler

Herhangi bir API düzeyi için resizeableActivity="false" ayarlamayın. Uygulamanızı çoklu pencere modunu içeren kullanım alanlarının dışında tutmayın.

Sayfa yönü

Uyarlanabilir uygulamalar, ekran boyutundan veya pencere modundan bağımsız olarak dikey ve yatay yönü destekler.

screenOrientation manifest ayarı, etkinlik yönünü kısıtlar.

✓ Yapılması gerekenler

Uygulama manifestinizdeki screenOrientation ayarını kaldırın.

Uygulamaların yönünü kilitlemek, pencere boyutunun değişmesini engellemez. Uygulamalar, çok pencereli moda girildiğinde, cihaz katlandığında veya açıldığında ya da masaüstü tipi bir pencere yeniden boyutlandırıldığında yeniden boyutlandırılır. Uygulamanız, screenOrientation özelliği ayarından bağımsız olarak pencere boyutundaki değişiklikleri desteklemelidir.

✗ Yapılmaması gerekenler

Etkinlik yönünü kısıtlamayın. Yönü kilitleyen uygulamalar, büyük ekranlı cihazlarda ve uyumsuz pencere boyutlarında mektup kutusu şeklinde gösterilir.

Letterbox'lı uygulamaların tabletler, katlanabilir cihazlar ve ChromeOS cihazlarda Google Play'deki bulunabilirliği azalır.

En boy oranı

Ekran ve pencere boyutları farklılık gösterdiğinden en boy oranları da farklılık gösterir. Bu oranlar; uzun ve dar, kare, kısa ve geniş olabilir.

minAspectRatio ve maxAspectRatio manifest ayarları, uygulamanızın en boy oranını sabit kodlanmış değerlerle kısıtlar.

✓ Yapılması gerekenler

Uygulamanızı, göreceli boyutlardan bağımsız olarak ekrana uyacak şekilde ayarlayın.

Uygulama manifestinizdeki minAspectRatio ve maxAspectRatio ayarlarını kaldırın. Alternatif olarak, uygulamanızın yeniden boyutlandırılabilir olduğundan ve en boy oranının kendiliğinden ayarlandığından emin olun (Yeniden boyutlandırılabilirlik bölümüne bakın).

✗ Yapılmaması gerekenler

Uygulamanızın göreli boyutlarını kontrol etmeye çalışmayın. Uygulamanız, en boy oranı uygulamanın en boy oranıyla uyumlu olmayan bir ekranda veya pencerede çalışıyorsa uygulamanızda siyah bantlar görünür.

Android 14 (API düzeyi 34) ve sonraki sürümlerde kullanıcılar, mevcut ekran alanını doldurmak için mektup kutusu biçimli uygulamaları genişletmek üzere uygulama en boy oranını geçersiz kılabilir. Cihaz uyumluluğu modu başlıklı makaleyi inceleyin.

Pencere boyutu

Düzenleri farklı ekran boyutlarına göre optimize etmek, uyarlanabilir tasarımın temelini oluşturur. Uyarlanabilir uygulamalar, cihaz ekran boyutu yerine uygulama penceresi boyutuna odaklanır. Uygulama tam ekrandayken uygulama penceresi cihaz ekranıdır.

Pencere boyutu sınıfları, uygulama penceresinin boyutunu belirlemek ve kategorilere ayırmak için sistematik bir yöntem sunar. Uygulamanızın pencere boyutu sınıfı değiştikçe düzenleri değiştirerek uygulamanızı uyarlayın.

✓ Yapılması gerekenler

Uygulama pencere boyutunuzu pencere boyutu sınıflarına göre değerlendirin.

Pencere boyutu sınıfını belirlemek için Compose Material 3 Adaptive kitaplığının currentWindowAdaptiveInfoV2() üst düzey işlevini kullanın (bu işlev, kullanımdan kaldırılan currentWindowAdaptiveInfo() işlevinin yerini alır). Daha fazla bilgi için Uyarlanabilir uygulamalar oluşturma başlıklı makaleyi inceleyin.

✗ Yapılmaması gerekenler

Pencere boyutu sınıfı tanımlarının ve yerleşik API'lerin faydasını göz ardı etmeyin. Pencere boyutunu hesaplamak için kullanımdan kaldırılan API'leri kullanmayın.

Kullanımdan Kaldırılmış API'ler

Eski platform API'leri, uygulama penceresini doğru şekilde ölçmez. Bazıları cihaz ekranını ölçer, bazıları ise sistem dekorunu hariç tutar.

✓ Yapılması gerekenler

Uygulama penceresinin boyutunu almak için WindowManager#getCurrentWindowMetrics() ve WindowMetrics#getBounds() kullanın. Görüntü yoğunluğunu elde etmek için WindowMetrics#getDensity() kullanın.

✗ Yapılmaması gerekenler

Pencere boyutunu belirlemek için aşağıdaki kullanımdan kaldırılan Display API'leri kullanmayın:

  • getSize(): Android 11'de (API düzeyi 30) desteği sonlandırıldı.
  • getMetrics(): Android 11'de (API düzeyi 30) desteği sonlandırıldı.
  • getRealSize(): Android 12'de (API düzeyi 31) desteği sonlandırıldı.
  • getRealMetrics(): Android 12'de (API düzeyi 31) desteği sonlandırıldı.

Oluştur

Jetpack Compose, uyarlanabilir kullanıcı arayüzü geliştirmek için tasarlanmıştır. XML, düzen dosyaları ve kaynak niteleyicileri yok. Yalnızca Kotlin tabanlı, durumsuz composable'lar (ör. Column, Row ve Box) kullanıcı arayüzünüzü tanımlar. Değiştiriciler (ör. offset, padding ve size) ise kullanıcı arayüzü öğelerine davranış ekler.

✓ Yapılması gerekenler

Compose ile geliştirin. En yeni özellikler ve sürümlerden haberdar olun.

✗ Yapılmaması gerekenler

Eski teknolojilere güvenmeyin. Uygulamanızın eskimesine izin vermeyin.

Compose Material 3 Adaptive kitaplığı

Compose Material 3 Adaptive kitaplığı, uyarlanabilir uygulamaların geliştirilmesini kolaylaştıran bileşenler ve API'ler sağlar.

✓ Yapılması gerekenler

Uygulamanızı uyarlanabilir hale getirmek için aşağıdaki API'leri kullanın:

✗ Yapılmaması gerekenler

Amerika'yı yeniden keşfetmeyin. Tüm Jetpack Compose kitaplıklarının sağladığı geliştirici üretkenliği avantajlarından yararlanın.

Düzenler

Kullanıcılar, uygulamaların ek içerik veya gelişmiş kontrollerle mevcut ekran alanından en iyi şekilde yararlanmasını bekler.

Uyarlanabilir uygulamalar, düzenleri ekrandaki değişikliklere göre optimize eder. Özellikle de uygulama penceresinin boyutundaki veya cihaz duruşundaki değişikliklere göre optimize eder.

✓ Yapılması gerekenler

Kullanılabilir ekran alanından yararlanmak için pencere boyutu değiştikçe kullanıcı arayüzü bileşenlerini değiştirin. Örneğin, kompakt pencere boyutlarında kullanılan alt gezinme çubuğunu orta ve genişletilmiş pencerelerde dikey gezinme çubuğuyla değiştirin. İletişim kutularını tüm ekranlarda erişilebilir olacak şekilde yeniden konumlandırın.

İçeriği bölmeler halinde düzenleyerek liste-ayrıntı gibi çok bölmeli düzenlerin ve dinamik içerik gösterimleri için destek bölmesinin kullanılmasını sağlayın.

✓ Yapılacaklar: Çift bölmeli düzende düzenlenen etkinlikleri listeleyin ve ayrıntılandırın.
✗ Yapılmaması gerekenler

İçerik bölmeleri kullanmıyorsanız kullanıcı arayüzü öğelerini yalnızca kullanılabilir ekran alanını dolduracak şekilde genişletmeyin. Uzun metin satırları zor okunur. Uzatılmış düğmeler kötü tasarlanmış görünüyor. Modifier.fillMaxWidth kullanıyorsanız bunun tüm ekran boyutları için doğru davranış olduğunu varsaymayın.

✗ Yapmayın: Düzen, genişleyen pencereyi dolduracak şekilde uzatılır.

Giriş cihazları

Kullanıcılar, uygulamalarla etkileşim kurmak için yalnızca dokunmatik ekranları kullanmaz.

Uyarlanabilir uygulamalar, gelişmiş bir kullanıcı deneyimi sunmak ve kullanıcıların her tür form faktöründe daha üretken olmasına yardımcı olmak için harici klavyeleri, fareleri ve kalemleri destekler.

✓ Yapılması gerekenler

Klavye sekmesiyle gezinme ve fare ya da dokunmatik yüzeyle tıklama, seçme ve kaydırma için Android çerçevesinin yerleşik işlevinden yararlanın. Uygulamanızın klavye kısayollarını Klavye Kısayolları Yardımcısı'nda yayınlayın.

Kullanıcıların ekran kalemi kullanarak herhangi bir TextField bileşenine yazabilmesini sağlamak için Jetpack Material 3 kitaplığını kullanın.

✗ Yapılmaması gerekenler

Alternatif giriş yöntemlerini imkansız hale getirmeyin. Erişilebilirlik sorunlarına yol açmayın.

Özet

  • Uygulamanızı Compose ve Material 3 Adaptive kitaplığıyla oluşturma
  • Düzenleri pencere boyutu sınıflarına göre oluşturma
  • Çok panelli düzenler oluşturma
  • Uygulamanızı yeniden boyutlandırılabilir hale getirme
  • Etkinlik yönünü hiçbir zaman kilitleme
  • En-boy oranını kısıtlama
  • Dokunma dışında girişleri destekleme
  • Desteği sonlandırılan API'leri kullanmaktan kaçının

✓ Kullanıcılarınızın beklentilerini karşılayın: Uygulamanızı, kullanıcıların her gün kullandığı cihazların çeşitliliğine göre optimize edin.

✗ Beklemeyin. Bugün kullanmaya başlayın!