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 katlanmamış ekranları.
Yapılandırılabilir ayarların ve API'lerin kısa bir listesi, uyarlanabilir uygulamalar oluşturmanıza olanak tanır. Ancak eski bazı ayarlar ve API'ler, uyarlanabilir uygulamalarla uyumlu değildir ve kullanılmamalıdır.
Tabanı değiştirilebilir
Uyarlanabilir uygulamalar, uygulamanın yeniden boyutlandırılabilirliğini 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 özelliğe bakılmaksızın çoklu pencere modunu destekler. Daha fazla bilgi için Çoklu pencere modunu destekleme başlıklı makaleyi inceleyin.
Kullanıcı üretkenliğini ve memnuniyetini artırmak için uygulamanızın ç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 unutabilirsiniz. Android 7.0 (API düzeyi 24) ve sonraki sürümlerde varsayılan olarak true
değerini alır.
Hiçbir API düzeyi için resizeableActivity="false"
ayarlamamalısınız. Uygulamanızı çoklu pencere modunu içeren kullanım alanlarından hariç tutmayın.
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.
screenOrientation
ayarını uygulama manifest dosyanızdan kaldırın.
Uygulamaların yönünü kilitlemek, pencere boyutunda değişiklik yapılmasını engellemez. Uygulamalar, çoklu pencere moduna 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ın, screenOrientation
özelliğinin ayarından bağımsız olarak pencere boyutunda yapılan değişiklikleri desteklemesi gerekir.
Etkinlik yönünü kısıtlamayın. Yönlendirmeyi kilitleyen uygulamalar, büyük ekranlı cihazlarda ve uyumlu olmayan pencere boyutlarında sinemaskop biçiminde gösterilir.
Sinemaskoplu uygulamaların tabletler, katlanabilir cihazlar ve ChromeOS cihazlarda Google Play'deki bulunabilirliği azalır.
En boy oranı
Ekran ve pencere boyutları değiştikçe en boy oranları da değişir. Bu oranlar uzun ve dardan kare ve kısa genişe kadar çeşitlilik gösterir.
minAspectRatio
ve maxAspectRatio
manifest ayarları, uygulamanızın en boy oranını sabit kodlu değerlerle kısıtlar.
Uygulamanızı, göreceli boyutlardan bağımsız olarak ekrana sığacak şekilde uyarlayın.
Uygulama manifest dosyanızdan 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 kendi kendine ayarlandığından emin olun (Yeniden boyutlandırılabilirlik bölümüne bakın).
Uygulamanızın göreli boyutlarını kontrol etmeye çalışmayın. Uygulamanız, uygulamanın en boy oranıyla uyumlu olmayan bir en boy oranına sahip bir ekranda veya pencerede çalışıyorsa uygulamanız sinemaskoplu olur.
Android 14 (API düzeyi 34) ve sonraki sürümlerde kullanıcılar, sinemaskoplu uygulamaları mevcut ekran alanını dolduracak şekilde genişletmek için uygulama en boy oranını geçersiz kılabilir. Cihaz uyumluluk modu başlıklı makaleyi inceleyin.
Pencere boyutu
Düzenleri farklı ekran boyutları için optimize etmek, uyarlanabilir tasarımın temel fikridir. Uyarlanabilir uygulamalar, cihaz ekran boyutu yerine uygulama penceresi boyutuna odaklanır. Uygulama tam ekran modundayken uygulama penceresi cihaz ekranıdır.
Pencere boyutu sınıfları, uygulama penceresinin boyutunu belirlemek ve sınıflandırmak için sistematik bir yol sunar. Uygulamanızın pencere boyutu sınıfı değiştikçe düzenleri değiştirerek uygulamanızı uyarlayın.
Uygulamanızın pencere boyutunu, 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.
Pencere boyutu sınıfı tanımlarının ve yerleşik API'lerin yararını göz ardı etmeyin. Pencere boyutunu hesaplamak için desteği sonlandırılmış 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ı sistem dekorunu hariç tutar.
Uygulama penceresinin boyutunu almak için WindowManager#getCurrentWindowMetrics()
ve WindowMetrics#getBounds()
öğelerini kullanın. Görüntü yoğunluğunu almak için WindowMetrics#getDensity()
kullanın.
Pencere boyutunu belirlemek için desteği sonlandırılmış aşağıdaki Display
API'lerini kullanmayın:
getSize()
: Android 11 (API düzeyi 30) sürümünde 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, sayfa düzeni dosyası veya kaynak tanımlayıcısı yok. Yalnızca Kotlin tabanlı, durumsuz kompozisyonlar (ör. Column
, Row
ve Box
) kullanıcı arayüzünüzü tanımlar ve offset
, padding
ve size
gibi değiştiriciler kullanıcı arayüzü öğelerine davranış ekler.
Oluştur'u kullanarak içerik oluşturun. En yeni özellikler ve sürümler hakkında bilgi edinin.
Eski teknolojilere güvenmeyin. Uygulamanızın eskimesine izin vermeyin.
Material 3 Uyarlanabilir kitaplığı oluşturma
Compose Material 3 Adaptive kitaplığı, uyarlanabilir uygulamaların geliştirilmesini kolaylaştıran bileşenler ve API'ler sağlar.
Uygulamanızı uyarlanabilir hale getirmek için aşağıdaki API'leri kullanın:
NavigationSuiteScaffold
: Uygulama penceresi boyutu sınıfına bağlı olarak gezinme çubuğu ile gezinme çubuğu arasında geçiş yapar.ListDetailPaneScaffold
: Liste-ayrıntı standart düzenini uygular. Düzeni uygulama penceresi boyutuna uyarlar.SupportingPaneScaffold
: Destekleyici bölmenin standart düzenini uygular.
Tekerleği yeniden icat etmeyin. Tüm Jetpack Compose kitaplıklarının sunduğu geliştirici üretkenliği kazanımları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, ekrandaki değişikliklere (özellikle uygulama penceresinin boyutundaki değişikliklere veya cihaz duruşundaki değişikliklere) göre düzenleri optimize eder.
Mevcut 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 bir gezinme çubuğuyla değiştirin. İletişim kutularını tüm ekranlardan erişilebilir olacak şekilde yeniden konumlandırın.
Dinamik içerik görüntülemeler için liste ayrıntıları ve destekleyici panel gibi çok panelli düzenleri etkinleştirmek üzere içeriği panellere ayırın.
İçerik bölmeleri kullanmıyorsanız kullanıcı arayüzü öğelerini, mevcut ekran alanını dolduracak şekilde uzatmayın. Uzun metin satırlarını okumak zordur. 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.
Giriş cihazları
Kullanıcılar, uygulamalarla etkileşimde bulunmak 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 ekran kalemlerini destekler.
Klavye sekme gezinme ve fare veya dokunmatik yüzey 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 TextField
bileşenine yazabilmesi için Jetpack Material 3 kütüphanesini kullanın.
Alternatif giriş yöntemlerini imkansız hale getirmeyin. Erişilebilirlik sorunları oluşturmayın.
Özet
- Compose ve Materyal 3 Uyarlanabilir kitaplığıyla uygulamanızı oluşturma
- Düzenleri pencere boyutu sınıflarına göre temellendirme
- Çok bölmeli 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ışındaki girişleri destekleme
- Kullanımdan kaldırılan API'leri kullanmama
Kullanıcılarınızın beklediği ✓ işlemleri yapın: Uygulamanızı, kullanıcıların her gün kullandığı çeşitli cihazlar için optimize edin.
✗ Beklemeyin. Hemen kullanmaya başlayın.