explaingit

android/nowinandroid

Analysis updated 2026-06-21

21,151KotlinAudience · developerComplexity · 3/5Setup · moderate

TLDR

A fully working Android app from Google's Android team that demonstrates, in real production-quality code, how to build a modern Android app using Kotlin, Jetpack Compose, Hilt, and a multi-module architecture.

Mindmap

mindmap
  root((nowinandroid))
    What it does
      Sample Android app
      Architecture showcase
      Learning artifact
    Tech Stack
      Kotlin
      Jetpack Compose
      Hilt Roborazzi
    Use Cases
      Study modularization
      Learn Compose arch
      Copy test patterns
    Audience
      Android developers
      Mobile learners
    Testing
      Unit tests
      Screenshot tests
      Benchmark variant
Click or tap to explore — scroll the page freely

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 build with it?

USE CASE 1

Study how to structure a multi-module Kotlin and Jetpack Compose Android app following Google's official architecture guidance.

USE CASE 2

Copy the Hilt dependency injection setup and interface-based test-double pattern to make your own Android tests less brittle.

USE CASE 3

Learn how Roborazzi screenshot tests work by running the existing tests and seeing how UI changes are caught before shipping.

USE CASE 4

Use the modularization strategy as a template when organizing a large Android project into feature, data, and UI modules.

What is it built with?

KotlinJetpack ComposeHiltGradleRoborazzi

How does it compare?

android/nowinandroidgoogle/ioschedmatsuridayo/nekoboxforandroid
Stars21,15121,68820,555
LanguageKotlinKotlinKotlin
Setup difficultymoderatemoderateeasy
Complexity3/54/52/5
Audiencedeveloperdevelopergeneral

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

How do you get it running?

Difficulty · moderate Time to first run · 30min

The prod flavor requires a backend the public cannot access, use the demo flavor for local development with static data.

In plain English

Now in Android is a sample Android app published by the Android team to show developers, in working code, how a modern Android app should be built. It is a real, downloadable app on the Play Store whose job is to surface the latest content from the official Now in Android series, videos, articles, and updates about Android development, so users can browse recent posts and follow topics they care about and get notified when new content arrives. But for most readers the value is not the news feed itself, it is the codebase, which is treated as a learning artifact. The app is written entirely in Kotlin and uses Jetpack Compose to build the screens, following Google's official architecture guidance. The repository is organized using a modularization strategy that the team explains in companion documents called the Architecture Learning Journey and Modularization Learning Journey. Dependency injection is handled with Hilt, and the project deliberately avoids mocking libraries in tests. Instead, repositories and data sources are defined as interfaces, with simple test-double implementations that get swapped in during testing, which the README argues makes tests less brittle. There are unit tests, instrumented tests, and screenshot tests powered by a tool called Roborazzi that compare the rendered UI against known-good images. The Gradle build defines several variants: a demo flavor that loads static local data so the app runs offline out of the box, and a prod flavor that talks to a backend the public cannot reach, along with a separate benchmark variant used for measuring startup performance. Someone would clone this repo to study a current, idiomatic Android codebase rather than to use the app itself, for example, when learning Compose, comparing architecture patterns, or setting up modularization in their own project. The README notes the app is still a work in progress.

Copy-paste prompts

Prompt 1
I'm studying the Now in Android repo and I want to understand the modularization strategy. Walk me through what types of modules exist, how they depend on each other, and why the team chose this structure.
Prompt 2
The Now in Android project uses Hilt and avoids mocking libraries in tests. Show me the pattern they use to swap in test doubles at the data layer and how I can apply it in my own Android project.
Prompt 3
Using the Now in Android Gradle build as a reference, explain the difference between the demo and prod flavors and how the benchmark variant is set up to measure startup performance.
Prompt 4
Show me how Roborazzi screenshot tests work in the Now in Android project, how do I generate the baseline images and what happens when a UI change is detected?

Frequently asked questions

What is nowinandroid?

A fully working Android app from Google's Android team that demonstrates, in real production-quality code, how to build a modern Android app using Kotlin, Jetpack Compose, Hilt, and a multi-module architecture.

What language is nowinandroid written in?

Mainly Kotlin. The stack also includes Kotlin, Jetpack Compose, Hilt.

How hard is nowinandroid to set up?

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

Who is nowinandroid for?

Mainly developer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Scan in gitsafehub Deploy in gitdeployhub android on gitmyhub

Verify against the repo before relying on details.