Skip to content

dev-lcc/TunedGlobalCodeExam

Repository files navigation

Tuned Global - Code Exam

Summary

  • Used clean-code architecture pattern following modern MVVM(Model-View-ViewModel)

  • Heavily inspired by Now-in-android, 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 cashapp/Turbine test framework.

    • Please see TrendingAlbumListViewModelTest.kt and AlbumDetailsViewModelTest.kt for unit test implementation.
    • (TODO: Provide unit test implementation on data layer and network layer for full coverage)

Navigation Graph

Navigation Graph

Trending Albums

Success

Trending Albums - Success

Empty

Trending Albums - Empty

Album Details

Success

Album Details - Success - Expanded Album Details - Success - Collapsed

Error

Album Details - Error

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages