Salah satu alasan kenapa sebagai full-stacker, saya lebih suka backend daripada frontend adalah ini: screen variation.
Waktu awal melakukan bootstrapping TimerA di bulan Ramadan kemarin, saya pikir tampilannya sudah cukup aman. Setidaknya, saat saya jalankan di PC dengan monitor Full HD, semuanya terlihat baik-baik saja. Toh, laptop baru atau monitor zaman sekarang mestinya sudah support Full HD juga, kan? Bahkan TV rumah saya yang "enggak smart" pun sudah Full HD, padahal belinya empat tahun lalu.
Pikir saya begitu...
Maka saya publish-lah early version-nya.
"Kan di monitor Full HD saya aman?"
Pikir saya begitu...
Namun di hari mau mudik, iseng saya coba akses TimerA di TV rumah. Berbekal Android STB bawaan ISP, saya install web browser di STB dan coba akses TimerA.
"Harusnya aman lah, kan TV saya juga sudah Full HD."
Dan...
Jeng-jeng!
Berantakan...!
Usut punya usut, ternyata STB Android saya memakai DPR (Device Pixel Ratio) yang berbeda dari monitor PC saya. Resolusi Full HD yang saya jadikan patokan, di browser Android TV bisa berubah drastis—gara-gara si DPR ini.
Duh, makhluk apa pula ini, DPR?
Ternyata Device Pixel Ratio itu tentang bagaimana piksel tampilan (yang kita desain) direpresentasikan oleh piksel fisik di layar.
Bayangkan Anda menggambar kotak 1x1 di kertas. Nah, di dunia digital, enggak semua "kertas" itu sama.
Di layar dengan DPR 1, kotaknya benaran 1 piksel (1x1).
Tapi di DPR 2, satu kotak butuh 4 piksel fisik (2x2).
Di DPR 3, bisa 9 piksel fisik (3x3)!
Secara teori, makin tinggi DPR, makin tajam tampilannya, seperti yang sering kita lihat di gadget-gadget mahal dengan label "Retina Display". Tapi kalau scaling-nya enggak sesuai, UI bisa kelihatan terlalu besar atau bahkan kacau skalanya—seperti yang kejadian di STB Android saya ini. Padahal sama-sama Full HD.
Ya sudah, pasrah saja waktu itu. Saya yang mau mudik, jelas enggak sempat oprek bug tampilan ini. Maka saya pun memberi catatan, "Akan diperbaiki setelah Lebaran, ya," tulis saya di pengumuman release pertama.
Baru di long weekend barusan saya sempat hands-on lagi, menambal bug tampilan satu per satu di TimerA.
Dan ini pun masih tampilan untuk resolusi browser di STB Android saya.
Belum dites di resolusi merek, device, dan screen lainnya.
Di layar 2K, 4K, apalagi—monitor saya masih terlalu cupu.
(Ada yang mau kasih saya monitor 4K? 😅)
Ini baru soal screen resolution variation.
Belum lagi kompatibilitas lintas-browser (Chrome vs Firefox vs Safari vs Opera vs Edge).
Belum lagi antar-versi browser-nya.
Itulah kenapa, meski pasang title full-stack, jika boleh memilih, saya lebih suka jadi backender saja.
Setidaknya enggak pusing soal DPR yang ini, apalagi DPR yang satunya... #eh.
Malang, 21 April 2025
#100HariNulis #100harimenulis