https://github.com/raxden/mmdb
Mobile movie database is a simple app to search movies and tv shows. It uses The Movie Database API to get the data. Currently in development.
https://github.com/raxden/mmdb
android clean-architecture compose coroutines hilt junit kotlin modularization mvvm retrofit2 room
Last synced: 15 days ago
JSON representation
Mobile movie database is a simple app to search movies and tv shows. It uses The Movie Database API to get the data. Currently in development.
- Host: GitHub
- URL: https://github.com/raxden/mmdb
- Owner: raxden
- Created: 2021-04-08T07:46:41.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2024-10-16T19:18:22.000Z (over 1 year ago)
- Last Synced: 2024-10-18T18:14:54.406Z (over 1 year ago)
- Topics: android, clean-architecture, compose, coroutines, hilt, junit, kotlin, modularization, mvvm, retrofit2, room
- Language: Kotlin
- Homepage:
- Size: 9.46 MB
- Stars: 6
- Watchers: 3
- Forks: 0
- Open Issues: 11
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
Mobile movie database
==========
[](https://codecov.io/gh/raxden/mmdb)
Mobile movie database is a simple app to search movies and tv shows. It uses [The Movie Database API](https://developers.themoviedb.org/3/getting-started/introduction) to get the data. Currently in development.
## How to build on your environment
Add your [The Movie DB](https://www.themoviedb.org)'s API key in your `./config/secrets.properties` file.
```xml
TMDB_TOKEN_V3=YOUR_API_KEY
TMDB_TOKEN_V4=YOUR_API_KEY
```
## Roadmap
- [x] Home
- [x] Medias by category
- [x] Dark mode
- [x] Media detail (WIP)
- [ ] Player
- [x] Search (WIP)
- [ ] Account
## Guidelines
- https://github.com/android/nowinandroid
- https://developer.android.com/topic/architecture/ui-layer
- https://developer.android.com/topic/architecture/ui-layer/events#consuming-trigger-updates
- https://medium.com/androiddevelopers/viewmodel-one-off-event-antipatterns-16a1da869b95
## Goals
The goal of this project is to do practice on the new technologies, patterns and styles. Some functionalities are still not implemented or not completed.
- [x] MVVM
- [x] Kotlin
- [x] Room
- [x] Migration
- [ ] Type converters
- [x] Coroutines
- [x] Flow
- [x] StateFlow
- [x] SharedFlow
- [x] Hilt
- [x] Compose
- [x] Navigation
- [x] NavHost
- [x] LaunchedEffect
- [x] DisposableEffect
- [x] Junit
- [x] Mockk
- [x] Turbine
- [x] Google Truth
- [ ] Robolectric
- [ ] Parameterized tests
- [x] Instrumentation tests
- [x] Espresso
- [x] Using Hilt to inject dependencies into tests
- [x] Create largeTest using RestMock and Room in memory.
- [x] MockWebServer
- [x] CI
- [x] Github actions
- [x] Composite actions
- [x] Coverage
- [x] Codecov integration
- [ ] Sonarqube integration
- [x] Detekt integration
- [ ] Snapshot testing
- [x] Firebase app distribution
- [ ] Google Play integration
- [x] Architecture
- [x] Modularization by features
- [ ] Dynamic features
- [ ] Kotlin Multiplatform
- [ ] Create catalog app module
- [x] Dependencies
- [x] Use gradle kotlin dsl
- [x] Use gradle plugin portal
- [x] Version catalog (.toml)
- [x] Use composite build - https://stackoverflow.com/questions/60464719/gradle-includebuild-vs-implementation-project