-
Used clean-code architecture pattern following modern MVVM(Model-View-ViewModel)
-
Heavily inspired by
, Google's official android app sample featuring modern architecture and best practices.
-
Setup with multiple modules
:app- The main module where Android App screens, application, fragments, resources, and all other modules were integrated.
- Ideally, screens could be segregated into multiple sub-modules(i.e. feature modules
:feature:trending,:feature:album-details, etc.)
:core:model- Consists of datamodels used across multiple modules in the project.
:core:data- Contains business logic codes that bridges multiple datasources(i,e. local and remote) and acts as the mediator of each source.
:core:network- Consist of codes dealing with remote datasources such as REST API(ex. using Retrofit)
:core:domain- Contains UseCase implementations and may contain additional domain models(i.e. Result classes, etc.) which may be used to address more-specific business use-cases.
:core:common- Contains utility classes and/or functions that can be used in any modules.
-
Dependency Injection using Koin 2.0 (https://insert-koin.io/)
-
App Project was constructed following Single Activity App pattern.
- Using 1 Activity to host NavigationView which manages the entire Navigation Graph.
-
Unit Test implementation targeting each *ViewModel classes using
test framework.
- Please see
TrendingAlbumListViewModelTest.ktandAlbumDetailsViewModelTest.ktfor unit test implementation. - (TODO: Provide unit test implementation on data layer and network layer for full coverage)
- Please see
-
Notifications
You must be signed in to change notification settings - Fork 0
dev-lcc/TunedGlobalCodeExam
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
About
No description, website, or topics provided.
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published





