Skip to content

An Android app with many challenge modules and SOLID at all

License

Notifications You must be signed in to change notification settings

programadorthi/android-super-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

70 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

android-super-app

Actions Status Kotlin Coroutines

An Android app with many challenge modules and SOLID at all.

Features

Build system

The project is using two gradle includeBuild projects to manage dependencies and projects setup instead of buildSrc. From gradle docs:

A change in buildSrc causes the whole project to become out-of-date. Thus, when making small incremental changes, the --no-rebuild command-line option is often helpful to get faster feedback. Remember to run a full build regularly or at least when you’re done, though.

  • dependencies: As name says the project manage all dependencies definitions to set as implementation in other projects. Build plugin dependencies are here too.
  • configurations: It has plugins and configurations that must be applied to other projects. Apply build plugins, apply common plugins to any project type, setup JVM target and compatibilities and Android application or library default configs.

Project structures


  • shared-module: are modules that are base project to other feature concrete layers.
  • domain: are modules with abstraction and contracts to be implemented.
  • module-di: are modules that contains dependency injection setup only.
  • module-fake: are modules with fake implementations to be used in test modules.
  • module-impl: are modules with implementations to abstractions defined by domain.
  • module-test: are modules to do unit tests with JUnit or Robolectric.
  • module-test-android: are modules to do UI tests with Espresso.
  • ui: are modules with platform specific implementations. In our case Android code only.

Prerequisite

To build this project, you require:

  • Android Studio 4.1.3
  • Gradle 7.0

Credits