nowinandroid
A fully functional Android app built entirely with Kotlin and Jetpack Compose
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.
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.
Where it fits
- Study how to structure a multi-module Kotlin and Jetpack Compose Android app following Google's official architecture guidance.
- Copy the Hilt dependency injection setup and interface-based test-double pattern to make your own Android tests less brittle.
- Learn how Roborazzi screenshot tests work by running the existing tests and seeing how UI changes are caught before shipping.
- Use the modularization strategy as a template when organizing a large Android project into feature, data, and UI modules.