This project consumes the TheMovieDB movie api and shows various categories of movies and when selecting a specific one, it shows a detail with more information about the movie.
Add your API keys in local.properties:
KEY_PROD=YOUR_KEY
KEY_QA=YOUR_KEY
That's it — dependencies are managed with the Gradle Version Catalog (gradle/libs.versions.toml), no git submodules required.
Architecture and libraries used in the project:
- Clean Architecture (data / domain / ui)
- MVVM with StateFlow + UiState
- Single Activity + Navigation Compose
- Kotlin
- Jetpack Compose (Material 3)
- Hilt (KSP)
- Coroutines
- Retrofit / OkHttp
- Coil
- Lottie Compose
- Mockito
Quality and tooling:
- Android Lint
- Detekt
- Ktlint
- Jacoco
- SonarQube (SonarCloud)
- Chucker
app: application module (data, domain and ui layers).uikit: Compose design system (theme, typography, colors and shared components).
Designed and developed by 2022 hacybeyker (Carlos Osorio)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.