Uyarlanabilir yapılacaklar ve yapılmaması gerekenler

Uyarlanabilir uygulamalar tüm boyutlardaki ekranları destekler: cihaz ekranının tamamı yeniden boyutlandırılabilir. çoklu pencere modunda pencereler, dikey ve yatay yönde, katlanmış katlanabilir cihazların açılmış ekranlarından oluşur.

Yapılandırma ayarlarının ve API'lerin kısa bir listesi, uyarlanabilir derleme Ancak bazı eski ayarlar ve API'ler uyarlanabilir uygulamalarla uyumlu değil. ve kaçınılması gerekir.

Yeniden boyutlandırılabilirlik

Uyarlanabilir uygulamalar, uygulamanın yeniden boyutlandırılabilirliğini ve çoklu pencere modunu destekler.

<activity> ve resizeableActivity özelliği <application> manifest öğeleri, çoklu pencereyi etkinleştirir veya devre dışı bırakır Android 11 (API düzeyi 30) ve önceki sürümlerde kullanılabilir. Android 12 (API düzeyi 31) ve daha büyük ekranlar, boyutu fark etmeksizin özelliğini gönderin. Daha fazla bilgi için Çoklu pencere modunu destekleme başlıklı makaleye göz atın.

✓ Şunu yapın:

Uygulamanızın çoklu pencere, çoklu görev senaryolarında katılımcı olmasını sağlayın: kullanıcı verimliliğini ve memnuniyetini artırdı.

Uygulamanız 24'ün altındaki API düzeylerini hedefliyorsa resizeableActivity="true" değerini ayarlayın; Aksi takdirde, unutun. Android 7.0'da (API) varsayılan olarak true 24. seviye) ve daha üst düzey kullanıcılar için uygundur.

✗ Şunları yapmayın:

Hiçbir API düzeyi için resizeableActivity="false" öğesi ayarlamayın. Uygulamanızı hariç tutmayın kullanım alanlarından yararlanabilir.

Yön

Uyarlanabilir uygulamalar, ekrandan bağımsız olarak dikey ve yatay yönü destekler pencere modu seçin.

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

✓ Şunu yapın:

screenOrientation ayarını uygulama manifestinizden kaldırın.

Uygulamaların yönünü kilitlemek, pencere boyutu değişikliklerini engellemez. Uygulamalar, çoklu pencere moduna girdiklerinde, cihaz katlanmış veya açık durumdayken yeniden boyutlandırılmaları yeniden boyutlandırıldığında kullanılabilir. Uygulamanız pencerede yapılan değişiklikleri desteklemelidir screenOrientation özellik ayarından bağımsız olarak boyut özellikleri.

✗ Şunları yapmayın:

Etkinlik yönünü kısıtlama Yönü kilitleyen uygulamalar sinemaskoplu büyük ekranlı cihazlarda ve uyumsuz pencere boyutlarında.

Sinemaskoplu uygulamaların Google Play'de bulunabilirliği azalabilir tabletler, katlanabilir cihazlar ve ChromeOS cihazlar.

En boy oranı

Ekran ve pencere boyutları farklılık gösterdikçe en boy oranları da (uzun ve pencere boyutları) farklılık gösterir. dar, kare, kısa ve geniş arası.

minAspectRatio ve maxAspectRatio manifest ayarları kısıtlamalar en boy oranı sabit kodlu değerlere oranıdır.

✓ Şunu yapın:

Uygulamanızı, göreli boyutlardan bağımsız olarak ekrana sığacak şekilde uyarlayın.

minAspectRatio ve maxAspectRatio ayarlarını uygulamanızdan kaldırın manifest'ini kullanabilirsiniz. Dilerseniz uygulamanızın yeniden boyutlandırılabileceğinden ve en boy oranının kendi kendine yeteceğinden emin olabilirsiniz (Yeniden boyutlandırılabilirlik bölümüne bakın).

✗ Şunları yapmayın:

Uygulamanızın göreli boyutlarını kontrol etmeye çalışmayın. Uygulamanız veya en boy oranıyla birlikte uygulamanız sinemaskop olmalıdır.

Kullanıcılar, Android 14 (API düzeyi 34) ve sonraki sürümlerde uygulama en boy oranını geçersiz kılabilir sinemaskoplu uygulamaları mevcut görüntüleme alanını dolduracak şekilde genişlet. Bkz. Cihaz uyumluluk modundan emin olun.

Pencere boyutu

Düzenleri farklı görüntülü reklam boyutları için optimize etmek, uyarlanabilir tasarım. Uyarlanabilir uygulamalar, cihaz yerine uygulama pencere boyutuna odaklanır ekran boyutu. Uygulama tam ekrandayken uygulama penceresi cihazın ekranıdır.

Pencere boyutu sınıfları, etkinlikleri belirlemek ve sınıflandırmak için sistematik bir yol uygulama penceresinin boyutu. Pencere olarak düzenleri değiştirerek uygulamanızı uyarlayın değişiklik gösterir.

✓ Şunu yapın:

Uygulama pencerenizin boyutunu, pencere boyutu sınıflarına göre değerlendirin.

Pencere boyutu sınıfını belirlemek için currentWindowAdaptiveInfo() işlevini kullanın. Compose Material 3 Uyarlanabilir kitaplığının üst düzey işlevi. Daha fazla Uyarlanabilir uygulamalar oluşturma başlıklı makaleye göz atın.

✗ Şunları yapmayın:

Pencere boyutu sınıfı tanımlarının sağladığı faydayı ve yerleşik API'ler var. Pencere boyutunu hesaplamak için desteği sonlandırılmış API'leri kullanmayın.

Desteği sonlandırılmış API'ler

Eski platform API'leri, uygulama penceresini doğru şekilde ölçmüyor; bazıları da bazı sistem dekorasyonu hariç.

✓ Şunu yapın:

WindowManager#getCurrentWindowMetrics() ve Uygulama penceresinin boyutunu öğrenmek için WindowMetrics#getBounds(). Tekliflerinizi otomatikleştirmek ve optimize etmek için Görüntü yoğunluğunu öğrenmek için WindowMetrics#getDensity().

✗ Şunları yapmayın:

Pencere boyutunu belirlemek için aşağıdaki desteği sonlandırılmış Display API'lerini kullanmayın:

  • getSize(): Android 11'de (API düzeyi 30) kullanımdan kaldırıldı
  • getMetrics(): Android 11'de (API düzeyi 30) kullanımdan kaldırıldı
  • getRealSize(): Android 12'de (API düzeyi 31) kullanımdan kaldırıldı
  • getRealMetrics(): Android 12'de (API düzeyi 31) kullanımdan kaldırıldı

Oluştur

Jetpack Compose, uyarlanabilir kullanıcı arayüzü geliştirme için tasarlanmıştır. XML yok, düzen yok kaynak niteleyicileri yoktur. Yalnızca Kotlin tabanlı, durum bilgisiz composable'lar Kullanıcı arayüzünüzü ve değiştiricilerinizi tanımlayan Column, Row ve Box gibi Kullanıcı arayüzüne davranış ekleyen offset, padding ve size gibi öğeler.

✓ Şunu yapın:

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

✗ Şunları yapmayın:

Eski teknolojilere güvenmeyin. Uygulamanızın kullanımdan kaldırılmasına izin vermeyin.

Materyal 3 Uyarlanabilir kitaplık oluşturma

Compose Material 3 Uyarlanabilir kitaplığı, uyarlanabilir uygulamaların geliştirilmesini kolaylaştırmak.

✓ Şunu yapın:

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

  • NavigationSuiteScaffold: Gezinme çubuğu ile gezinme çubuğu arasında geçiş yapar uygulama pencere boyutu sınıfına bağlı olarak gezinme sütunu.
  • ListDetailPaneScaffold: Liste ayrıntıları standart düzenini uygular. Düzeni uygulama pencere boyutuna uyarlar.
  • SupportingPaneScaffold: Standart destek bölmesini uygular kullanır.
✗ Şunları yapmayın:

Tekerleği yeniden keşfetmeyin. Geliştiricilerin üretkenlik açısından sağladığı avantajları kaçırmayın kitaplığı tarafından sağlanıyor.

Düzenler

Kullanıcılar, ek reklam öğeleriyle uygulamaların mevcut görüntüleme alanından en iyi şekilde yararlanmasını bekler. kontrol edebilirsiniz.

Uyarlanabilir uygulamalar, özellikle ekran görüntüsünde görülen değişikliklere göre düzenleri optimize eder uygulama penceresinin boyutunda veya cihazın duruşunda değişiklikler olabilir.

✓ Şunu yapın:

Pencere boyutu değiştikçe kullanıcı arayüzü bileşenlerini değiştirerek, mevcut kullanabilirsiniz. Örneğin, küçük resim sekmesinde kullanılan alt gezinme çubuğunu orta ve genişletilmiş pencerelerde dikey gezinme çubuğu için pencere boyutları. İletişim kutularını, tüm ekranlarda erişilebilir olacak şekilde yeniden konumlandırın.

Aşağıdaki gibi çok bölmeli düzenleri etkinleştirmek için içeriği bölmeler halinde düzenleyin: liste ayrıntısı ve destek bölmesi açılır.

ziyaret edin.
✓ Yapılması gerekenler: Etkinlikleri çift bölmeli bir düzende listeleyin ve listeleyin.
✗ Şunları yapmayın:

İçerik bölmelerini kullanmıyorsanız, boşlukları doldurmak için kullanıcı arayüzü öğelerini kullanabilirsiniz. Uzun metin satırları okumak zordur. Uzatılmış düğmelerin tasarımı kötü görünüyor. Modifier.fillMaxWidth kullanıyorsanız şunları kullanmayın: Bunun tüm ekran boyutları için doğru çalışma olduğunu varsayın.

ziyaret edin.
✗ Yapılmaması gerekenler: Düzen, genişleyen pencereyi dolduracak şekilde genişletilir.

Giriş cihazları

Kullanıcılar dokunmatik ekranları yalnızca uygulamalarla etkileşimde bulunmak için kullanmaz.

Uyarlanabilir uygulamalar, harici klavyeleri, fareleri ve ekran kalemlerini destekleyerek Gelişmiş kullanıcı deneyimini geliştirmek ve kullanıcıların oluşturuyoruz.

✓ Şunu yapın:

Android çerçevesinin yerleşik işlevlerinden klavye sekmesinde gezinme ve fare ya da dokunmatik yüzey tıklama, seçme ve kaydırma. Yayınla Klavye Kısayolları Yardımcısı'nda uygulamanızın klavye kısayollarını kullanabilirsiniz.

Kullanıcıların istedikleri metinlere yazmalarını sağlamak için Jetpack Material 3 kitaplığını kullanın TextField bileşenini ekran kalemi ile kullanın.

✗ Şunları yapmayın:

Alternatif giriş yöntemlerini imkansız hale getirmeyin. Erişilebilirlik hakkında bilgi vermeyin sorunları.

Özet

  • Uygulamanızı Compose ve Material 3 Adaptive kitaplığıyla geliştirin
  • Pencere boyutu sınıflarını temel alan düzenler
  • Çok bölmeli düzenler oluşturma
  • Uygulamanızı yeniden boyutlandırılabilir hale getirin
  • Etkinlik yönünü hiçbir zaman kilitleme
  • En boy oranını kısıtlama
  • Dokunma dışında girişi destekle
  • Desteği sonlandırılan API'lerden kaçının

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

Beklemeyin. Hemen kullanmaya başlayın.