This is a simple project, but it will be easy on scaling up
- The
domain
:- Only contains business models
- The
data
:- Provide data from repository:
- Can get from remote source by using retrofit and map raw data model to business model
- Or, get cached from local source if necessary
- Provide data from repository:
- The
usecase
:- Provide the interaction with
data
forapp
UI
- Provide the interaction with
- Main
app
:- Apply MVVM architecture
- Apply Dependency Injection by using Dagger
-
- Contains 4 modules:
domain
,usecase
,data
, and mainapp
app
contains:base
: define some base classes that will be extented in the applicationdi
: define dependency injection with application scopeextension
: define extensions will be used in the applicationpresentation
: separate application into many features will make it be easy on scaling uputilities
: contains some utilities source code
- Contains 4 modules:
- Libraries/frameworks using in the application:
- Kotlin
- Coroutines
- Retrofit
- Dagger
- Mockito
- Required configurations:
- AndroidSDK
- Gradle 6.5
- Launch:
- Windows
- gradlew installRelease
- MAC/Ubuntu
- ./gradlew installRelease
- Windows
- ✅ Programming language: Kotlin is required, Java is optional.
- ✅ Design app's architecture: Clean architecture with MVVM
- ✅ Apply LiveData mechanism
- ✅ Write Unit Tests
- ✅ Exception handling
- Readme file includes:
- ✅ Brief explanation for the software development principles, patterns & practices being applied
- ✅ Brief explanation for the code folder structure and the key Java/Kotlin libraries and frameworks being used
- ✅ All the required steps in order to get the application run on local computer
- ✅ Check list of items the candidate has done.