Mengoptimalkan aplikasi untuk ChromeOS

Aplikasi Android berperan penting dalam mengubah penampilan komputasi modern di layar lebar. Namun, menjalankan aplikasi seluler di Chromebook saja tidak akan memberikan pengalaman terbaik kepada pengguna.

Halaman ini menjelaskan beberapa cara untuk menyesuaikan pengalaman dengan faktor bentuk laptop dan konvertibel. Lihat daftar lengkap pengujian untuk mempelajari lebih lanjut cara menguji kompatibilitas aplikasi di perangkat ini.

Memanfaatkan dukungan untuk multi-jendela dengan format bebas

Implementasi aplikasi Android di ChromeOS menyertakan dukungan multi-aplikasi dasar. Daripada selalu menggunakan layar penuh, Android merender aplikasi di ChromeOS ke penampung jendela berformat bebas, yang lebih sesuai untuk perangkat ini.

Pengguna dapat mengubah ukuran jendela yang berisi aplikasi Android Anda, seperti yang ditunjukkan pada gambar 1. Untuk memastikan jendela dengan format bebas tersebut diubah ukurannya secara halus dan menampilkan seluruh kontennya kepada pengguna, baca panduan di Pengelolaan jendela.

Gambar 1. Jendela aplikasi yang dapat diubah ukurannya.

Anda dapat meningkatkan pengalaman pengguna saat aplikasi berjalan di ChromeOS dengan mengikuti praktik terbaik berikut:

  • Tangani siklus proses aktivitas dengan benar dalam mode multi-aplikasi dan pastikan Anda terus mengupdate UI, bahkan saat aplikasi Anda bukan jendela yang paling difokuskan.
  • Pastikan bahwa aplikasi Anda menyesuaikan tata letaknya dengan tepat setiap kali pengguna mengubah ukuran jendela.
  • Sesuaikan dimensi awal jendela aplikasi dengan menentukan ukuran peluncurannya.
  • Perhatikan bahwa orientasi aktivitas root aplikasi memengaruhi semua jendelanya.

Menyesuaikan warna kolom atas

ChromeOS menggunakan tema aplikasi untuk mewarnai panel atas yang ditampilkan di bagian atas aplikasi, yang menunjukkan kapan pengguna menahan kontrol jendela dan tombol kembali. Agar aplikasi Anda terlihat bagus dan dapat disesuaikan untuk ChromeOS, tentukan nilai colorPrimary dan, jika memungkinkan, colorPrimaryDark dalam tema aplikasi Anda.

colorPrimaryDark digunakan untuk mewarnai panel atas. Jika hanya colorPrimary yang ditentukan, ChromeOS akan menggunakan versi yang lebih gelap di kolom atas. Untuk mengetahui informasi selengkapnya, lihat Gaya dan tema.

Mendukung keyboard, trackpad, dan mouse

Semua Chromebook memiliki keyboard fisik dan trackpad, dan sebagian juga memiliki layar sentuh. Beberapa perangkat dapat melakukan konversi dari laptop ke bentuk tablet.

Di aplikasi untuk ChromeOS, dukung input dari mouse, trackpad, dan keyboard agar aplikasi dapat digunakan tanpa layar sentuh. Banyak aplikasi sudah mendukung mouse dan trackpad tanpa memerlukan upaya tambahan. Namun, sebaiknya sesuaikan perilaku aplikasi Anda untuk mouse dengan tepat dan untuk mendukung serta membedakan antara input mouse dan sentuh.

Pastikan bahwa:

  • Semua target dapat diklik dengan mouse.
  • Semua permukaan sentuh yang dapat di-scroll akan men-scroll setiap peristiwa roda mouse, seperti yang ditunjukkan pada gambar 2.
  • Status pengarahan kursor diterapkan dengan penilaian cermat untuk meningkatkan visibilitas UI tanpa membingungkan pengguna, seperti yang ditunjukkan pada gambar 3.

Gambar 2. Men-scroll dengan roda mouse.

Gambar 3. Status saat kursor diarahkan pada tombol.

Jika memungkinkan, bedakan antara input mouse dan sentuh. Misalnya, sentuh lama item dapat memicu UI multi-pilihan, sementara mengklik kanan item yang sama dapat memicu menu opsi.

Kursor khusus

Sesuaikan kursor mouse aplikasi untuk menunjukkan elemen UI apa yang dapat berinteraksi dengan pengguna dan bagaimana caranya. Anda dapat menetapkan PointerIcon agar digunakan saat pengguna berinteraksi dengan tampilan dengan memanggil metode setPointerIcon().

Di aplikasi, tampilkan semua hal berikut:

  • Pointer I-beam untuk teks
  • Handel pengubah ukuran pada tepi lapisan yang dapat diubah ukurannya
  • Pointer tangan terbuka dan tertutup untuk konten yang dapat digeser atau ditarik menggunakan gestur klik dan tarik
  • Indikator lingkaran berputar saat sedang memproses

Class PointerIcon memberikan konstanta yang dapat Anda gunakan untuk mengimplementasikan kursor kustom.

Pintasan keyboard dan navigasi

Karena setiap Chromebook memiliki keyboard fisik, sediakan hot key untuk memungkinkan pengguna menjadi lebih produktif. Misalnya, jika aplikasi mendukung pencetakan, Anda dapat menggunakan Control+P untuk membuka dialog cetak.

Demikian pula, tangani semua elemen UI penting menggunakan navigasi tab. Hal ini sangat penting untuk aksesibilitas. Untuk memenuhi standar aksesibilitas, semua platform UI harus memiliki status fokus yang jelas dan sesuai dengan aksesibilitas, seperti yang ditunjukkan pada gambar berikut:

Gambar 4. {i>Tabbing <i}transversal.

Gambar 5. Mengganti gestur geser dengan kontrol yang muncul saat kursor diarahkan ke atasnya.

Pastikan untuk mengimplementasikan alternatif keyboard atau mouse untuk fitur inti yang tersembunyi dalam interaksi khusus sentuhan, seperti tindakan sentuh lama, geser, atau gestur multi-kontrol lainnya. Contoh solusinya adalah dengan menyediakan tombol yang muncul di permukaan saat kursor diarahkan ke atasnya.

Untuk mengetahui informasi selengkapnya tentang dukungan keyboard, trackpad, dan mouse, lihat Kompatibilitas input di perangkat layar besar.

Meningkatkan input pengguna lebih lanjut

Agar mencapai fungsionalitas tingkat desktop untuk aplikasi Anda, pertimbangkan input yang berorientasi pada produktivitas berikut.

Menu konteks

Menu konteks Android, yang merupakan akselerator lain untuk mengarahkan pengguna ke fitur aplikasi Anda, dapat dipicu dengan mengklik mouse atau tombol sekunder trackpad atau melalui sentuh lama di layar sentuh:

Gambar 6. Menu konteks yang muncul pada klik kanan.

Tarik lalu lepas

Membangun interaksi tarik lalu lepas, seperti dalam gambar berikut, dapat menghadirkan fungsi produktivitas yang efisien dan intuitif ke aplikasi Anda. Untuk informasi selengkapnya, lihat Tarik lalu lepas.

Gambar 7. Tarik lalu lepas pada antarmuka hierarki file.

Dukungan stilus

Dukungan stilus sangat penting untuk aplikasi menggambar dan membuat catatan. Berikan dukungan yang ditingkatkan untuk Chromebook dan tablet yang dilengkapi stilus dengan menerapkan interaksi yang disesuaikan untuk penggunaan input stilus.

Pertimbangkan potensi variasi hardware stilus yang berbeda saat merancang interaksi stilus Anda. Untuk mengetahui ringkasan API stilus, lihat Kompatibilitas input di perangkat layar besar.

Menjadikan tata letak Anda responsif

Manfaatkan ruang layar yang tersedia untuk aplikasi Anda dengan baik, apa pun status visualnya (layar penuh, potret, lanskap, atau jendela). Beberapa contoh penggunaan ruang yang baik meliputi:

  • Arsitektur aplikasi display.
  • Batasi panjang teks dan ukuran gambar hingga lebar maksimum.
  • Manfaatkan ruang dengan lebih baik di toolbar aplikasi.
  • Tingkatkan penempatan kemampuan UI dengan menyesuaikan aplikasi ke penggunaan mouse, bukan penggunaan sentuh.
  • Optimalkan ukuran video dan gambar, tetapkan lebar dan tinggi maksimum untuk semua media, serta maksimalkan keterbacaan dan keterpindaian.
  • Menerapkan sistem kolom responsif. Untuk mengetahui informasi selengkapnya, lihat Petak tata letak responsif.
  • Mengubah ukuran dan memodifikasi UI saat diperlukan menggunakan sistem kolom. Hindari membuka jendela baru jika memungkinkan.
  • Hapus atau kurangi signifikansi komponen scroll horizontal.
  • Hindari UI modal layar penuh. Gunakan UI inline, seperti indikator progres dan pemberitahuan, untuk semua tindakan yang tidak penting.
  • Gunakan komponen UI yang ditingkatkan, seperti alat pilih waktu dan tanggal, kolom teks, serta menu yang dirancang untuk mouse, keyboard, dan layar yang lebih besar.
  • Gunakan edit inline, kolom tambahan, atau UI modal, bukan aktivitas baru untuk fitur edit kecil hingga sedang.
  • Hapus atau modifikasi tombol tindakan mengambang (FAB) untuk navigasi keyboard yang lebih baik. Secara default, FAB posisi terakhir dalam urutan tabbing transversal. Sebagai gantinya, jadikan tindakan tersebut terlebih dahulu, karena itu adalah tindakan utama, atau ganti dengan atribut lain yang memiliki tingkat lebih tinggi.

Gambar 8. Tiruan tata letak responsif di layar ponsel dan ukuran desktop.

Tombol kembali level sistem adalah pola yang dibawa dari root perangkat Android, yang tidak cocok seperti dalam konteks desktop.

Seiring aplikasi semakin disesuaikan untuk lingkungan laptop, pertimbangkan untuk beralih ke pola navigasi yang tidak menekankan tombol kembali. Biarkan aplikasi menangani tumpukan historinya sendiri dengan menyediakan tombol kembali dalam aplikasi, breadcrumb, atau rute keluar lainnya seperti tombol tutup atau batal sebagai bagian dari UI layar besar.

Anda dapat mengontrol apakah aplikasi menampilkan tombol kembali di jendelanya atau tidak dengan menyetel preferensi di dalam tag <activity>. Setelan true menyembunyikan tombol kembali:

<meta-data android:name="WindowManagerPreference:SuppressWindowControlNavigationButton" android:value="true" />

Menyelesaikan masalah dengan gambar pratinjau kamera

Masalah kamera dapat muncul jika aplikasi hanya dapat berjalan dalam orientasi potret, tetapi pengguna menjalankannya di layar lanskap. Dalam hal ini, pratinjau atau hasil yang diambil mungkin salah dirotasi.

Mode kompatibilitas mengubah cara sistem menangani peristiwa, seperti perubahan orientasi, di ChromeOS. Hal ini membantu mencegah masalah saat kamera digunakan dalam mode orientasi yang salah. Untuk mengaktifkan mode kompatibilitas, penuhi kriteria berikut:

  • Targetkan minimal Android 7.0 (API level 24). Level SDK minimum dapat lebih rendah.
  • Buat aplikasi agar dapat diubah ukurannya.

Menangani setelan perangkat

Pertimbangkan setelan perangkat berikut untuk aplikasi yang berjalan di ChromeOS.

Mengubah volume

Perangkat ChromeOS adalah perangkat volume tetap: aplikasi yang memutar suara memiliki kontrol volumenya sendiri. Ikuti panduan untuk Menangani perangkat volume tetap.

Mengubah kecerahan layar

Anda tidak dapat menyesuaikan kecerahan perangkat di ChromeOS. Panggilan ke system settings dan WindowManager.LayoutParams akan diabaikan.

Materi belajar tambahan

Guna mempelajari lebih lanjut cara mengoptimalkan aplikasi Android untuk Chromebook, lihat referensi berikut: