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
6 lessons and 1 labs across 7 modules. Open a module to see its lessons.
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 →