Skip to content

CHRehan/CleanArchitectureSample

Repository files navigation

Android Clean Code

This project is meant to demonstrate the Android MVVM Clean architecture in android with the help of all the latest components available.

Clean architecture is a method of software development in which you should be able to identify what a program performs merely by looking at its source code. The programming language, hardware, and software libraries needed to achieve the program’s goal should be rendered obsolete. Like other software design philosophies, Clean architecture aims to provide a cost-effective process for developing quality code that performs better, is easier to alter, and has fewer dependencies. Robert C. Martin established clean architecture and promoted it on his blog, Uncle Bob, in 2011.

Features

The project has 2 different screens.

  • All Countries List with flag provided by REST COUNTRIES
  • Country Detail with flag

Architecture

Built with MVVM clean code.

Dependency Injection

Hilt used for DI

Usecases

Countries use case

UI

Built with Jetpack Compose.

Language

Written using Kotlin and formatting with Ktlint

Language

Code Formatting with Ktlint

Testing

  • Unit Testing

    • Yes
  • UI Testing

    • N/A (Will do this as I get some free time)

Important Note

  • New Splash Screen 12 API is added
  • Jetpack compose navigation added

Night Mode Support

  • Yes

Offline Support

  • Yes

CI/CD

  • CI

    • With Github actions
  • CD

    • N/A (Will do this with Firebase App Distribution)