Module 6, Lesson 12: Testing Phase 3 on the Device

Module 6, Lesson 12: Testing Phase 3 on the Device

10 min read min

How do you test Phase 3 features on a real Android device with Claude Code? 
You connect the device, let Claude Code build and install a real build on it, then walk through the new features yourself instead of trusting the emulator. In this lesson, that catches a camera scan that works fine in the emulator but does nothing on the actual phone, and I fall back to a photo upload as a stopgap while a real fix waits for more device access. The full walkthrough is in The Product Path.

Why test Phase 3 on a real device instead of just the emulator?

Phase 3 added a PDF report, real-time messaging, and receipt OCR, and all of it passed in the emulator. A real device is a different test: real permissions prompts, a real camera, and real timing. In this lesson the camera-based receipt scan fails outright on the phone even though it worked in the emulator, and the fix has to wait, so I use a manual photo upload as a stopgap and confirm the rest of the expense flow still holds up.


Where We Are in the Course

Phase 3 closed out in the last lesson: the PDF expense report, WebSocket messaging, receipt OCR, and the groundwork for native in-app payment are all built and passed testing in the Android emulator. This lesson is the same discipline from Module 6, Lesson 9, applied again now that a new phase has landed: get it running on an actual phone and see what the emulator didn't show you.


Before We Start

From previous lessons:

  • Phase 3 is built and closed: PDF report, WebSocket messaging, OCR receipt scanning, and native in-app payment groundwork, all tested in the emulator. Module 6, Lesson 11
  • You know the pattern for testing on a real device: connect it, let Claude Code build for it, then walk the app yourself. Module 6, Lesson 9
  • You've been running your local Postgres instance through Docker Compose behind all of this. Module 6, Lesson 6

Tools / setup you'll need:

  • Claude Code, connected to your project
  • An Android device with USB debugging enabled, the same setup from Module 6, Lesson 9
  • Your local API and database running through Docker Compose

By the end of this lesson, you'll:

  • Have connected a real device and had Claude Code build and install a fresh build for it
  • Have caught a camera-based feature that works in the emulator but fails on-device
  • Have used a manual workaround to keep testing while the real fix waits
  • Have confirmed the rest of the expense flow, including the two-user split, still holds up after the new phase landed

About This Lesson

Duration: ~6 minutes video
Skill Level: Intermediate
What You'll Build: Nothing new. This lesson proves out what Phase 3 already built by running it on an actual phone instead of the emulator.

This one's short, and it doesn't go smoothly the whole way through. The receipt scanner works in the emulator and then does nothing on the real device. I don't have a fix ready in this video, so I work around it with a manual upload instead and keep testing everything else. That's the honest version of device testing: sometimes you find the bug and you don't get to fix it on camera, you just note it and keep moving.

Paid members

This content is for Paid Members

Unlock full access to Dele Tosh and see the entire library of members-only content.

Subscribe