- Android Architectural Components
- Dagger 2 for Dependency Injection
- MVVM & LiveData
- Retrofit with Okhttp
- Repository Pattern
- Coroutine, Coroutine Flow
- DataBinding
- JUnit and Mockito for Unit Testing -
Pending ( In Future )
There are different branches as per the practices followed, namely:
master- Master Branch, Empty.mvvm_viewmodel_livedata_retrofit- MVVM Implementation with LiveDatamvvm_with_dagger_implementation- Dagger DI based implementationcoroutine_implementation- Kotlin Coroutine implementationcoroutine_flow_implementation- Kotlin Coroutine Flow Implementation
com.bale.demoapplication # Root Package
├── constants # Api and Application related constants
├── data # For data modeling layer
│ ├── model # Data classes
│ └── repository # Repository and dependent classes
|
├── dependencyinjection # Dependency injection modules
│ ├── builder # Activity and Fragment Builder Modules
│ ├── component # Application Component
│ └── module # Other Modules used for DI
| └── viewmodel # ViewModel Module and dependent classes
│
├── extension # Kotlin extensions
|
├── listeners # Listeners
|
├── ui # Fragment / View layer
│ ├── base # Base Classes for Activity and Fragment
│ ├── dealDetails # Detail screen Fragment and ViewModel
│ ├── dealList # List screen Fragment and ViewModel
│ ├── profile # Profile screen Fragment and ViewModel
│ └── MainActivity # Parent Activity
|
└── DealsApplication # Application Class
You can to contribute in this repository. Just make pull request.
I appreciate any question or comment.

