Skip to content

Morteza-arifi/CleanMVVMNewsApp

Repository files navigation

Clean MVVM NewsApp

A sample code for Clean MVVM Architecture.

Description

A Simple News Android Application which has been implemented using Clean Architecture alongside MVVM design to Search worldwide news with code, displays top headline news, save favorite news, and search for desired news.

demo

Architecture and patterns

The Clean MVVM News App follows best practices and the architecture recommendations from Guide to app architecture, such as:

  • separation of concerns
    • UI (Presentation)
    • Domain
    • Data
  • Driving UI from data models
  • Unidirectional data flow
    • Events flow down
    • Data flows up
  • Managing dependencies between components using dependency injection (this project uses Hilt)
  • Repository pattern

Components used in this repository

  • Kotlin Coroutines
  • Kotlin Flow
  • Retrofit2
  • Room database
  • Hilt (dependency injection)
  • ViewModel
  • LiveData
  • Navigation Component
  • RecyclerView
  • Material Design
  • Glide
  • ...

The Rest Api

NewsApi - Search worldwide news with code