Kenapa artikel ini saya beri judul “Melompat (kembali)”. Kembali artinya saya pernah melompat sebelumnya? bukan?
Ya kurang lebih begitu, sebetulnya saya lebih banyak berkutat dengan teknologi web. Jadi bisa dibilang latar belakang saya adalah web developer bukan native app developer. Jelas, mana ada native app developer yang memilih react native? ada, tapi mungkin mereka lebih suka dengan native.
Jadi begini, saya memang selama ini lebih sering menggunakan React.js (untuk web) bukan framework lainnya. Tentu ketika saya belajar React, besar harapan saya bahwa suatu saat saya akan membuat aplikasi mobile dengan React Native.
Saya kira semua orang yang belajar React paling tidak “tergiur” dengan janji “Learn once, write anywhere”. Tidak ada yang salah dengan janji tersebut, hanya saja bagi web developer, halangan untuk melompat ke react native tidak semulus slogan di atas.
Banyak yang harus disetup, mulai dari RAM yang cukup karena harus menginstall android studio, mendownloadnya pun perlu kuota yang tidak sedikit. Ditambah lagi dengan mendownload SDK-SDK dan tools android yang diperlukan. Ini baru menargetkan android belum menargetkan IOS. Akan lebih banyak lagi yang perlu dipersiapkan.
Hal tersebut yang menyebabkan saya beberapa kali “melompat” lalu kembali lagi (belum menekuni react native).
Tapi tunggu dulu, bukankah sekarang tahun 2018? sudah banyak “framework” yang dibangun di atas React Native yang menyediakan kemudahan-kemudahan untuk developer dengan React Native tanpa perlu menginstall android studio dan segala macamnya? Misalnya Expo. Atau cukup buat dengan create-react-native-app, atau dengan React Native Web.
Yup, saya juga awalnya mencoba Expo dan sangat tertarik dengan banyaknya komponen yang tersedia. Tapi berhenti karena memang belum juga ada projek baik serius maupun “iseng” yang bisa saya kerjakan.
Lalu saya juga mencoba mempelajari create-react-native-app dan juga react native web. Apa kesamaannya dengan Expo? sama-sama mempermudah. Tapi lalu saya berpikir, apakah ada “efek samping”? dari kemudahan-kemudahan yang ditawarkan? Saya terus memikirkan hal ini.
Sampai pada suatu hari di mana saya “mau tidak mau” harus mengerjakan projeck sederhana untuk teman-teman saya yang mengelola kantin kejujuran di kantor mereka.
Requirementnya sederhana, paling inti adalah kemampuan untuk melakukan scanning QR Code untuk melakukan order. Dan ada beberapa library yang bisa kita pakai. Nah umumnya library ini memerlukan camera atau react-native-camera. Package tersebut membutuhkan link ke native module. Dan tahu apa artinya itu? Ternyata itu artinya tidak bisa digunakan dengan Expo atau CRNA (create-react-native-app) maupun react-native-web. Sebetulnya bisa, tapi memerlukan “ejecting” dan konfigurasi lagi, saya khawatir konfigurasi ini akan memakan waktu lama. Sehingga akhirnya saya memutuskan untuk “melompat kembali” dan kini tanpa Expo dan semacamnya. Langsung menggunakan react-native-cli dan menginstall android studio beserta “tetetmbengeknya” nya.
Apa yang saya pelajari di 2 hari pertama? Ikuti artikel berikutnya ya 🙂