Uyarlanabilir yapılacaklar ve yapılmaması gerekenler

Uyarlanabilir uygulamalar, tüm boyutlardaki 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ılmasını ve çoklu pencere modunu destekler.

<activity> ve <application> manifest öğelerinin resizeableActivity ö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 ayarlamanıza gerek yoktur. Android 7.0 (API düzeyi 24) ve sonraki sürümlerde varsayılan değer true'dir.

✗ Yapılmaması gerekenler

Hiçbir API düzeyi için resizeableActivity="false" değerini ayarlamayın. Uygulamanızı çoklu pencere modunu içeren kullanım alanlarının dışında bırakmayın.

Yön

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

screenOrientation manifest ayarı, etkinliğin 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 letterbox olarak gösterilir.

Letterbox'lı uygulamaların tabletlerde, katlanabilir cihazlarda 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 sinemaskop efekti oluşur.

Android 14 (API düzeyi 34) ve sonraki sürümlerde kullanıcılar, mevcut ekran alanını doldurmak için sinemaskop 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ı için optimize etmek, uyarlanabilir tasarımın temelini oluşturur. Uyarlanabilir uygulamalar, cihaz ekran boyutu yerine uygulama pencere boyutuna odaklanır. Uygulama tam ekran olduğunda uygulama penceresi cihaz ekranıdır.

Pencere boyutu sınıfları, uygulama penceresinin boyutunu belirlemek ve sınıflandı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 penceresi 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 currentWindowAdaptiveInfo() üst düzey işlevini kullanın. 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 desteği sonlandırılan API'leri kullanmayın.

Kullanımdan kaldırılan 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() tuşlarını kullanın. Görüntü yoğunluğunu almak için WindowMetrics#getDensity() kullanın.

✗ Yapılmaması gerekenler

Pencere boyutunu belirlemek için aşağıdaki kullanımdan kaldırılmış 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ştirme 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) ile kullanıcı arayüzünüzü tanımlayan ve kullanıcı arayüzü öğelerine davranış ekleyen değiştiriciler (ör. offset, padding ve size).

✓ 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 verimliliğ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 (özellikle uygulama penceresinin boyutundaki değişiklikler veya cihaz duruşundaki değişiklikler) 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 rayıyla 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. Gerilmiş 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.

✗ Yapılmaması gerekenler: Genişleyen pencereyi doldurmak için düzenin uzatılması.

Giriş cihazları

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

Uyarlanabilir uygulamalar, gelişmiş bir kullanıcı deneyimi sağlamak 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 alanla 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ısayol Yardımcısı'nda yayınlayın.

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

✗ 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ıtlamayın
  • Dokunma dışında girişleri destekleme
  • Kullanımdan kaldırılan API'leri önleme

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. Hemen kullanmaya başlayın.