Skip to content

Nanamare/MovieCompose

Repository files navigation

MovieComposeLaboratory(experimental)

GitHub license Open Source Love

About

The application is a simple movie searching app using Jetpack Compose. Purpose is to acquire enough knowledge that can be used in the company. Android Gradle plugin requires Java 11 to run. (Compose 100%)

ScreenShot

  • DarkTheme

  • LightTheme

Architecture

  • Base on Google Recommended Architecture (UI Layer - Domain Layer - Data Layer) similar to Clean Architecture
  • We tried to removed the Android dependency(LiveData, AAC viewModel etc...) from the ViewModel. To expand to kotlin-multi-platform(KMM) in the future.

interface ViewModel

  • Using Mvvm with repository pattern (Model-View-ViewModel)

https://github.com/rmoustafa/Kotlin-Coroutines-Clean-Architecture

🛠 Built With 🛠

  • Kotlin (Coroutine, Flow)
  • Jetpack
    • Compose
    • Navigation
    • ViewModel(AAC)
    • Paging3
    • Material
  • Dagger-Hilt
  • Retrofit
  • OkHttp
  • Kotlinx-serialization
  • Accompanist
    • SwipeRefresh
    • System-ui-controller
  • Coil
  • Room (RemoteMediator - Room paging)
  • Timber
  • UnitTest
    • JUnit
    • Kotlinx-coroutines-test
    • Truth(Google)
    • Mockito
    • OkHttp(MockWebServer)
    • Core-testing
  • AndroidTest(Instrumentation Test)
    • Expresso
    • Compose-ui-junit
    • Hilt-android-testing

Modularization

  • App (UI Layer) android dependencies
  • Data (Data Layer) network, datasource dependencies
  • Domain (Domain Layer) Pure kotlin, java
  • Base (Collection of utility functions used in UI Layer)
  • build-logic (Managing dependencies using toml)
  • Test-shared (Unit, Android test dependencies)

Modularization

Testing(Instrumentation, Unit)

Beginner in testing(Studying...) 🙏

Instrumentation Test

Unit Test

Open API

TODO

About

Laboratory about Jetpack Compose

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages