Bikin Dark Theme untuk File Manager Android: Cerita di Balik Dracula for MiXplorer
Kalau kamu pengguna Android lama, MiXplorer mungkin bukan nama asing — file manager yang dikenal powerful tapi tampilan default-nya jauh dari kata modern. Salah satu proyek yang saya maintain adalah Dracula for MiXplorer : port tema dark Dracula ke aplikasi ini, bagian dari keluarga besar Dracula Theme yang sudah tersedia di ratusan aplikasi lain — dari VS Code, Sublime Text, sampai terminal emulator.
Tulisan ini bukan sekadar “cara install tema”, tapi cerita teknis di baliknya: kenapa theming aplikasi Android itu nggak sesimpel ganti warna, dan apa yang saya pelajari dari jadi maintainer di proyek open source yang skalanya lebih besar dari repo itu sendiri.
Dracula Bukan Cuma Satu Repo — Ini Ekosistem
Dracula Theme dimulai tahun 2013 oleh Zeno Rocha, awalnya cuma color scheme untuk terminal dan code editor pribadinya. Filosofinya sederhana: satu skema warna yang konsisten di semua tools yang dipakai sehari-hari, supaya nggak ada context switching visual tiap pindah aplikasi. Dari situ proyek ini berkembang jadi organisasi GitHub tersendiri, dengan setiap aplikasi punya repo port-nya sendiri — termasuk dracula/mixplorer yang saya kerjakan.
Struktur ini penting dipahami karena ini bukan model “satu developer, satu proyek” biasa. Setiap port punya maintainer sendiri — untuk MiXplorer, itu peran yang saya pegang, dibantu komunitas kontributor yang melaporkan bug dan kadang ikut submit perbaikan. Tapi semua port tetap terikat pada satu identitas visual dan filosofi desain yang sama — palet warna dasarnya (background gelap keunguan, aksen purple/pink/cyan/green) harus konsisten dengan port Dracula di aplikasi lain. Jadi kerjaan saya bukan cuma “bikin tema gelap sesuka hati”, tapi “terjemahkan bahasa visual yang sudah punya standar ke platform yang constraint-nya beda total”.
Kenapa Theming MiXplorer Itu Nggak Sesederhana Ganti Hex Code
Di aplikasi modern berbasis Material Design, theming biasanya cuma soal define beberapa warna primer/secondary dan sistem yang sudah handle sisanya secara otomatis. MiXplorer nggak seperti itu — aplikasi ini punya sejarah panjang dan arsitektur UI yang lebih manual, jadi setiap tema didistribusikan sebagai file .mit: sebuah paket yang isinya kombinasi definisi warna, aset icon, dan konfigurasi UI spesifik yang harus di-maintain terpisah dari kode utama aplikasinya.
Beberapa tantangan nyata yang pernah saya tangani sendiri, tercatat di changelog proyek ini, menggambarkan kenapa ini pekerjaan yang lebih rumit dari kelihatannya:
Icon bukan cuma soal warna, tapi juga ukuran dan konsistensi visual. Salah satu perbaikan yang pernah saya lakukan adalah button icon yang oversized — bug yang muncul karena aset icon custom nggak otomatis menyesuaikan diri dengan sistem sizing bawaan aplikasi. Ini beda dengan CSS di web yang biasa punya rem atau sistem scaling konsisten; di sini setiap icon perlu dicek manual di berbagai ukuran layar.
Warna yang terlihat bagus secara palet belum tentu readable di context tertentu. Salah satu bug yang pernah saya perbaiki adalah warna seleksi item di code editor bawaan MiXplorer yang sulit dibaca — meskipun warna itu sendiri konsisten dengan palet Dracula secara keseluruhan, kontrasnya terhadap teks di area spesifik itu ternyata bermasalah. Ini pengingat bahwa theming yang baik nggak bisa dites cuma dengan lihat satu screenshot; saya harus telusuri ke tiap komponen UI aplikasi satu per satu.
Kompatibilitas berubah seiring update aplikasi utama. Beberapa fitur seperti shuffle icon di menu sort baru relevan di versi MiXplorer 6.60 ke atas, dan warna tertentu (text_grid_tertiary) baru bisa saya pakai mulai versi 6.65+. Artinya proyek tema seperti ini nggak statis — saya harus terus menyesuaikan setiap kali aplikasi utamanya update, walau saya sendiri nggak punya kontrol atas roadmap aplikasi tersebut sama sekali.
Integrasi dengan layanan eksternal juga bisa berubah tanpa peringatan. Icon untuk opsi “Add storage” pernah harus saya hapus untuk beberapa provider (Hubic Drive, Amazon Cloud Drive) karena berpotensi nggak tampil benar di versi MiXplorer terbaru. Ini jenis maintenance burden yang jarang kepikiran orang saat pertama kali mikir “bikin tema” — ternyata saya juga harus mengikuti perubahan di ekosistem yang sama sekali di luar kendali saya.
Apa yang Saya Pelajari dari Proyek Sekecil Ini
Dari luar, “tema dark untuk file manager” kedengarannya proyek kecil — dan secara scope kode memang benar begitu. Tapi justru dari situ saya belajar beberapa hal yang nggak saya dapat dari kerja teknisi sehari-hari:
Maintenance itu pekerjaan yang jauh lebih berat dari development awal. Bikin versi pertama tema itu kerjaan sekali jalan. Yang bikin proyek ini hidup justru siklus perbaikan kecil yang terus-menerus — bug report dari pengguna, penyesuaian ke versi aplikasi baru, permintaan fitur kecil seperti tambahan icon media sosial di bookmark. Ini pola yang sama persis dengan apa yang saya temui di kerjaan servis HP: instalasi awal gampang, yang susah itu menjaga sistem tetap sehat dalam jangka panjang.
Kontribusi ke ekosistem lebih besar mengajarkan disiplin yang nggak dapat dari proyek solo. Karena Dracula punya identitas visual yang harus konsisten lintas ratusan aplikasi, saya nggak bisa asal ganti warna sesuai selera pribadi — ada standar yang harus dihormati. Ini melatih cara berpikir “saya bagian dari sistem yang lebih besar”, bukan cuma “ini proyek saya, saya bebas ubah apa saja”.
Dokumentasi issue dan changelog itu aset, bukan formalitas. Setiap entri di changelog proyek ini — sekecil apapun, seperti perbaikan icon FTP di curtain menu — sebenarnya cerita tentang satu masalah nyata yang pernah dialami pengguna. Kebiasaan mencatat ini yang bikin proyek open source tetap bisa di-maintain lintas kontributor, karena orang baru yang join bisa paham konteks tanpa harus tanya satu-satu ke orang lama.
Kalau Kamu Tertarik Ikut Kontribusi
Proyek ini open source dengan lisensi MIT, dan sebagai maintainer, saya bisa bilang kontribusi yang paling dibutuhkan biasanya bukan fitur besar — tapi laporan bug spesifik (screenshot komponen yang warnanya aneh), atau bantuan penyesuaian kecil setiap kali MiXplorer merilis versi baru. Kalau kamu penasaran gimana rasanya kontribusi ke proyek tema yang dipakai ribuan orang, repo-nya ada di github.com/dracula/mixplorer
— instalasinya sendiri tinggal download file .mit sesuai varian warna yang diinginkan, lalu import langsung dari aplikasi MiXplorer.
Ini bagian dari seri saya menulis tentang sisi teknis dari hal-hal yang saya kerjakan — kombinasi antara latar belakang teknisi hardware dan minat di coding/open source. Kalau ada bagian spesifik yang mau saya perdalam, misalnya proses build file .mit atau workflow kolaborasi di organisasi Dracula, kabari saja.