Debugging & DevTools
React DevTools, Flipper, dan debugging mobile yang efektif
Tujuan Pembelajaran
- Mampu menggunakan React DevTools untuk inspect component tree di device
- Mengerti cara membaca Metro bundler logs dan error messages
- Mampu debugging dengan console.log, breakpoint, dan remote debugging
Analogi
Web DevTools (Chrome):
Elements → Inspect DOM
Console → console.log
Network → API requests
Performance → Profiling
Mobile Debugging:
Flipper → Inspector + Network + Logs
React DevTools → Component tree
Metro Terminal → Build errors + warnings
Device → Shake gesture → Dev Menu
Debugging mobile beda tools tapi sama esensinya — inspect, log, profile. Flipper adalah Chrome DevTools untuk mobile.
Penjelasan Konsep
Debugging di React Native lebih kompleks dari web karena kode jalan di device fisik. Tools utama: (1) Metro Bundler — terminal output, build errors, warnings. Baca log dengan teliti — Metro akan bilang error di file mana, baris berapa. (2) Flipper (fbflipper.com) — desktop app untuk debugging mobile. Plugin: React DevTools (component tree + props), Network (lihat request), Logs (console.log dari device), Layout Inspector (visualisasi layout). (3) Shake gesture di device → Dev Menu → Debug JS Remotely (browser-based), Toggle Inspector (tap element untuk lihat component).
Common bugs: (1) “Undefined is not an object” — biasanya null check missing atau import wrong. (2) “Text strings must be rendered within a <Text>” — teks di luar <Text> component. (3) Flexbox layout tidak sesuai — cek flexDirection default column. (4) Image tidak muncul — cek width/height, atau source. (5) Metro cache error — npx expo start --clear.
React DevTools standalone: npx react-devtools di terminal, lalu connect ke device via Dev Menu. Bisa inspect component tree seperti di browser — lihat props, state, render count.
Inti yang Perlu Dipahami
Bagian ini berfokus pada mampu menggunakan React DevTools untuk inspect component tree di device., mengerti cara membaca Metro bundler logs dan error messages., dan mampu debugging dengan console.log, breakpoint, dan remote debugging. Jangan terburu-buru menghafal istilahnya. Lebih penting untuk memahami peran setiap konsep dan kapan konsep itu muncul dalam pekerjaan web development.
Saat membaca Debugging & DevTools, gunakan tujuan belajar sebagai penanda arah. Kalau kamu sudah bisa menjelaskan tujuan itu dengan kata-katamu sendiri, berarti fondasinya mulai terbentuk.
Cara Membayangkannya
Debugging mobile beda tools tapi sama esensinya — inspect, log, profile. Flipper adalah Chrome DevTools untuk mobile. Analogi ini dipakai supaya konsep teknis tidak terasa melayang. Hubungkan setiap istilah dengan perannya: siapa yang meminta, siapa yang memproses, data apa yang berpindah, dan hasil apa yang diharapkan.
Kalau analoginya sudah terasa masuk akal, barulah lihat istilah teknisnya. Cara ini membuat materi lebih mudah dipahami daripada langsung menghafal definisi.
Konteks dalam Perjalanan Belajar
Setiap konsep di platform ini dipilih karena dipakai di industri. Fokus pada pemahaman, bukan hafalan.
Kamu sudah di bagian lanjutan. Mulai pikirkan bagaimana konsep ini dipakai di dunia kerja — bukan hanya untuk belajar, tapi untuk membangun produk nyata.
Gunakan pertanyaan reflektif dan prompt AI di akhir chapter sebagai latihan aktif. Membaca saja tidak cukup — kamu perlu menjelaskan ulang dengan kata-katamu sendiri.
Prompt AI
Simulasikan debugging session: saya punya error 'undefined is not an object' di aplikasi React Native. Minta AI untuk membantu debug dengan step-by-step analysis berdasarkan error message.
Pertanyaan Reflektif
Debug satu bug di aplikasi React Natifemu. Dokumentasikan prosesnya: error apa, tools apa yang dipakai, berapa lama resolve-nya. Bandingkan dengan debugging di web development.