Skip to content

Android News App Demonstrating MVVM, Retrofit and other Latest android technologies

Notifications You must be signed in to change notification settings

RedVrma/News-Android-App

Repository files navigation

News App is a simple news app which uses NewsAPI to fetch top news headlines from the API.

The codebase focuses 👓 on following key things:

  • Code structuring, style and comments
  • Dependency injection 🗡
  • Offline first ✈️
  • Kotlin + Coroutines
  • And tests 🛠
  • Emojis (ofcourse) 😛

The idea is to keep the app super simple while demonstrating new libraries and tools which makes it easier to build high quality Android applications.

Development Setup 🖥

You will require latest version of Android Studio 3.0 (or newer) to be able to build the app

API key 🔑

You'll need to provide API key to fetch the news from the News Service (API). Currently the news is fetched from NewsAPI

  • Generate an API key (It's only 2 steps!) from NewsAPI
  • Create new file named -> credentials.properties in our project root folder
  • Add the API key as shown below [Make sure to keep the double quotes]:
    NEWS_API_KEY = "<INSERT_YOUR_API_KEY>"
  • Build the app
  • Enjoyyyyy 🎉

Libraries and tools 🛠

News App uses libraries and tools used to build Modern Android application, mainly part of Android Jetpack 🚀

Architecture

The app uses MVVM [Model-View-ViewModel] architecture to have a unidirectional flow of data, separation of concern, testability, and a lot more.

Read more:

Architecture

Dependency Graph 🔪

The following diagram shows the dependency graph of the app.

News App Dependency Graph

Generated by Daggraph


Learn Architecture Components

Trying to learn the new Architecture Components. I have wrote a series of articles to understand Android Architecture Components. Feel free to check it out to learn more.

Extra - Caster.io Course and Podcast

About

Android News App Demonstrating MVVM, Retrofit and other Latest android technologies

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages