Diposting oleh Alex Vanyo, Insinyur Hubungan Pengembang

Dengan semakin banyaknya aplikasi Android yang digunakan pada faktor bentuk layar besar seperti perangkat foldable dan tablet, semakin banyak aplikasi yang membangun UI yang sepenuhnya adaptif. Lihat Mendukung berbagai ukuran layar untuk praktik terbaik memperbarui aplikasi Anda untuk praktik terbaik memperbarui aplikasi Anda. Intinya adalah Tata Letak dan perilaku aplikasi harus didasarkan pada konfigurasi perangkat dan fitur yang tersedia, dan bukan tipe fisik perangkat.

Pada saat yang sama, kami sering mendapatkan pertanyaan ini: “Apakah ada cara mudah untuk mengetahui apakah suatu perangkat dapat dilipat, tablet, atau yang lainnya?”

Tampaknya menggunakan jenis perangkat fisik menyediakan semua informasi yang dibutuhkan pengembang untuk menciptakan pengalaman yang luar biasa. Namun, kami dapat membuat aplikasi yang lebih adaptif dengan pengalaman pengguna yang lebih baik dengan menambahkan lebih banyak konteks. Misalnya:

  • Apakah Anda ingin ponsel bergaya “flip” dihitung sebagai ponsel yang dapat dilipat?
  • Apakah Anda ingin menentukan apakah suatu perangkat adalah tablet, atau hanya apakah fungsi seluler tersedia?
  • Rollable dihitung sebagai apa? Bagaimana dengan perangkat ChromeOS, atau perangkat desktop lain yang dapat menjalankan aplikasi Android?

Alasan paling umum mengapa developer aplikasi ingin mengetahui jenis perangkat adalah agar mereka dapat menentukan tata letak seperti apa yang akan ditampilkan. Namun dengan meningkatnya penggunaan layar terbagi dan multijendela pada layar besar, membuat keputusan tata letak berdasarkan jenis perangkat menyebabkan keputusan tata letak yang salah dalam skenario tertentu pada perangkat layar besar.

Karena kami telah memperbarui aplikasi kami sendiri untuk mendukung lebih banyak perangkat dengan lebih baik, kami telah melihat beberapa kasus penggunaan penting untuk disoroti lebih lanjut. Kami akan membahas empat skenario utama:

  1. Tata Letak – Menampilkan UI yang paling sesuai untuk berbagai perangkat dan postur lipat
  2. Fitur perangkat keras – Mengimplementasikan dukungan untuk berbagai fitur perangkat keras
  3. Menampilkan nama jenis perangkat fisik kepada pengguna – Personalisasikan informasi yang dihadapi pengguna akhir untuk jenis perangkat.
  4. Pelacakan metrik untuk jenis perangkat – Pahami cara pengguna menggunakan aplikasi Anda di berbagai jenis perangkat

Tata letak

Sasaran

Tampilkan UI yang paling sesuai untuk berbagai perangkat, mode tampilan, dan postur lipat.

Solusi yang Direkomendasikan

Gunakan kelas ukuran jendela untuk memandu keputusan tata letak berdasarkan status jendela Anda saat ini menggunakan breakpoint berpendirian yang berasal dari jenis perangkat umum. Jangan batasi orientasi atau kemampuan mengubah ukuran; Anda mencegah pengguna menggunakan aplikasi Anda dengan cara yang mereka inginkan.

Amati fitur pelipatan dengan Jetpack WindowManager, yang menyediakan serangkaian fitur pelipatan yang memotong jendela aplikasi Anda saat ini. Perhatikan bahwa meskipun aktivitas Anda tidak menerima fitur pelipatan apa pun, aktivitas tersebut masih dapat berjalan di perangkat yang dapat dilipat – di layar luar, di layar dalam di jendela kecil, atau di layar eksternal.

Mengapa

Secara historis, beberapa tata letak yang berbeda dibuat untuk ukuran layar yang berbeda, seringkali dengan tata letak “tablet” dan tata letak “telepon”. Kedua tata letak ini kemudian ada bersama, dan keduanya harus selalu diperbarui saat aplikasi berubah. Mengacu pada tata letak ini sebagai tata letak “tablet” dan “ponsel” berguna ketika produsen perangkat pada umumnya membatasi diri untuk membuat perangkat yang cocok dengan dua kategori ini. Pengguna saat ini memiliki lebih banyak pilihan karena pabrikan membuat perangkat yang lebih bervariasi secara fisik, dan dapat digunakan dengan cara yang berbeda.

Satu perangkat terkadang memiliki cukup ruang untuk menampilkan tata letak berukuran “tablet”, sementara di lain waktu (misalnya, layar lipat atau layar terpisah) perangkat mungkin hanya memiliki cukup ruang untuk menampilkan tata letak “ponsel”. Bahkan ada kasus di mana tata letak yang lebih kecil diinginkan seperti tampilan penutup ponsel flip yang dapat dilipat.

Hal ini dapat terjadi karena perangkat foldable yang memiliki layar luar lebih kecil dan layar dalam lebih besar, atau setiap kali pengguna memasuki mode multi-jendela dan menyesuaikan lingkungan jendela bentuk bebas. Yang terpenting, jenis tata letak aplikasi tidak boleh ditentukan oleh jenis fisik perangkat; itu harus ditentukan oleh ukuran jendela aplikasi saat ini, yang mungkin atau mungkin tidak layar penuh pada tampilan perangkat saat ini.

Pada perangkat layar besar yang menjalankan Android 12L dan lebih tinggi, aplikasi yang membatasi orientasi atau kemampuan mengubah ukuran dapat ditempatkan ke mode kompatibilitas saat perangkat diputar atau dilipat atau aplikasi memasuki mode multi-jendela. Mode kompatibilitas melengkapi aplikasi, mempertahankan batasan yang ditentukan aplikasi, tetapi kehilangan kesempatan untuk menampilkan lebih banyak konten yang bermanfaat bagi pengguna.

Fitur perangkat keras

Sasaran

Terapkan dukungan untuk berbagai fitur perangkat keras (misalnya, jika perangkat memiliki SIM).

Merekomendasikan Solusi

Buat keputusan waktu proses yang dinamis berdasarkan ketersediaan fitur, alih-alih berasumsi bahwa fitur tersedia atau tidak tersedia untuk jenis perangkat tertentu.

Jika aplikasi Anda memiliki fitur yang benar-benar diperlukan, Google Play menghormati deklarasi fitur penggunaan yang diperlukan dalam manifes Anda. Namun, perhatikan bahwa setiap fitur yang diperlukan akan mengurangi jumlah perangkat tempat aplikasi Anda dapat diinstal, dan menambahkan fitur baru yang diperlukan akan mencegah pembaruan ke perangkat yang didukung sebelumnya.

Mengapa

Ada banyak fitur perangkat keras yang ada di beberapa perangkat Android, tetapi tidak ada di perangkat lain. Saat perangkat terus berkembang, kami telah melihat beberapa kasus di mana fitur yang menghadap ke pengguna tidak didukung, karena pengembang berasumsi bahwa jenis perangkat fisik tidak mendukung fitur perangkat keras tertentu.

Misalnya, kami telah melihat kasus di mana autentikasi biometrik tidak ditawarkan sebagai opsi masuk pada tablet yang mendukung autentikasi biometrik, meskipun aplikasi yang sama mendukung autentikasi biometrik pada ponsel. Otentikasi biometrik harus menjadi pilihan bagi pengguna jika perangkat mendukungnya, bukan berdasarkan jenis perangkat.

Contoh lain adalah asumsi konektivitas seluler terbatas pada telepon ukuran standar. Perangkat foldable mungkin memiliki layar berukuran “tablet”, tetapi perangkat foldable masih memiliki koneksi seluler dan nomor telepon. Jika suatu perangkat memiliki kemampuan, pengguna harus dapat memilih untuk menggunakan perangkat yang sesuai.

Beberapa fitur perangkat keras juga tersedia secara dinamis. Periferal dapat dipasang dan dilepas oleh pengguna, dan aplikasi harus dengan baik menangani perolehan dan kehilangan akses ke fitur ini. Fitur perangkat keras seperti kamera dan mikrofon hanya dapat digunakan oleh satu aplikasi dalam satu waktu, jadi multitugas di antara aplikasi yang berbeda juga dapat mengakibatkan hilangnya akses ke fitur perangkat keras.

Menampilkan jenis perangkat fisik kepada pengguna

Sasaran

Personalisasikan informasi yang dilihat pengguna menurut jenis perangkat (misalnya, “Jalankan di tablet Anda”)

Rekomendasi

Merujuk di UI ke perangkat pengguna hanya sebagai “perangkat” yang mencakup semua faktor bentuk dan merupakan yang paling sederhana untuk diterapkan. Namun, membedakan antara beberapa perangkat yang mungkin dimiliki pengguna memberikan pengalaman yang lebih halus dan memungkinkan Anda menampilkan jenis perangkat kepada pengguna menggunakan heuristik yang relevan dengan kasus penggunaan khusus Anda.

Misalnya, Google Play saat ini menggunakan heuristik berikut untuk menentukan nama perangkat yang akan ditampilkan kepada pengguna saat memasang aplikasi di perangkat tertentu. Logikanya khusus untuk kasus penggunaan khusus ini, dan dapat berubah seiring berkembangnya perangkat dan faktor bentuk.

Logika Nama Tampilan Perangkat Google Play mulai Juni 2023

Mengapa

Jika Anda menampilkan jenis perangkat kepada pengguna, dan ingin membedakan antara jenis fisik perangkat untuk mempersonalisasi pengalaman, seperti mengatakan “unduh di ponsel lipat Anda” atau untuk menampilkan citra perangkat yang lebih spesifik, Anda dapat menggunakan fitur fisik yang tersedia sebagai heuristik untuk jenis perangkat yang digunakan pengguna. Namun, ini hanya heuristik dan dapat berubah karena istilah yang diterima untuk merujuk ke perangkat itu sendiri berubah. Seperti dibahas di atas, perangkat foldable mungkin mendukung atau tidak mendukung fitur perangkat keras lain, atau memiliki layar besar.

Heuristik “Lipat”:

Jika suatu perangkat memiliki sensor engsel (yang dapat ditentukan oleh PackageManager.hasSystemFeature(PackageManager.FEATURE_SENSOR_HINGE_ANGLE)), maka perangkat tersebut mendukung pelipatan dalam beberapa cara. Catatan: Meskipun ini mencakup sebagian besar perangkat lipat yang bergerak maju, ini mungkin tidak mencakup beberapa perangkat lipat lama yang tidak menampilkan sensor engsel. Selain itu, layar tempat aplikasi ditampilkan mungkin atau mungkin tidak terlipat, perangkat mungkin juga memiliki layar non-lipat tambahan, atau layar saat ini mungkin tidak terlipat, meskipun bisa terlipat. Perangkat seperti Samsung Flip memiliki lebar terkecil kurang dari 600dp, Layar bagian dalam perangkat lipat layar besar memiliki lebar terkecil 600dp atau lebih.

heuristik “Telepon”:

99,96% ponsel memiliki layar built-in dengan lebar lebih kecil dari 600 dp saat dalam mode potret, tetapi ukuran layar yang sama tersebut dapat disebabkan oleh jendela bentuk bebas/layar terbagi pada tablet atau perangkat desktop.

heuristik “Desktop”:

Perangkat desktop, seperti perangkat ChromeOS, yang menjalankan aplikasi Android, dapat menampilkan informasi lingkungan atau fitur tertentu yang dapat digunakan aplikasi. Misalnya, ChromeOS memiliki fitur sistem “org.chromium.arc” atau “org.chromium.arc.device_management” untuk memungkinkan pengembang menentukan apakah aplikasi mereka berjalan di ChromeOS. Tetapi aplikasi yang berjalan di tablet – dan ponsel, jika pengguna memilihnya – juga dapat menggunakan keyboard dan mouse kelas desktop untuk meningkatkan produktivitas.

Pelacakan metrik untuk jenis perangkat

Sasaran

Pahami cara pengguna menggunakan aplikasi Anda di berbagai jenis perangkat.

Rekomendasi

Gunakan heuristik dan fitur yang dibahas di atas sebagai masukan untuk analitik Anda, sambil mengingat bahwa jenis perangkat fisik tidak memberikan cerita lengkap tentang cara pengguna menggunakan aplikasi Anda di perangkat tersebut.

Mengapa

Meskipun pengguna menggunakan perangkat yang dapat dilipat secara fisik, mereka mungkin menggunakan aplikasi dalam beberapa konfigurasi. Pengguna mungkin menggunakan aplikasi lebih banyak atau lebih sedikit di layar dalam dibandingkan dengan layar luar, dan mereka mungkin melakukan banyak tugas dengan aplikasi lain di layar dalam. Untuk perangkat yang mendukung tampilan eksternal, aplikasi mungkin tidak berjalan di salah satu tampilan fisik bawaan perangkat foldable.

Informasi lain yang mungkin juga relevan:

  • Apakah ada periferal eksternal yang digunakan untuk berinteraksi dengan aplikasi, seperti keyboard, mouse, trackpad, atau stylus?
  • Apakah perangkat memiliki layar sentuh bawaan?
  • Apakah aplikasi digunakan dalam lingkungan windowing bentuk bebas?

Kesimpulan

Jangan membuat asumsi tentang implikasi perangkat fisik tertentu untuk aplikasi Anda. “Apakah perangkatnya dapat dilipat?” adalah titik awal yang baik, tetapi itu seharusnya bukan satu-satunya pertanyaan yang Anda ajukan. Potongan informasi tambahan akan memberikan jawaban yang lebih tepat dan lebih relevan untuk kasus penggunaan Anda, dan setiap kasus penggunaan memiliki pertimbangan berbeda yang harus Anda buat untuk membangun aplikasi yang fleksibel dan adaptif.