{"@context":"https://ihatereading.in/roadmap/schema/v1","type":"roadmap-chapter","roadmap":{"slug":"vibe-coding-mobile-app-development","title":"Vibe Coding Mobile App Roadmap (Expo, Tailwind & AI Agents)","url":"https://ihatereading.in/roadmap/vibe-coding-mobile-app-development","machineUrl":"https://ihatereading.in/roadmap/vibe-coding-mobile-app-development.json"},"slug":"debugging-and-code-review","title":"Debugging & Reviewing AI-Generated Code","url":"https://ihatereading.in/roadmap/vibe-coding-mobile-app-development/debugging-and-code-review","machineUrl":"https://ihatereading.in/roadmap/vibe-coding-mobile-app-development/debugging-and-code-review.json","summary":{"breadcrumb":"Vibe Coding Mobile App Roadmap (Expo, Tailwind & AI Agents) → Debugging & Reviewing AI-Generated Code","purpose":"Debug Expo apps with the right tools, read AI diffs critically, use Sentry for production crashes and run a repeatable review checklist.","prerequisites":["Testing Mobile Apps (Jest, Testing Library, Maestro & AI QA)"],"afterThisChapter":["Build, Release & Over-the-Air Updates"]},"agentLens":null,"topics":[{"id":"read-the-error-first","slug":"read-the-error-first","title":"Read the error first","level":"advanced","category":null,"importance":null,"difficulty":"advanced","learn":["Red screens and logs usually name the file and cause."],"why":["Agents produce confident mistakes. A calm routine turns hours of thrashing into minutes."],"prerequisites":[],"nextTopics":[],"relatedTopics":[],"usedIn":[],"understand":{"summary":"Red screens and logs usually name the file and cause. Paste the exact error to the agent, not your paraphrase.","example":null,"mentalModel":"Debugging is detective work with a rule: change one thing at a time, or you destroy the evidence.","howItWorks":null,"underTheHood":null,"misconceptions":[]},"questions":{"learning":["What is Read the error first and when do you use it in a mobile app?"],"practice":["Introduce a deliberate bug, then find it with the debugging routine and a git bisect, and add Sentry to report an intentional test error."],"interview":["How do you debug an app that crashes only on a physical device?"],"advanced":[],"debugging":[],"comparison":[]},"projects":{"beginner":"Introduce a deliberate bug, then find it with the debugging routine and a git bisect, and add Sentry to report an intentional test error.","intermediate":null,"advanced":null},"commonMistakes":[],"bestPractices":[],"debug":null,"compare":[],"resources":{"official":["https://reactnative.dev/docs/debugging"],"tutorials":[],"videos":[],"websites":[],"youtube":[],"ihateReading":["/blogs/making-ai-applications-without-any-ai-slop","/blogs/agent-harnessing-what-is-an-agent-harness"]},"agentLens":null,"skipIf":null,"build":null,"next":[],"prerequisite":[]},{"id":"react-native-devtools","slug":"react-native-devtools","title":"React Native DevTools","level":"advanced","category":null,"importance":null,"difficulty":"advanced","learn":["Inspect components, props, state and performance, and read console and network output while the app runs."],"why":["Agents produce confident mistakes. A calm routine turns hours of thrashing into minutes."],"prerequisites":[],"nextTopics":[],"relatedTopics":[],"usedIn":[],"understand":{"summary":"Inspect components, props, state and performance, and read console and network output while the app runs.","example":null,"mentalModel":"Debugging is detective work with a rule: change one thing at a time, or you destroy the evidence.","howItWorks":null,"underTheHood":null,"misconceptions":[]},"questions":{"learning":["What is React Native DevTools and when do you use it in a mobile app?"],"practice":["Introduce a deliberate bug, then find it with the debugging routine and a git bisect, and add Sentry to report an intentional test error."],"interview":["How do you debug an app that crashes only on a physical device?"],"advanced":[],"debugging":[],"comparison":[]},"projects":{"beginner":"Introduce a deliberate bug, then find it with the debugging routine and a git bisect, and add Sentry to report an intentional test error.","intermediate":null,"advanced":null},"commonMistakes":[],"bestPractices":[],"debug":null,"compare":[],"resources":{"official":["https://reactnative.dev/docs/debugging"],"tutorials":[],"videos":[],"websites":[],"youtube":[],"ihateReading":["/blogs/making-ai-applications-without-any-ai-slop","/blogs/agent-harnessing-what-is-an-agent-harness"]},"agentLens":null,"skipIf":null,"build":null,"next":[],"prerequisite":[]},{"id":"clear-caches-and-reinstall","slug":"clear-caches-and-reinstall","title":"Clear caches and reinstall","level":"advanced","category":null,"importance":null,"difficulty":"advanced","learn":["Many 'impossible' bugs are stale caches: restart with `npx expo start -c`, reinstall `node_modules`, or rebuild the development build after native changes."],"why":["Agents produce confident mistakes. A calm routine turns hours of thrashing into minutes."],"prerequisites":[],"nextTopics":[],"relatedTopics":[],"usedIn":[],"understand":{"summary":"Many 'impossible' bugs are stale caches: restart with `npx expo start -c`, reinstall `node_modules`, or rebuild the development build after native changes.","example":null,"mentalModel":"Debugging is detective work with a rule: change one thing at a time, or you destroy the evidence.","howItWorks":null,"underTheHood":null,"misconceptions":[]},"questions":{"learning":["What is Clear caches and reinstall and when do you use it in a mobile app?"],"practice":["Introduce a deliberate bug, then find it with the debugging routine and a git bisect, and add Sentry to report an intentional test error."],"interview":["How do you debug an app that crashes only on a physical device?"],"advanced":[],"debugging":[],"comparison":[]},"projects":{"beginner":"Introduce a deliberate bug, then find it with the debugging routine and a git bisect, and add Sentry to report an intentional test error.","intermediate":null,"advanced":null},"commonMistakes":[],"bestPractices":[],"debug":null,"compare":[],"resources":{"official":["https://docs.expo.dev/"],"tutorials":[],"videos":[],"websites":[],"youtube":[],"ihateReading":["/blogs/making-ai-applications-without-any-ai-slop","/blogs/agent-harnessing-what-is-an-agent-harness"]},"agentLens":null,"skipIf":null,"build":null,"next":[],"prerequisite":[]},{"id":"bisect-with-git","slug":"bisect-with-git","title":"Bisect with git","level":"advanced","category":null,"importance":null,"difficulty":"advanced","learn":["When something broke recently, use `git bisect` or checkout earlier commits to find the change."],"why":["Agents produce confident mistakes. A calm routine turns hours of thrashing into minutes."],"prerequisites":[],"nextTopics":[],"relatedTopics":[],"usedIn":[],"understand":{"summary":"When something broke recently, use `git bisect` or checkout earlier commits to find the change. Frequent small commits make this fast.","example":null,"mentalModel":"Debugging is detective work with a rule: change one thing at a time, or you destroy the evidence.","howItWorks":null,"underTheHood":null,"misconceptions":[]},"questions":{"learning":["What is Bisect with git and when do you use it in a mobile app?"],"practice":["Introduce a deliberate bug, then find it with the debugging routine and a git bisect, and add Sentry to report an intentional test error."],"interview":["How do you debug an app that crashes only on a physical device?"],"advanced":[],"debugging":[],"comparison":[]},"projects":{"beginner":"Introduce a deliberate bug, then find it with the debugging routine and a git bisect, and add Sentry to report an intentional test error.","intermediate":null,"advanced":null},"commonMistakes":[],"bestPractices":[],"debug":null,"compare":[],"resources":{"official":["https://git-scm.com/docs/git-bisect"],"tutorials":[],"videos":[],"websites":[],"youtube":[],"ihateReading":["/blogs/making-ai-applications-without-any-ai-slop","/blogs/agent-harnessing-what-is-an-agent-harness"]},"agentLens":null,"skipIf":null,"build":null,"next":[],"prerequisite":[]},{"id":"sentry-for-production","slug":"sentry-for-production","title":"Sentry for production","level":"advanced","category":null,"importance":null,"difficulty":"advanced","learn":["Crash and error reporting shows what real users hit, with stack traces and device context."],"why":["Agents produce confident mistakes. A calm routine turns hours of thrashing into minutes."],"prerequisites":[],"nextTopics":[],"relatedTopics":[],"usedIn":[],"understand":{"summary":"Crash and error reporting shows what real users hit, with stack traces and device context.","example":null,"mentalModel":"Debugging is detective work with a rule: change one thing at a time, or you destroy the evidence.","howItWorks":null,"underTheHood":null,"misconceptions":[]},"questions":{"learning":["What is Sentry for production and when do you use it in a mobile app?"],"practice":["Introduce a deliberate bug, then find it with the debugging routine and a git bisect, and add Sentry to report an intentional test error."],"interview":["How do you debug an app that crashes only on a physical device?"],"advanced":[],"debugging":[],"comparison":[]},"projects":{"beginner":"Introduce a deliberate bug, then find it with the debugging routine and a git bisect, and add Sentry to report an intentional test error.","intermediate":null,"advanced":null},"commonMistakes":[],"bestPractices":[],"debug":null,"compare":[],"resources":{"official":["https://docs.sentry.io/platforms/react-native/"],"tutorials":[],"videos":[],"websites":[],"youtube":[],"ihateReading":["/blogs/making-ai-applications-without-any-ai-slop","/blogs/agent-harnessing-what-is-an-agent-harness"]},"agentLens":null,"skipIf":null,"build":null,"next":[],"prerequisite":[]},{"id":"reviewing-ai-diffs","slug":"reviewing-ai-diffs","title":"Reviewing AI diffs","level":"advanced","category":null,"importance":null,"difficulty":"advanced","learn":["Check for invented APIs, deleted code, silent try/catch, unused dependencies, hard-coded values and changes outside the task scope."],"why":["Agents produce confident mistakes. A calm routine turns hours of thrashing into minutes."],"prerequisites":[],"nextTopics":[],"relatedTopics":[],"usedIn":[],"understand":{"summary":"Check for invented APIs, deleted code, silent try/catch, unused dependencies, hard-coded values and changes outside the task scope.","example":null,"mentalModel":"Debugging is detective work with a rule: change one thing at a time, or you destroy the evidence.","howItWorks":null,"underTheHood":null,"misconceptions":[]},"questions":{"learning":["What is Reviewing AI diffs and when do you use it in a mobile app?"],"practice":["Introduce a deliberate bug, then find it with the debugging routine and a git bisect, and add Sentry to report an intentional test error."],"interview":["How do you debug an app that crashes only on a physical device?"],"advanced":[],"debugging":[],"comparison":[]},"projects":{"beginner":"Introduce a deliberate bug, then find it with the debugging routine and a git bisect, and add Sentry to report an intentional test error.","intermediate":null,"advanced":null},"commonMistakes":[],"bestPractices":[],"debug":null,"compare":[],"resources":{"official":["https://code.claude.com/docs"],"tutorials":[],"videos":[],"websites":[],"youtube":[],"ihateReading":["/blogs/making-ai-applications-without-any-ai-slop","/blogs/agent-harnessing-what-is-an-agent-harness"]},"agentLens":null,"skipIf":null,"build":null,"next":[],"prerequisite":[]}],"updatedAt":"2026-10-23T05:58:52.652Z"}