Bikin App Kita Makin Sat Set Pakai Optimistic Update Zustand

Bikin App Kita Makin Sat Set Pakai Optimistic Update Zustand
Photo by firman fatthul/Unsplash

Pernah nggak sih kita merasa aplikasi yang kita bangun sudah keren banget secara fitur tapi rasanya masih kurang greget pas dipake. Kadang ada jeda sedikit saja pas kita ngeklik tombol like atau pas lagi nambahin item ke keranjang belanja yang bikin pengalaman pengguna jadi agak kurang mulus. Jeda ini biasanya muncul karena aplikasi kita nungguin respon dari server dulu baru deh tampilan di layar berubah. Nah di sinilah kita butuh trik khusus supaya aplikasi kita kerasa sat set dan responsif maksimal. Salah satu cara paling asik buat ngatasin masalah ini adalah dengan pake teknik yang namanya optimistic update. Kalau kita pake Zustand sebagai alat buat ngatur state aplikasi kita proses ini bakal jadi jauh lebih gampang dan menyenangkan buat dikerjain.

Bayangkan kita lagi main media sosial terus kita pencet tombol suka pada sebuah postingan. Kalau aplikasi itu pake cara lama kita harus nunggu permintaan kita sampe ke server terus server ngolah data baru deh tombol sukanya berubah warna jadi merah. Jeda beberapa milidetik atau detik itu sebenernya cukup buat bikin pengguna ngerasa aplikasinya berat. Tapi kalau pake optimistic update ceritanya bakal beda banget. Begitu jempol kita ngetuk layar tombolnya langsung berubah warna seolah olah prosesnya sudah selesai padahal di balik layar aplikasinya baru mau ngirim data ke server. Teknik ini sebenernya adalah cara kita buat berprasangka baik kalau server bakal selalu berhasil memproses permintaan kita. Makanya namanya optimis karena kita langsung ngerubah tampilan tanpa nunggu kepastian dari server.

Kenapa kita harus milih Zustand buat urusan ini padahal banyak pilihan lain di luar sana. Alasan utamanya adalah karena Zustand itu simpel banget dan nggak bertele tele. Kita nggak perlu bikin banyak file atau nulis kode yang ribet cuma buat ngatur satu state sederhana. Zustand ngasih kita kebebasan buat bikin store yang ringan dan gampang diakses dari mana saja. Buat kita yang pengen fokus ke performa dan kecepatan ngoding Zustand adalah pasangan yang pas banget. Apalagi kalau digabungin sama konsep optimistic update tadi aplikasi kita bakal kerasa jauh lebih premium dan profesional di mata pengguna.

Langkah pertama yang perlu kita pahamin pas mau bikin optimistic update adalah gimana cara kerja state di dalam Zustand itu sendiri. Kita perlu punya satu tempat penyimpanan pusat yang bakal nampung semua data kita. Misalnya kita punya daftar tugas atau todo list. Pas pengguna nambahin tugas baru kita jangan langsung nunggu hasil dari database. Kita langsung saja masukin tugas baru itu ke dalam state lokal kita di Zustand. Dengan begitu daftar tugas di layar bakal langsung bertambah secara instan. Pengguna bakal ngerasa aplikasi kita cepet banget padahal sebenernya proses pengiriman data ke server masih berjalan di latar belakang.

Tapi ada satu hal penting yang harus kita perhatiin baik baik yaitu gimana kalau ternyata servernya lagi error atau internetnya tiba tiba putus. Ini adalah tantangan utama pas kita pake teknik optimis ini. Kita nggak boleh membiarkan data di layar salah kalau ternyata server gagal nyimpen data tersebut. Solusinya adalah dengan teknik rollback atau mengembalikan data ke kondisi semula. Jadi sebelum kita ngerubah state secara optimis kita harus simpan dulu salinan data yang lama. Kalau ternyata proses ke server tadi gagal kita tinggal balikin lagi state kita pake data lama yang sudah kita amankan tadi. Proses ini harus berjalan otomatis supaya pengguna nggak bingung kenapa datanya tiba tiba ilang atau berubah lagi.

Cara mengelola error ini adalah bagian yang bikin aplikasi kita beneran berkualitas. Kita bisa ngasih notifikasi kecil yang bilang kalau ada masalah pas nyimpen data terus kita balikin tampilannya ke posisi awal. Pengguna bakal lebih maklum kalau ada error daripada mereka harus ngelihat loading yang muter muter terus tanpa kepastian. Dengan Zustand kita bisa bikin logika ini dengan sangat bersih. Kita bisa buat fungsi yang nerima perubahan data terus langsung update state lokal baru setelah itu panggil API kita. Kalau blok kode yang panggil API tadi masuk ke bagian catch atau error kita tinggal panggil fungsi buat set balik datanya.

Selain bikin aplikasi kerasa lebih cepet teknik ini juga ngebantu kita ngurangin beban pikiran pengguna. Secara psikologis manusia lebih seneng sama respon yang instan. Respon yang instan ngasih kesan kalau aplikasi kita itu handal dan bertenaga. Kita nggak mau kan pengguna kita pindah ke aplikasi sebelah cuma gara gara aplikasi kita kerasa lemot padahal fiturnya sebenernya lebih lengkap. Makanya investasi waktu buat belajar cara implementasi optimistic update pake Zustand ini worth it banget buat karier kita sebagai developer.

Kita juga perlu ngobrolin soal gimana caranya supaya kode kita tetep rapi pas pake teknik ini. Jangan sampe karena pengen sat set kode kita jadi berantakan dan susah dibaca temen satu tim. Tips asik buat kita adalah dengan misahin logika antara pengubahan state lokal sama logika panggil API. Kita bisa bikin fungsi pembantu di dalam store Zustand kita yang tugasnya khusus buat nanganin pembaruan yang optimis ini. Jadi pas kita butuh fitur serupa di halaman lain kita tinggal panggil saja fungsinya tanpa harus nulis ulang logikanya dari nol.

Keuntungan lain pake Zustand adalah ukurannya yang kecil banget jadi nggak bakal nambah beban berat buat aplikasi kita pas diakses lewat browser. Ini penting banget buat aspek SEO dan performa secara keseluruhan. Google suka banget sama website yang ringan dan cepet dapet skor tinggi di core web vitals. Dengan bikin interaksi yang instan lewat optimistic update kita secara nggak langsung juga ngebantu ningkatkan pengalaman pengguna yang jadi salah satu faktor penilaian penting buat ranking website kita. Jadi sambil bikin aplikasi yang enak dipake kita juga dapet bonus nilai plus di mata mesin pencari.

Jangan lupa buat selalu ngetes berbagai skenario pas lagi asik ngoding. Coba kita simulasiin koneksi internet yang lambat lewat fitur throttling di browser. Lihat gimana aplikasi kita bereaksi pas kita kirim data. Apakah tampilannya beneran langsung berubah. Terus coba matiin koneksi internetnya dan lihat apakah fungsi rollback kita jalan dengan bener atau malah bikin aplikasi jadi kacau. Testing ini penting banget supaya kita makin yakin kalau kode yang kita buat itu solid dan siap tempur di lingkungan produksi.

Satu hal lagi yang bikin Zustand asik buat dipake bareng optimistic update adalah kemudahannya buat diintegrasikan sama pustaka pengambil data kayak React Query atau SWR. Walaupun Zustand sebenernya bisa berdiri sendiri tapi kalau digabungin sama tool lain fungsinya bisa makin sakti. Kita bisa pake Zustand buat pegang state yang sifatnya global banget dan pake alat lain buat urusan caching data dari server. Kombinasi ini bakal bikin arsitektur aplikasi kita jadi sangat kuat dan mudah buat dikembangkan ke depannya.

Sebagai pengembang aplikasi kita harus selalu inget kalau teknologi itu ada buat bantuin manusia. Jadi setiap baris kode yang kita tulis harus punya tujuan buat bikin hidup pengguna lebih gampang. Teknik optimistic update ini adalah salah satu perwujudan dari niat baik kita itu. Kita pengen ngasih yang terbaik buat mereka dengan cara ngilangin hambatan berupa waktu tunggu yang sebenernya bisa kita akalin. Dengan pake Zustand semua itu jadi terasa lebih masuk akal dan nggak bikin kepala pusing karena kerumitan kode yang berlebihan.

Buat kita yang baru mau mulai jangan takut buat coba coba. Mulai dari fitur yang simpel dulu misalnya kayak fitur ganti status tugas dari belum selesai jadi selesai. Coba terapin pola pikir optimis ini dan lihat bedanya. Kita bakal ngerasa ada kepuasan tersendiri pas ngelihat aplikasi yang kita bikin kerasa sangat responsif dan elegan. Rasanya kayak kita sudah naik kelas dari sekadar bikin aplikasi yang jalan jadi bikin aplikasi yang beneran asik buat dipake.

Kesimpulannya bikin aplikasi yang sat set itu bukan cuma soal server yang kenceng atau database yang canggih tapi juga soal gimana kita pinter pinter ngatur aliran data di bagian depan atau frontend. Zustand ngasih kita senjata yang ampuh buat ngelakuin itu semua dengan cara yang sangat manusiawi bagi developer. Jadi yuk mulai sekarang kita biasain pake pendekatan optimistic update ini di proyek proyek kita selanjutnya. Selain bikin user seneng teknik ini juga bakal bikin kita makin jago dalam ngatur state management yang kompleks tapi tetep efisien. Selamat bereksperimen dan semoga aplikasi kita makin asik buat semua orang yang make. Kita semua pasti bisa bikin sesuatu yang luar biasa kalau kita terus belajar dan berani nyoba hal hal baru yang bisa ningkatkan kualitas karya kita. Semangat terus buat kita semua para pejuang kode yang pengen selalu ngasih pengalaman terbaik lewat setiap aplikasi yang kita bangun dengan sepenuh hati. Terus eksplorasi potensi yang ada di dalam Zustand dan jangan ragu buat terus berbagi ilmu sama temen temen developer lainnya supaya ekosistem kita makin berkembang dan makin banyak aplikasi lokal yang punya kualitas kelas dunia. Dengan begitu kita nggak cuma sekadar ngoding tapi juga berkontribusi buat kemajuan teknologi yang makin hari makin cepet perkembangannya ini. Mari kita jadikan setiap tantangan sebagai kesempatan buat jadi lebih baik lagi. Aplikasi yang sat set adalah idaman semua orang dan kita punya kuncinya sekarang di tangan kita masing masing lewat Zustand dan teknik update yang cerdas ini. Jadi tunggu apalagi yuk langsung kita eksekusi ide ide keren kita sekarang juga.