Panduan desain UX offline

Halaman ini memberikan panduan desain tentang cara menciptakan pengalaman pengguna yang luar biasa di jaringan lambat dan offline.

Kualitas koneksi jaringan dapat dipengaruhi oleh sejumlah faktor, seperti berikut:

  • Cakupan penyedia jaringan buruk.
  • Kondisi cuaca ekstrem.
  • Pemadaman listrik.
  • Memasuki "zona mati" permanen, seperti di bangunan dengan dinding yang memblokir koneksi jaringan.
  • Memasuki "zona mati" sementara, seperti saat bepergian dengan kereta dan melalui terowongan.
  • Koneksi internet dengan waktu terbatas, seperti di bandara atau hotel.
  • Praktik budaya yang memerlukan akses internet terbatas atau tidak ada sama sekali pada waktu tertentu atau pada hari tertentu.

Tujuan Anda sebagai developer adalah memberikan pengalaman yang baik yang mengurangi dampak perubahan konektivitas.

Menentukan apa yang akan ditampilkan kepada pengguna saat mereka memiliki koneksi jaringan yang buruk

Pertanyaan pertama yang perlu diajukan adalah seperti apa keberhasilan dan kegagalan koneksi jaringan untuk aplikasi Anda. Koneksi yang berhasil adalah pengalaman online normal aplikasi Anda. Kegagalan koneksi mencakup perilaku aplikasi Anda saat offline dan di jaringan yang lambat.

Untuk menentukan cara menangani kegagalan koneksi, ajukan pertanyaan UX penting berikut kepada diri Anda sendiri:

  • Berapa lama Anda menunggu untuk menentukan keberhasilan atau kegagalan koneksi?
  • Apa yang dapat Anda lakukan saat keberhasilan atau kegagalan sedang ditentukan?
  • Apa yang harus Anda lakukan jika koneksi gagal?
  • Bagaimana Anda memberi tahu pengguna tentang apa yang terjadi?

Memberi tahu pengguna tentang status saat ini dan perubahan status

Beri tahu pengguna status aplikasi dan tindakan yang masih dapat mereka lakukan saat mengalami kegagalan jaringan. Misalnya, notifikasi mungkin berisi hal berikut:

Sepertinya Anda memiliki koneksi jaringan yang buruk. Jangan khawatir. Pesan akan dikirim saat jaringan dipulihkan.

Aplikasi pesan emoji Emojoy
    yang memberi tahu pengguna saat perubahan status terjadi.
Beri tahu pengguna dengan jelas saat perubahan status terjadi sesegera mungkin.
Aplikasi I/O 2016
    yang memberi tahu pengguna saat perubahan status terjadi.
Aplikasi Google I/O menggunakan "toast" untuk memberi tahu pengguna saat mereka offline.

Memberi tahu pengguna saat koneksi jaringan membaik atau dipulihkan

Cara Anda memberi tahu pengguna bahwa koneksi jaringan mereka telah meningkat bergantung pada aplikasi Anda. Aplikasi yang memprioritaskan informasi terkini, seperti pelacak cuaca atau pasar saham, harus otomatis diperbarui dan memberi tahu pengguna sesegera mungkin.

Sebaiknya beri tahu pengguna bahwa aplikasi web Anda telah diupdate "di latar belakang" menggunakan isyarat visual seperti elemen toast Desain Material. Hal ini mencakup mendeteksi kehadiran pekerja layanan dan update pada konten yang dikelolanya. Anda dapat melihat contoh kode fungsi ini di sini.

Salah satu contohnya adalah Status Platform Chrome, yang memposting catatan kepada pengguna saat aplikasi telah diupdate.

Contoh
    aplikasi cuaca.
Beberapa aplikasi, seperti aplikasi cuaca, perlu diupdate secara otomatis karena data lama tidak berguna.
Status Chrome
    menggunakan toast.
Aplikasi seperti Status Chrome menggunakan toast untuk memberi tahu pengguna saat konten telah diperbarui.

Beberapa aplikasi selalu dapat menampilkan waktu terakhir kali diupdate. Misalnya, hal ini sangat berguna untuk aplikasi pengonversi mata uang.

Aplikasi Material
    Money sudah usang.
Material Money menyimpan tarif dalam cache…
Uang
    material telah diperbarui.
…dan memberi tahu pengguna saat aplikasi telah diupdate.

Aplikasi berita dapat menampilkan notifikasi ketuk untuk mengupdate yang sederhana yang memberi tahu pengguna tentang konten baru. Memperbarui artikel secara otomatis akan menyebabkan pengguna kehilangan posisinya.

Contoh
    aplikasi berita, Tailpiece, dalam status normal
Tailpiece, sebuah surat kabar online, mendownload berita terbaru secara otomatis…
Contoh Tailpiece
    aplikasi berita saat siap diupdate
…tetapi memungkinkan pengguna memuat ulang secara manual agar tidak kehilangan posisi mereka dalam artikel.

Mengupdate UI untuk mencerminkan status kontekstual saat ini

Setiap elemen UI dapat memiliki konteks dan perilakunya sendiri yang berubah bergantung pada apakah elemen tersebut memerlukan koneksi yang berhasil. Salah satu contohnya adalah situs e-commerce yang dapat dijelajahi secara offline, tetapi menonaktifkan harga dan tombol Beli hingga koneksi terhubung kembali.

Bentuk status kontekstual lainnya dapat menyertakan data. Misalnya, aplikasi keuangan Robinhood menggunakan warna dan grafik untuk memberi tahu pengguna kapan pasar saham terbuka. Seluruh antarmuka akan berubah menjadi putih, lalu menjadi abu-abu saat pasar ditutup. Saat nilai saham meningkat atau menurun, setiap widget saham akan berubah menjadi hijau atau merah, bergantung pada statusnya.

Beri tahu pengguna agar mereka memahami model offline

Sebagian besar pengguna terbiasa selalu memiliki koneksi jaringan. Anda perlu mengedukasi mereka tentang perubahan apa yang terjadi di aplikasi Anda saat mereka tidak memiliki koneksi. Beri tahu mereka lokasi penyimpanan data besar dan berikan setelan untuk mengubah perilaku default. Gunakan beberapa komponen desain UI (seperti bahasa informatif, ikon, notifikasi, warna, dan gambar) secara bersamaan untuk menyampaikan ide-ide ini, bukan mengandalkan satu pilihan desain, seperti ikon itu sendiri, untuk menceritakan seluruh cerita.

Memberikan pengalaman offline secara default

Jika aplikasi Anda tidak memerlukan banyak data, cache data tersebut secara default. Pengguna dapat semakin frustrasi jika mereka hanya dapat mengakses data dengan koneksi jaringan.

Cobalah untuk membuat pengalaman sestabil mungkin. Koneksi yang tidak stabil membuat aplikasi Anda terasa tidak tepercaya. Aplikasi yang mengurangi dampak kegagalan jaringan akan menyenangkan penggunanya.

Situs berita dapat memanfaatkan fitur download otomatis dan simpan otomatis berita terbaru, mungkin menyimpan data dengan hanya mendownload teks, sehingga pengguna dapat membaca berita hari ini tanpa koneksi. Anda dapat menyesuaikan perilaku ini dengan perilaku pengguna dengan memprioritaskan download kategori berita yang paling sering dilihat pengguna.

Tailpiece
    menggunakan berbagai widget desain untuk memberi tahu pengguna bahwa mereka sedang offline.
Jika perangkat offline, Tailpiece akan memberi tahu pengguna dengan pesan status…
Tailpiece memiliki
    indikator visual yang menunjukkan bagian mana yang siap digunakan secara offline.
…memberi tahu mereka bahwa mereka setidaknya masih dapat menggunakan aplikasi.

Memberi tahu pengguna saat aplikasi siap digunakan secara offline

Saat pertama kali dimuat, aplikasi web harus menunjukkan kepada pengguna apakah aplikasi tersebut siap untuk penggunaan offline. Lakukan ini dengan widget yang memberikan masukan singkat tentang operasi melalui pesan di bagian bawah layar, misalnya, saat bagian telah disinkronkan atau file telah didownload.

Pastikan bahasa yang Anda gunakan sesuai dengan audiens, dan gunakan frasa yang sama dalam semua kasus yang berlaku. Audiens non-teknis sering kali salah memahami kata "offline". Jadi, gunakan bahasa berbasis tindakan yang dapat dipahami audiens Anda.

Aplikasi I/O sedang offline.
Aplikasi Google I/O 2016 memberi tahu pengguna saat aplikasi siap digunakan secara offline…
Situs Status Chrome sedang offline.
…begitu juga situs Status Platform Chrome, yang menyertakan informasi tentang penyimpanan yang digunakan.

Membuat 'simpan untuk offline' terlihat jelas di antarmuka

Jika aplikasi menggunakan banyak data, pastikan ada tombol atau pin untuk menambahkan item untuk penggunaan offline. Download file secara otomatis hanya jika pengguna secara khusus meminta perilaku ini melalui menu setelan. Pastikan UI pin atau download jelas bagi pengguna dan tidak disembunyikan oleh elemen UI lainnya.

Salah satu contohnya adalah pemutar musik yang memerlukan file berukuran besar. Pengguna mengetahui biaya data yang terkait, tetapi mungkin juga ingin menggunakan pemutar secara offline. Untuk mendownload musik guna digunakan nanti, pengguna harus merencanakannya terlebih dahulu. Jadi, sebaiknya Anda mengedukasi pengguna tentang hal ini selama orientasi.

Mengklarifikasi apa yang tersedia secara offline

Jelaskan dengan jelas opsi yang Anda sediakan. Anda mungkin perlu menampilkan tab atau setelan untuk "library offline" atau indeks konten agar pengguna dapat melihat apa yang telah mereka simpan di perangkat dan apa yang perlu disimpan. Pastikan setelan ringkas, dan jelas tentang tempat data disimpan dan siapa yang memiliki akses ke data tersebut.

Menampilkan biaya sebenarnya dari suatu tindakan

Banyak pengguna menyamakan kemampuan offline dengan 'mendownload'. Pengguna di negara tempat koneksi jaringan sering gagal atau tidak tersedia sering kali membagikan konten kepada pengguna lain, atau menyimpan konten untuk penggunaan offline saat mereka memiliki konektivitas.

Pengguna yang menggunakan paket data terkadang menghindari mendownload file besar karena takut akan biaya, jadi Anda mungkin juga ingin menampilkan biaya terkait sehingga pengguna dapat melakukan perbandingan aktif untuk file atau tugas tertentu. Misalnya, aplikasi musik yang disebutkan di atas dapat mendeteksi apakah pengguna menggunakan paket data dan menampilkan ukuran file sehingga pengguna dapat melihat biaya file.

Membantu mencegah pengalaman yang diretas

Pengguna sering kali meretas pengalaman tanpa menyadari bahwa mereka melakukannya. Misalnya, sebelum aplikasi web berbagi file berbasis cloud ada, pengguna biasanya menyimpan file besar dan melampirkan file tersebut ke email agar mereka dapat terus mengedit file tersebut dari perangkat lain. UI yang baik memecahkan masalah yang coba diselesaikan pengguna tanpa menarik mereka ke dalam pengalaman yang diretas. Misalnya, berikan cara untuk berbagi file besar di seluruh perangkat, bukan membuat lampiran file besar ke email lebih mudah digunakan.

Membuat pengalaman dapat ditransfer dari satu perangkat ke perangkat lainnya

Saat mem-build untuk jaringan yang tidak stabil, coba sinkronkan segera setelah koneksi membaik sehingga pengalaman dapat ditransfer. Misalnya, bayangkan aplikasi perjalanan kehilangan koneksi jaringan di tengah pemesanan. Saat koneksi dibuat ulang, aplikasi akan disinkronkan dengan akun pengguna, sehingga mereka dapat melanjutkan pemesanan di perangkat desktop dan membuat pengalaman terasa lancar.

Beri tahu pengguna status data mereka. Misalnya, Anda dapat menampilkan apakah aplikasi telah disinkronkan. Beri mereka edukasi jika memungkinkan, tetapi jangan sampai mereka kewalahan dengan terlalu banyak pesan.

Membuat pengalaman desain yang inklusif

Saat mendesain UX, usahakan untuk bersifat inklusif dengan menyediakan perangkat desain yang bermakna, bahasa yang sederhana, ikonografi standar, dan gambar yang bermakna yang memandu pengguna untuk menyelesaikan tindakan atau tugas tanpa mengganggu.

Menggunakan bahasa yang sederhana dan jelas

UX yang baik bukan hanya tentang mendesain antarmuka. Hal ini mencakup jalur yang diambil pengguna melalui aplikasi Anda, dan semua hal yang mereka temui di sepanjang jalan, termasuk bahasa yang digunakan aplikasi untuk mendeskripsikan perjalanan tersebut. Saat menjelaskan komponen UI atau status aplikasi, hindari jargon teknologi. Kata "offline" sering kali tidak cukup jelas untuk memberi tahu pengguna apa yang dilakukan aplikasi Anda.

Larangan
Ikon pekerja layanan adalah contoh yang buruk.
Hindari istilah yang mungkin tidak diketahui pengguna non-teknis.
Anjuran
Ikon download adalah contoh yang bagus.
Gunakan bahasa dan gambar yang mendeskripsikan apa yang sebenarnya dilakukan pengguna.

Menggunakan beberapa perangkat desain untuk menciptakan pengalaman pengguna yang mudah diakses

Gunakan komponen bahasa, warna, dan visual untuk menampilkan status atau perubahan status. Hanya menggunakan warna untuk menampilkan status dapat sulit dikenali oleh pengguna, atau bahkan tidak dapat diakses sama sekali oleh pengguna dengan gangguan penglihatan. Selain itu, karena desain web cenderung menggunakan abu-abu untuk elemen yang dinonaktifkan, menggunakan UI berwarna abu-abu untuk menunjukkan bahwa aplikasi Anda sedang offline dapat menyebabkan kebingungan tentang apa yang dapat dilakukan aplikasi Anda saat offline, terutama jika Anda hanya menggunakan warna untuk menampilkan status.

Untuk mencegah kesalahpahaman, tunjukkan status aplikasi kepada pengguna dengan beberapa cara, misalnya dengan warna, label, dan komponen UI.

Anjuran
Contoh
      yang baik yang menggunakan warna dan teks untuk menampilkan error.
Gunakan campuran elemen desain untuk menyampaikan makna.
Larangan
Contoh buruk
      hanya menggunakan warna.
Hanya menggunakan warna dapat membingungkan atau menyesatkan.

Menggunakan ikon yang menyampaikan makna

Pastikan untuk menggunakan label teks yang bermakna bersama ikon Anda. Ikon saja dapat membingungkan, terutama karena konsep 'offline' di web relatif baru. Kasus lain ikon yang membingungkan mencakup penggunaan floppy disk untuk mewakili 'simpan', yang mungkin tidak berarti bagi pengguna yang lebih muda yang belum pernah melihat floppy disk, serta ikon menu 'tiga garis'.

Saat memperkenalkan ikon offline, tetap konsisten dengan visual standar industri jika ada, dan berikan label dan deskripsi teks. Misalnya, Anda dapat menggunakan ikon download untuk menyimpan untuk offline, ikon sinkronisasi untuk tindakan yang melibatkan sinkronisasi. Berhati-hatilah saat menggunakan ikon untuk menunjukkan status yang mungkin diinterpretasikan sebagai tindakan simpan atau download.

Berbagai contoh ikon yang menyampaikan offline
Beberapa ikon yang dapat berarti 'offline'.

Untuk inspirasi lainnya, lihat set ikon Desain Material.

Menggunakan tata letak kerangka dan mekanisme masukan lainnya

Saat aplikasi memuat konten, tunjukkan kepada pengguna bahwa konten sedang dimuat sehingga mereka tidak mengira aplikasi rusak. Salah satu cara untuk melakukannya adalah menggunakan tata letak kerangka, versi wireframe aplikasi Anda yang ditampilkan saat konten dimuat. Pertimbangkan juga menggunakan UI pramuat dengan label teks yang memberi tahu pengguna bahwa aplikasi sedang dimuat, atau animasi yang berdenyut lembut untuk wireframe agar terasa seperti aktif dan sedang dimuat. Hal ini meyakinkan pengguna bahwa ada sesuatu yang terjadi dan membantu mencegah pengiriman ulang atau refresh yang tidak perlu.

Contoh tata letak kerangka.
Tata letak placeholder kerangka ditampilkan selama download artikel…
Contoh artikel yang dimuat.
…yang akan diganti dengan konten sebenarnya setelah download selesai.

Menampilkan status tindakan dengan memberikan masukan. Misalnya, jika pengguna mengedit dokumen secara offline, pertimbangkan untuk mengubah desain masukan sehingga terlihat berbeda saat pengguna online, tetapi tetap menunjukkan bahwa file mereka "disimpan" dan akan disinkronkan saat mereka memiliki koneksi jaringan. Hal ini akan mengedukasi pengguna tentang cara kerja aplikasi Anda dan meyakinkan mereka bahwa tugas atau tindakan mereka telah disimpan, yang dapat membuat mereka lebih percaya diri dalam menggunakan aplikasi Anda.

Jangan blokir konten

Di beberapa aplikasi, pengguna mungkin memicu tindakan seperti membuat dokumen baru. Beberapa aplikasi mencoba terhubung ke server untuk menyinkronkan dokumen baru, dan untuk menunjukkan hal ini, aplikasi menampilkan dialog modal pemuatan yang mengganggu yang mencakup seluruh layar. Hal ini mungkin berfungsi jika pengguna memiliki koneksi jaringan yang stabil, tetapi jika jaringan tidak stabil, mereka tidak akan dapat keluar dari tindakan ini, sehingga UI akan memblokir mereka agar tidak melakukan hal lain.

Hindari permintaan jaringan yang memblokir konten. Izinkan pengguna untuk terus menjelajahi aplikasi Anda dan mengantrekan tugas yang akan dilakukan dan disinkronkan saat koneksi telah membaik.

Mendesain untuk miliaran pengguna berikutnya

Di banyak wilayah, perangkat kelas bawah adalah hal biasa, konektivitas tidak dapat diandalkan, dan bagi banyak pengguna, data sangat mahal. Dapatkan kepercayaan pengguna dengan bersikap transparan dan hemat dengan data. Pikirkan cara untuk membantu pengguna dengan koneksi yang buruk dan menyederhanakan antarmuka untuk membantu mempercepat tugas. Selalu coba tanyakan pengguna sebelum mendownload konten yang berisi banyak data.

Menawarkan opsi bandwidth rendah untuk pengguna dengan koneksi yang lambat. Berikan aset yang lebih kecil pada koneksi jaringan yang lebih lambat, atau tawarkan opsi untuk memilih aset berkualitas tinggi atau rendah.

Kesimpulan

Edukasi adalah kunci UX offline karena pengguna tidak terbiasa dengan UX offline. Untuk membantu mereka belajar, coba buat asosiasi dengan konsep yang sudah dikenal, seperti menjelaskan bahwa mendownload untuk digunakan nanti sama dengan menonaktifkan data.

Saat mendesain untuk koneksi jaringan yang tidak stabil, ingat panduan berikut:

  • Buat desain untuk keberhasilan, kegagalan, dan ketidakstabilan koneksi jaringan.
  • Data dapat mahal, jadi pertimbangkan pengguna.
  • Bagi sebagian besar pengguna secara global, lingkungan teknologi hampir sepenuhnya seluler.
  • Perangkat kelas bawah adalah hal biasa, dengan penyimpanan, memori, dan daya pemrosesan yang terbatas, layar kecil, dan kualitas layar sentuh yang lebih rendah. Pastikan performa merupakan bagian dari proses desain Anda.
  • Izinkan pengguna menjelajahi aplikasi Anda saat mereka offline.
  • Beri tahu pengguna tentang status mereka saat ini dan perubahan status.
  • Coba berikan offline secara default jika aplikasi Anda tidak memerlukan banyak data.
  • Jika aplikasi memiliki banyak data, beri tahu pengguna cara mendownload untuk penggunaan offline.
  • Buat pengalaman yang dapat ditransfer antar-perangkat.
  • Gunakan bahasa, ikon, gambar, tipografi, dan warna secara bersamaan untuk mengekspresikan ide kepada pengguna.
  • Berikan jaminan dan masukan untuk membantu pengguna.