falconixdev/MoviesApp
46.8
Weak · 22 September 2026
19.9k
lines of production code
Kotlin
primary language
7
measurements over time
What this system is
This system is an Android-based media application designed to browse and watch movies and TV series. It provides a modern UI using Jetpack Compose and MVVM architecture to display rich content such as cast details, reviews, and video trailers. The backend integration handles data fetching and user authentication via Firebase, while the build system is modularized with Gradle version catalogs and updated dependencies.
Features
New movie and TV series data models and API endpoints
The app now includes comprehensive data models and API interfaces for fetching movie and TV series details, cast information, trailers, reviews, and search results. This enables the UI to display richer content such as cast lists, user reviews, and video trailers for both movies and TV shows.
app/src · high confidence
Project initialization with MIT license and updated build scripts
The repository was initialized with an MIT license and a README file describing the Movies App, which utilizes Jetpack Compose, MVVM, and various Android libraries. The project also includes updated Gradle wrapper scripts (gradlew and gradlew.bat) that have been modified to improve POSIX compliance and error handling, alongside a .gitignore update that adds gradle.properties to the ignore list.
(repo-wide) · high confidence
Behavioural changes
Updated Gradle wrapper to version 8.10.2
The Gradle wrapper has been upgraded from version 8.0 to 8.10.2, which includes updated distribution URLs and new configuration properties for network timeout and distribution validation.
gradle · high confidence
Updated ProGuard rules and added Google services configuration
The app's ProGuard configuration was significantly expanded to include rules for Gson, Retrofit, Kotlin coroutines, Firebase Authentication, Chaquopy, and PyTube, ensuring that critical classes and methods are preserved during code shrinking and obfuscation. Additionally, a new \google-services.json\ file was added to the app directory, containing the project and client configuration for Google services, which is required for Firebase and Google Sign-In functionality.
app · high confidence
Test coverage
Added default Android test and configuration scaffolding; Added initial unit and instrumented tests for core/data and feature modules.
Dependencies
Migrated to Gradle version catalogs and modernized build configuration
The project has been refactored to use Gradle version catalogs (libs.versions.toml) for managing dependencies, replacing direct version strings in build scripts. This change introduces a new modular architecture with separate modules for core, domain, and features (download, play). The app module's build configuration has been updated to target Android SDK 35, use Java 17/Kotlin 2.0.21, and integrate Hilt, Firebase, and other libraries via the new catalog. Additionally, JitPack and Firebase Crashlytics repositories and plugins have been added to the build.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Score
- CAI 47 → 47 (-0.0)
- Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.
Lenses
- Code Health 85 → 90 (+5.6)
- Architecture 98 → 91 (-7.4)
- Maturity 49 → 46 (-3.4)
- Readiness 24 → 26 (+1.4)
- Security 72 → 77 (+5.0)
- Domain Modelling 100 → 85 (-14.6)
Resolved (103)
- Change coupling: HomeApp.kt ↔ ProfileScreen.kt (app/src/main/java/com/application/moviesapp/ui/home/HomeApp.kt)
- Change coupling: MoviesApi.kt ↔ MoviesMappers.kt (app/src/main/java/com/application/moviesapp/data/api/MoviesApi.kt)
- Change coupling: MoviesMappers.kt ↔ MoviesRepository.kt (app/src/main/java/com/application/moviesapp/data/mappers/MoviesMappers.kt)
- Change coupling: MoviesMappers.kt ↔ UseCaseModule.kt (app/src/main/java/com/application/moviesapp/data/mappers/MoviesMappers.kt)
- Change coupling: RepositoryModule.kt ↔ UseCaseModule.kt (app/src/main/java/com/application/moviesapp/di/RepositoryModule.kt)
- Coverage not included — suite not readable by the collector
- Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
- Duplicated block (10 lines × 2) (app/src/main/java/com/application/moviesapp/domain/usecase/MovieGenresUseCase.kt)
- Duplicated block (10 lines × 2) (app/src/main/java/com/application/moviesapp/domain/usecase/MovieTrailerUseCase.kt)
- Duplicated block (10 lines × 2) (app/src/main/java/com/application/moviesapp/ui/detail/DetailScreen.kt)
- Duplicated block (10 lines × 2) (app/src/main/java/com/application/moviesapp/ui/detail/DetailScreen.kt)
- Duplicated block (10 lines × 2) (app/src/main/java/com/application/moviesapp/ui/editprofile/EditProfileScreen.kt)
- Duplicated block (10 lines × 2) (app/src/main/java/com/application/moviesapp/ui/editprofile/EditProfileScreen.kt)
- Duplicated block (10 lines × 2) (app/src/main/java/com/application/moviesapp/ui/editprofile/EditProfileScreen.kt)
- Duplicated block (10 lines × 2) (app/src/main/java/com/application/moviesapp/ui/home/HomeScreen.kt)
- Duplicated block (10 lines × 2) (app/src/main/java/com/application/moviesapp/ui/home/movienowplaying/NowPlayingMoviesApp.kt)
- Duplicated block (10 lines × 2) (app/src/main/java/com/application/moviesapp/ui/home/movienowplaying/NowPlayingMoviesScreen.kt)
- Duplicated block (10 lines × 2) (app/src/main/java/com/application/moviesapp/ui/onboarding/forgotpassword/ContactDetailsScreen.kt)
- Duplicated block (10 lines × 2) (app/src/main/java/com/application/moviesapp/ui/onboarding/login/LoginWithPasswordScreen.kt)
- Duplicated block (10 lines × 2) (app/src/main/java/com/application/moviesapp/ui/play/DetailPlayScreen.kt)
- …and 83 more
New (134)
- Change coupling: MoviesApi.kt ↔ DetailScreen.kt (app/src/main/java/com/application/moviesapp/data/api/MoviesApi.kt)
- Change coupling: UseCaseModule.kt ↔ ExploreViewModel.kt (app/src/main/java/com/application/moviesapp/di/UseCaseModule.kt)
- Dependency hygiene PARTLY measured — Maven/Gradle declarations read, no dependency graph resolved
- Documentation: no contributor guidance (README.md)
- Documentation: no installation or build instructions (README.md)
- Documentation: no usage examples (README.md)
- Duplicated block (10 lines × 10) (app/src/main/java/com/application/moviesapp/ui/detail/CastDetailScreen.kt)
- Duplicated block (10 lines × 2) (app/src/main/java/com/application/moviesapp/ui/detail/DetailScreen.kt)
- Duplicated block (10 lines × 2) (app/src/main/java/com/application/moviesapp/ui/editprofile/EditProfileScreen.kt)
- Duplicated block (10 lines × 2) (app/src/main/java/com/application/moviesapp/ui/home/HomeApp.kt)
- Duplicated block (10 lines × 2) (app/src/main/java/com/application/moviesapp/ui/home/movienowplaying/NowPlayingMoviesApp.kt)
- Duplicated block (10 lines × 2) (app/src/main/java/com/application/moviesapp/ui/play/PlayScreenApp.kt)
- Duplicated block (10 lines × 3) (app/src/main/java/com/application/moviesapp/ui/download/DownloadScreen.kt)
- Duplicated block (10 lines × 5) (app/src/main/java/com/application/moviesapp/ui/home/HomeApp.kt)
- Duplicated block (10–11 lines × 3) (app/src/main/java/com/application/moviesapp/ui/onboarding/signup/ChooseYourInterestScreen.kt)
- Duplicated block (10–11 lines × 6) (app/src/main/java/com/application/moviesapp/ui/detail/CastDetailScreen.kt)
- Duplicated block (11 lines × 2) (app/src/main/java/com/application/moviesapp/domain/usecase/CastDetailsUseCase.kt)
- Duplicated block (11 lines × 2) (app/src/main/java/com/application/moviesapp/ui/detail/DetailScreen.kt)
- Duplicated block (11 lines × 2) (app/src/main/java/com/application/moviesapp/ui/download/DownloadScreen.kt)
- Duplicated block (11 lines × 2) (app/src/main/java/com/application/moviesapp/ui/play/DetailPlayScreen.kt)
- …and 114 more
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
falconixdev/MoviesApp was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 22 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit d204acc8fefb9e0a829e8feec0ff3f51af359d77 — the exact code this score is about.
- Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-821afab8930d.