android / nowinandroid
git clone https://github.com/android/nowinandroid.git
0.1.1 · 3y ago
🔥 on GitHub Trending today
Reference Android app built entirely in Kotlin and Jetpack Compose that delivers Now in Android news and content updates.
Why you might care
Useful as a reference for Android design and development best practices, with documented architecture and modularization learning journeys. Study its Compose UI, layering, and multi-module structure when building your own app.
+7
stars, 24h · #4,861
+~14
stars, 7 days · #10,724
+~60
stars, 30 days · #11,358
22k
★ total · +0% this week
4.7k
forks · 281 open issues
Star history (as recorded here)
LanguageKotlin
LicenseApache-2.0
Created2022-04-19 (4y ago)
Last pushtoday
Watchers436
OwnerOrganization
Seen on GitHub Trending
- 2026-10-23 — #6 daily in kotlin · +5 ★
GitHub topics
Links
README excerpt
Now in Android App ================== **Learn how this app was designed and built in the design case study, architecture learning journey and modularization learning journey.** This is the repository for the Now in Android app. It is a **work in progress** 🚧. **Now in Android** is a fully functional Android app built entirely with Kotlin and Jetpack Compose. It follows Android design and development best practices and is intended to be a useful reference for developers. As a running app, it's intended to help developers keep up-to-date with the world of Android development by providing regular news updates. The app is currently in development. The `prodRelease` variant is available on the Play Store. # Features **Now in Android** displays content from the Now in Android series. Users can browse for links to recent videos, articles and other content. Users can also follow topics they are interested in, and be notified when new content is published which matches interests they are following. ## Screenshots # Development Environment **Now in Android** uses the Gradle build system and can be imported directly into Android Studio (make sure you are using the latest stable version available here). Change the run configuration to `app`. The `demoDebug` and `demoRelease` build variants can be built and run (the `prod` variants use a backend server which is not currently publicly available). Once you're up and running, you can refer to the learning journeys below to get a better understanding of which libraries and tools are being used, the reasoning behind the approaches to UI, testing, architecture and more, and how all of these different pieces of the project fit together to create a complete app. # Architecture The **Now in Android** app follows the official architecture guidance and is described in detail in the architecture learning journey. # Modularization The **Now in Android** app has been fully modularized and you can find the detailed guidance and description of the modularization strategy used in modularization learning journey. # Build The app contains the usual `debug` and `release` build variants. In addition, the `benchmark` variant of `app` is used to test startup performance and generate a baseline profile (see below for more information). `app-nia-catalog` is a standalone app that displays the list of components that are stylized for **Now in Android**. The app also uses product flavors to control where content for the app should be loaded from. The `demo` flavor uses static local data to allow immediate building and exploring of the UI. The `prod` flavor makes real network calls to a backend server, providing up-to-date content. At this time, there is not a public backend available. For normal development use the `demoDebug` variant. For UI performance testing use the `demoRelease` variant. # Testing To facilitate testing of components, **Now in Android** uses dependency injection with Hilt. Most data layer components are defined
Blurb generated by claude-haiku-5-5 today. Star deltas marked ~ are extrapolated from partial history.