// the find
JakeWharton/u2020
A sample Android app which showcases advanced usage of Dagger among other open source libraries.
A sample Android app from Jake Wharton (2014-era, last touched 2023) demonstrating advanced Dagger patterns: build-variant-based dependency graph overrides, a debug drawer for runtime toggles, and a mock in-memory server for testing. It's for Android developers who want to see DI-driven debug tooling done well, not a starter template for a real app.
The debug/release module split via Dagger overrides is the actual teaching point — DebugU2020Module swaps in mock services without touching production code paths, which is a clean pattern most tutorials skip. The mock server (ServerDatabase plus per-service mocks) gives you a working offline mode and a stable dataset for instrumentation tests for free. The debug drawer is a genuinely useful reusable idea: network delay/failure sliders, endpoint switching, and Scalpel/LeakCanary hooks all wired through the same injection graph.
This is Dagger 1 (square.github.io/dagger), not Dagger 2 — the API and codegen model look nothing like what any current Android project uses, so the DI patterns don't transfer directly. Every library in the stack is dead or in maintenance-only mode: ButterKnife, Picasso-era RxJava 1.x idioms, and Gradle tooling from a decade ago; it won't build against a modern AGP/Gradle without real work. The README's own To Do list ('network errors probably crash the app') is still true — there's no error-handling story to learn from, and there are no tests beyond a single adapter test.