LEARN WITH A CLEAR DIRECTION
Build an Android Decision Lab with Jev, Kotlin and Compose: voice routing, notification triage, a Decision Inspector, and a path to CameraX and AppFunctions.
A project-based roadmap for adding a bounded decision layer to a native Android app. Build V1 with voice, notification triage and a Compose Decision Inspector; extend it with CameraX in V2 and AppFunctions in V3. Each module includes a teaching guide, a practical assignment and a checkpoint. The companion Android Decision Lab project is planned for the Android Engineers android-ai-cookbook repository and is not yet available; these guides provide build instructions and assignments. Start with labeled synthetic fixtures; connect live Jev through your backend when provider access is available.
Suggested pace: one module per session across two to three weeks. Allow 16–23 hours including implementation and review; provider setup and device debugging may take longer. Complete modules 1–5 for V1, use module 6 for V2/V3, and assess the result in module 7.
THE CURRICULUM
7 lessons across 7 modules. Open a module to explore its lessons and practical work.
Define a bounded decision problem and design the native Kotlin project.
Ready to move on when: Explain which decisions belong to Jev and which checks must remain deterministic.
Build a provider boundary with validated results, cancellation and explicit failure states.
Ready to move on when: Demonstrate a valid result, malformed response and timeout without executing an unintended action.
Turn a reviewed transcript into an allowlisted action with checked arguments.
Ready to move on when: Route a voice command and show the clarification path for missing arguments.
Start with synthetic notifications, then add optional access and minimal context.
Ready to move on when: Show that revoked access, private content and stale decisions cannot trigger speech.
Expose observed decisions and measure routing quality before changing thresholds.
Ready to move on when: Compare a rules baseline with Jev using labeled cases and measured end-to-end latency.
Add camera-derived context in V2, then capability-gated AppFunctions in V3.
Ready to move on when: Keep the V1 flow working when the camera or AppFunctions is unavailable.
Package the Decision Lab with reproducible evidence and a concise native Android demo.
Ready to move on when: Deliver a reproducible V1 demo, failure evidence and an honest V2/V3 backlog.
PROVE YOUR SKILLS
Use the final review rubric to identify gaps. Lesson completion tracks study progress; readiness comes from independently demonstrating the work.
Open the portfolio review rubric →