Hal yang Bisa Dipelajari dari “Makan Apa”

Update: Pengembangan aplikasi ini dihentikan karena beberapa alasan.

Enam tahun sudah tinggal di asrama, hampir tiap kali selesai makan di math’am selalu ditanya “Lauknya apa?” Hal tersebut lah yang melatarbelakangi saya untuk membuat aplikasi Makan Apa.

Di postingan kali ini saya bukan membahas tentang konten atau latar belakang pembuatan aplikasi, melainkan hal-hal apa saja yang dapat saya pelajari dari proses pengembangan aplikasi sederhana tersebut, seperti:

1. Me-manage state dan props

Setiap mobile app yang dibangun menggunakan React Native tersusun atas komponen-komponen yang bersatu padu, dan membentuk menjadi sesuatu yang dapat kita lihat dan kita sentuh di layar ponsel.

Tiap komponen memiliki state dan props-nya masing-masing. Tantangan yang muncul di sini adalah bagaimana mengirim value-nya dari sebuah komponen ke komponen yang lain.

2. Membangun UI dengan flexbox

Meskipun sebelumnya sudah cukup familier dengan bootstrap dan bulma, tapi membangun UI dari nol dengan menggunakan flexbox tetap saja terasa membingungkan. Untuk flex-direction saja, sampai sekarang saya masih meraba-raba karena belum sepenuhnya memahami.

3. JSX hanyalah “kosmetik” JavaScript

Pertama kali lihat return value dari fungsi render di React Native, saya menyangka bahwa itu adalah tag kustom HTML, padahal sama sekali bukan.

Saya baru ngeh akan hal ini ketika ingin mengimplementasikan for-loop di JSX, yang ternyata NGGAK BISA! 

Belakangan, saya baru tahu kalau untuk mengecek apa-apa yang dihasilkan dari JSX bisa dilakukan melalui Babel REPL.

4. Menggunakan Expo untuk memudahkan pengembangan

Node.js terkenal rakus akan RAM, terbatasnya RAM pada komputer yang hanya 8GB mengharuskan saya untuk menggunakan real device saat proses development.

Alhamdulillah, Expo memudahkan hal ini. Saya juga tidak perlu colok kabel untuk debugging. Cukup jalankan Expo di terminal, pindai QR Code yang muncul dengan ponsel, dan proses bundling JavaScript otomatis berjalan. Beberapa detik kemudian, perubahan apapun yang kita lakukan di code editor bisa langsung terlihat di ponsel kita.

5. Pre-require source gambar

Komponen <Image/> ternyata tidak dapat me-render gambar dari sumber dinamis seperti variabel. Konon katanya, hal tersebut disebabkan karena pada saat inisiasi komponen ini harus memastikan bahwa path yang menjadi sumber gambar yang akan ditampilkan itu benar-benar tersedia. Thanks @pirey for this explanation.

6. Banyak orang langsung fokus pada 2 hal utama

Yakni aspek visual dan kekurangan dari suatu produk.

7. Banyak orang belum terbiasa download aplikasi bajakan tidak resmi

Saat pertama kali mengirim link download *.apk ke salah seorang teman —yang mana teman saya ternyata membagikan link tadi ke grup WhatsApp miliknya, banyak orang-orang yang masih belum paham cara meng-install aplikasi android melalui file *.apk.

Barangkali yang ada dalam benak mereka adalah “Kalau install aplikasi android berarti harus lewat PlayStore.”

Well, good job, Google Play!

P.S: I swear, di awal saya nggak ada niatan buat dibagikan ke orang lain selain ke teman-teman penghuni asrama, apalagi ke orang tua/wali santri, karena saya pikir “apa faedahnya buat mereka?” gitu. Etapi ternyata mereka seneng, ya sudah.

8. Publish di Play Store

Karena alasan nomor 7 di atas, demi kenyamanan para (calon) pengguna, maka saya memutuskan untuk mem-publish aplikasi ini ke Play Store.

Kalau dilihat dari segi biaya sebetulnya cukup terjangkau, yakni $25 untuk sekali waktu. Bandingkan dengan App Store milik Apple yang mewajibkan developer untuk membayar “iuran” sebesar $99 tiap tahunnya.

9. Multiplatform itu (sepertinya) perlu

Esok hari setelah terpublikasikan di Play Store, ada salah seorang pengguna yang menanyakan apakah aplikasi ini dapat digunakan di perangkat iOS miliknya.

Secara teknis memang memungkinkan. Terlebih React Native memang memberikan keleluasaan kepada para developer untuk mem-build aplikasi yang dibuat ke dalam 2 (dua) platfrom populer, Android dan iOS.

Namum belum memungkinkan secara finansial Build aplikasi untuk iOS memerlukan komputer/laptop dengan sistem operasi MacOS pula. Dan lagi, saya tidak cukup yakin kalau aplikasi ini bakal lolos approval dari App Store, mengingat di Play Store saja kemarin sempat satu kali ter-reject.

10. Akan selalu ada penolakan dari pihak tertentu (UPDATE)

Yes, ada saja pihak yang menolak atau tidak suka dengan apa yang kita buat, terlepas dari apapun alasannya.

Itu dia beberapa hal yang bisa dipelajari. Berikutnya saya ada rencana untuk bikin aplikasi lain yang tujuan utamanya memudahkan orang tua/wali santri pesantren, dan membuat saya kaya raya. Semoga pengembangannya Allah mudahkan, serta tidak mengganggu skripsi yang sedang saya selesaikan. 

2 Comments

  1. Typo di skrisi harusnya skripsi

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

© 2019 Miftah Afina

Theme by Anders NorénUp ↑