Desain aplikasi

Bab ini berfokus pada beberapa aspek penting dari rendering konten di luar tab browser.

Jendela

Sistem operasi yang berbeda memiliki gagasan yang berbeda tentang jendela aplikasi. Misalnya, pada iPhone, aplikasi selalu memenuhi 100% layar. Di Android dan iPad, aplikasi biasanya menjalankan layar penuh tetapi memungkinkan untuk berbagi layar antara dua aplikasi, tetapi hanya ada satu instance aplikasi yang terbuka pada satu waktu. Sebaliknya, di perangkat desktop, sebuah aplikasi dapat membuka lebih dari satu instance sekaligus. Aplikasi membagikan ruang layar yang tersedia dengan semua aplikasi terbuka lainnya. Setiap instance aplikasi dapat diubah ukurannya dan diposisikan di mana saja pada layar, bahkan tumpang tindih dengan aplikasi lain.

Ikon

Kami mengenali aplikasi dari ikonnya. Ikon tersebut muncul saat Anda menelusuri aplikasi, di setelan, di mana pun Anda meluncurkan aplikasi, dan di tempat Anda melihat aplikasi yang sedang berjalan.

Fitur tersebut meliputi:

  • Layar utama (iOS, iPadOS, Android).
  • Peluncur Aplikasi (macOS, Android).
  • Menu Mulai atau Menu Aplikasi (Windows, ChromeOS, Linux).
  • Panel Dok, TaskBar, atau Multi-task (semua sistem operasi).

Saat membuat ikon untuk Progressive Web App, pastikan ikonnya tidak bergantung pada platform, karena setiap sistem operasi dapat merender ikon dan menerapkan mask bentuk yang berbeda pada ikon tersebut, seperti pada gambar di bawah.

Ikon PWA dalam berbagai bentuk untuk berbagai platform.

Tema aplikasi

Ada sejumlah cara untuk menyesuaikan gaya aplikasi di PWA Anda, termasuk:

  • Warna tema: menentukan warna panel judul jendela pada desktop dan warna status bar di perangkat seluler. Dengan menggunakan tag meta, Anda dapat memiliki opsi untuk skema yang berbeda, seperti mode gelap atau terang dan opsi tersebut akan digunakan berdasarkan preferensi pengguna.
  • Warna latar belakang: menentukan warna jendela sebelum aplikasi dan CSS-nya dimuat.
  • Warna aksen: menentukan warna komponen browser bawaan, seperti kontrol formulir.
PWA desktop yang menampilkan warna aksen dan tema, serta layar pembuka PWA Android yang menampilkan tema dan warna latar belakang.
PWA desktop yang menampilkan warna tema dan aksen, serta layar pembuka PWA Android yang menampilkan warna latar dan tema.

Mode tampilan

Anda dapat menentukan jenis pengalaman jendela yang diinginkan untuk Progressive Web App. Ada tiga opsi yang dapat dipilih:

  • Layar penuh
  • Mandiri
  • Antarmuka Pengguna Minimal

Pengalaman layar penuh

Pengalaman layar penuh cocok untuk pengalaman yang imersif, seperti pengalaman game, VR, atau AR. Saat ini, alat ini hanya tersedia di perangkat Android, dan menyembunyikan status bar serta menu navigasi, sehingga PWA Anda memiliki 100% layar untuk konten Anda.

Di desktop dan iPadOS, PWA layar penuh tidak didukung; tetapi, Anda dapat menggunakan Fullscreen API dari dalam PWA untuk menampilkan aplikasi Anda dalam layar penuh atas permintaan pengguna.

Pengalaman mandiri

Opsi paling umum untuk Progressive Web App, mode mandiri menampilkan PWA Anda di jendela standar OS tanpa UI navigasi browser apa pun. Jendela ini juga dapat menyertakan menu yang dikontrol browser tempat pengguna dapat:

  • Salin URL saat ini.
  • Lihat, terapkan, atau nonaktifkan ekstensi browser.
  • Lihat dan ubah izin.
  • Periksa origin saat ini dan sertifikat SSL.

Panel judul juga dapat menampilkan izin dan penggunaan hardware yang menggantikan omnibox atau kolom URL saat PWA merender di tab.

PWA yang diinstal dengan Microsoft Edge di desktop menampilkan menunya. PWA yang diinstal dengan Google Chrome di desktop menampilkan menu drop-down dan ikon plugin.
Gambar di atas menunjukkan cara PWA ditampilkan dalam mode mandiri di desktop di Microsoft Edge, dan Chrome.

Di perangkat seluler, pengalaman PWA mandiri akan membuat layar standar yang membuat status bar tetap terlihat, sehingga pengguna masih dapat melihat notifikasi, waktu, dan level baterai. Sering kali tidak ada menu yang dikontrol browser seperti yang dapat disertakan oleh pengalaman mandiri desktop.

Perangkat iOS yang merender aplikasi mandiri.

Beberapa browser di Android membuat notifikasi tetap dan senyap saat PWA berada di latar depan yang memungkinkan pengguna menyalin URL saat ini atau opsi lainnya.

Notifikasi Android yang ditampilkan oleh Chrome menampilkan beberapa tindakan pada PWA aktif saat ini.

Antarmuka pengguna minimal

Mode ini tersedia untuk Progressive Web App di sistem operasi Android dan desktop. Saat Anda menggunakannya, browser yang merender PWA Anda akan menampilkan antarmuka pengguna minimal untuk membantu pengguna bernavigasi di dalam aplikasi.

Di Android, Anda akan mendapatkan panel judul yang merender elemen <title> saat ini dan origin dengan menu drop-down kecil yang tersedia. Di desktop, Anda akan mendapatkan sekumpulan tombol di panel judul untuk membantu navigasi, termasuk tombol kembali dan kontrol yang beralih antara tindakan berhenti dan muat ulang, berdasarkan status pemuatan saat ini.

UI minimal desktop di Microsoft Edge dengan tombol kembali dan muat ulang
Di Android, browser menggunakan bilah navigasi bertema hanya baca untuk UI minimal, di sini Firefox dan Chrome

Mengoptimalkan desain untuk desktop

Saat mendesain Progressive Web App agar berfungsi di desktop, Anda perlu mempertimbangkan kemungkinan tak terbatas untuk ukuran jendela, jika dibandingkan dengan berada di tab browser atau sebagai aplikasi di sistem operasi seluler.

Dalam Bab 3, kami menyebutkan mode mini: aplikasi desktop dapat berukuran sekecil 200 x 100 piksel. Jendela ini akan menggunakan konten elemen <title> di HTML Anda sebagai judul jendela. Konten tersebut juga dirender saat Anda melakukan alt-tab di antara aplikasi dan di tempat lain.

Perhatikan elemen <title> HTML dan pertimbangkan kembali cara Anda menggunakannya. <title> bukan hanya untuk SEO atau merender hanya karakter pertama pada tab browser; ini akan menjadi bagian dari pengalaman pengguna pada jendela desktop mandiri Anda.

Praktik terbaik CSS

Semua pengalaman Anda dengan tata letak, desain, dan animasi CSS akan valid jika konten dirender dalam pengalaman mandiri. Namun, ada beberapa tips dan trik untuk meningkatkan kualitas pengalaman menggunakan jendela mandiri.

Kueri Media

Kueri media pertama yang dapat Anda manfaatkan di PWA adalah properti display-mode yang menerima nilai browser, standalone, minimal-ui, atau fullscreen.

Kueri media ini menerapkan gaya yang berbeda untuk setiap mode. Misalnya, Anda dapat merender undangan penginstalan hanya saat dalam mode browser, atau merender satu informasi tertentu hanya saat pengguna menggunakan aplikasi Anda dari ikon sistem. Hal ini mungkin termasuk menambahkan tombol kembali untuk digunakan saat aplikasi Anda diluncurkan dalam mode mandiri.

/* It targets only the app used within the browser */
@media (display-mode: browser) {
}
/* It targets only the app used with a system icon in standalone mode */
@media (display-mode: standalone) {
}
/* It targets only the app used with a system icon in all mode */
@media (display-mode: standalone), (display-mode: fullscreen), (display-mode: minimal-ui) {
}

Pengalaman aplikasi

Saat pengguna menggunakan PWA yang diinstal, mereka mengharapkan perilaku aplikasi. Meskipun tidak mudah untuk menentukan artinya, perilaku web default tidak memberikan pengalaman terbaik dalam beberapa situasi.

Pilihan pengguna

Konten umumnya dapat dipilih dengan mouse atau pointer, atau gestur sentuh tekan dan tahan. Meskipun membantu untuk konten, fitur ini tidak memberikan pengalaman terbaik untuk item navigasi, menu, dan tombol dalam PWA Anda.

PWA kalkulator tempat Anda dapat memilih setiap tombol interaktif, seperti angka.

Oleh karena itu, sebaiknya nonaktifkan pilihan pengguna pada elemen ini menggunakan user-select: none dan versi awalan -webkit--nya:

.unselectable {
   user-select: none;
}

Warna aksen

Di PWA, Anda dapat menentukan warna agar cocok dengan merek Anda dalam kontrol formulir HTML menggunakan properti accent-color.

Font sistem

Jika ingin elemen, seperti dialog atau pesan, cocok dengan font platform default pengguna, Anda dapat menggunakan jenis font berikut:

selector {
  font-family: -apple-system, BlinkMacSystemFont,
    "Segoe UI", system-ui, Roboto, Oxygen-Sans, Ubuntu, Cantarell,
    "Helvetica Neue", sans-serif;
}

Tarik untuk me-refresh

Browser seluler modern, seperti Google Chrome dan Safari, memiliki fitur yang memuat ulang halaman saat halaman dibuka. Di beberapa browser, seperti Chrome di Android, perilaku tersebut juga diaktifkan di PWA mandiri.

Sebaiknya nonaktifkan tindakan ini. Misalnya, saat menyediakan pengelolaan gestur atau tindakan refresh Anda sendiri, atau jika ada kemungkinan pengguna akan memicu tindakan tersebut secara tidak sengaja.

Anda dapat menonaktifkan perilaku ini menggunakan overscroll-behavior-y: contain:.

  body {
    overscroll-behavior-y: contain;
  }

Area aman

Beberapa perangkat tidak memiliki layar persegi panjang yang tidak terhalang; sebaliknya, bentuk layarnya mungkin berbeda, seperti lingkaran, atau memiliki bagian layar yang tidak dapat digunakan, seperti lekukan iPhone 13. Dalam kasus ini, beberapa browser akan mengekspos variabel lingkungan dengan area aman yang dapat menampilkan konten.

Di bagian atas, perangkat berbasis notch dalam lanskap dengan area pandang standar yang menampilkan area yang tidak dirender di bagian samping; di bagian bawah, perangkat dengan akses area pandang penuh berkat area pandang-fit=cover.

Jika Anda ingin mendapatkan akses penuh ke layar, bahkan area yang tidak terlihat, untuk merender warna atau gambar Anda, sertakan viewport-fit=cover dalam konten tag <meta name="viewport"> Anda. Kemudian, gunakan variabel lingkungan safe-area-inset-* untuk memperluas konten Anda dengan aman ke area tersebut.

Referensi