git404hub

what is u2020 fr?

jakewharton/u2020 — explained in plain English

Analysis updated 2026-06-26

5,640JavaAudience · developerComplexity · 3/5LicenseSetup · moderate

tl;dr

A sample Android app demonstrating dependency injection with Dagger and a debug drawer that lets developers switch servers, enable mock data mode, and inspect app behavior at runtime without rebuilding.

vibe map

mindmap
  root((repo))
    Core concept
      Dependency injection
      Dagger wiring
    Build variants
      Release build
      Debug build
    Debug drawer
      Server switching
      Mock mode
      Runtime inspection
    Libraries used
      Retrofit and OkHttp
      RxJava
      Picasso and Moshi

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

what do people make with this?

VIBE 1

Study how to wire up Dagger for dependency injection in an Android app with clear separation between debug and release builds.

VIBE 2

Implement a debug drawer in your own app so testers can switch API endpoints and toggle mock data without rebuilding.

VIBE 3

Use the Mock Mode pattern to make manual QA testing predictable by replacing network calls with in-memory fake data.

VIBE 4

Reference the library setup when choosing between Retrofit, OkHttp, Picasso, and Moshi for a new Android project.

what's the stack?

JavaAndroidDaggerRetrofitRxJavaOkHttpPicassoMoshi

how it stacks up fr

jakewharton/u2020hanks-zyh/htextviewwasabeef/blurry
Stars5,6405,6455,656
LanguageJavaJavaJava
Setup difficultymoderateeasyeasy
Complexity3/52/51/5
Audiencedeveloperdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

how do i run it?

Difficulty · moderate time til it works · 30min

Requires Android Studio and familiarity with Gradle build variants, some libraries are outdated compared to current Android standards.

Use freely for any purpose, including commercial, as long as you keep the copyright and license notice.

in plain english

U+2020 is a sample Android application created to demonstrate a particular approach to organizing and wiring together the different pieces of an app. It was built alongside a conference talk about Dagger, a tool that handles dependency injection in Android projects. Dependency injection is a pattern where components of an app receive the objects they need from an external source rather than creating those objects themselves. The app has two build variants: a release version and a debug version. The debug version adds a hidden panel called the Debug Drawer, opened by swiping from the right edge of the screen. From this drawer, developers can change settings like which server the app talks to, toggle fake data mode, and inspect how the app is behaving at runtime. One of the more useful debug features is a mode called Mock Mode. When active, the app stops making real network requests and instead responds with fake data stored in memory. This makes manual testing easier and gives automated tests a predictable, stable data set to work against. The project uses a collection of open-source libraries that were popular in the Android ecosystem at the time: Retrofit for network calls, Picasso for image loading, RxJava for managing asynchronous events, OkHttp as the HTTP client, Moshi for JSON parsing, and several others by the same author (ButterKnife, Timber, Scalpel, LeakCanary). The repo is intended as a reference and learning resource, not as a production-ready application template. It is licensed under the Apache 2.0 license.

prompts (copy fr)

prompt 1
I'm learning Dagger for Android from the u2020 project. Explain how the debug and release build variants use different Dagger modules to inject different dependencies.
prompt 2
I want to add a debug drawer to my Android app like the one in u2020. How do I implement the swipe-to-open gesture and wire it to runtime settings?
prompt 3
Show me how u2020's Mock Mode works. How does it intercept network calls and return fake in-memory data, and how do I replicate this pattern in my own app?
prompt 4
How does u2020 configure Retrofit and OkHttp together, and how does the Dagger setup switch between real and mock network layers?
prompt 5
What is the overall app architecture in u2020 and how does Dagger connect the Activity, networking, and data layers together?

Frequently asked questions

what is u2020 fr?

A sample Android app demonstrating dependency injection with Dagger and a debug drawer that lets developers switch servers, enable mock data mode, and inspect app behavior at runtime without rebuilding.

What language is u2020 written in?

Mainly Java. The stack also includes Java, Android, Dagger.

What license does u2020 use?

Use freely for any purpose, including commercial, as long as you keep the copyright and license notice.

How hard is u2020 to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is u2020 for?

Mainly developer.

peek the repo → explain another one

This repo across BitVibe Labs

double-check against the repo, no cap.