A modern Android app built with Jetpack Compose for browsing and watching series. It includes detailed series information, seasons, and episodes.
- Personalized Recommendations: Intelligent suggestion engine based on viewing history and preferences
- Episode Trailers: Seamless trailer integration for TV shows and movie series
- Real-time Search: Lightning-fast movie and TV show search with auto-suggestions
- Trending Content: Stay updated with what's popular worldwide
- Jetpack Compose UI: Fluid, responsive interface
- Dark/Light Theme: Automatic theme switching based on system preferences
- Offline Support: Browse previously viewed content without internet connection
- Localization Support: Multi-language experience with language selection based on user preferences
- Firebase Analytics: Comprehensive user behavior tracking
- Crash Reporting: Real-time crash monitoring with Firebase Crashlytics
- Clean Architecture: Separation of concerns with Domain-Data-Presentation layers
- Dependency Injection: Hilt-powered DI for testable, maintainable code
- Modular Design: Feature-based modules for scalability
- Language: Kotlin
- Android SDK
- Work Manager
- Paging 3
- UI Framework: Jetpack Compose
- Architecture: MVVM + Clean Architecture
- Dependency Injection: Hilt (Dagger)
- Build System: Gradle
- Navigation: Compose Navigation
- Networking: Retrofit + OkHttp
- Image Loading: Coil
- Async Programming: Coroutines + Flow
- Database: Room
- Testing: JUnit, MockK, Truth
The app follows Clean Architecture principles with MVVM pattern and Modularization for robust, scalable, and testable code:
The app is structured using a multi-module architecture to promote separation of concerns, improve build performance, and enable better team collaboration. Each module has specific responsibilities:
Responsibilities:
- Application entry point and initialization
- Hilt dependency injection setup
- Activity hosting for navigation
- App-level configuration and permissions
Responsibilities:
- Jetpack Compose UI screens and components
- MVVM ViewModels for state management
- Navigation between screens
- UI state handling and user interactions
- Screen-specific business logic
Responsibilities:
- Pure business logic implementation
- Use cases for complex operations
- Domain models and entities
- Repository interfaces (contracts)
- Business rules and validations
Responsibilities:
- Repository pattern implementation
- API integration with Retrofit
- Local database with Room
- Data transformation and mapping
- Caching strategies and offline support
Responsibilities:
- Consistent UI component library
- Reusable Compose components
- Design tokens and guidelines
- Cross-module UI consistency
- Android Studio Narwhal (2025.1.2) or later
- JDK 11 or higher
- Android SDK 24 or higher
- Git
git clone https://github.com/MadridSquad/Movio.git
cd movio-androidCreate a secrets.properties file in the root directory:
# API Configuration
BASE_URL="your_api_base_url"
API_KEY="your_api_key"Update local.properties with your Android SDK path:
sdk.dir=/path/to/your/Android/Sdk- Open the project in Android Studio
- Sync the project with Gradle files
- Build the project (Build > Make Project)
- Run on device or emulator (Run > Run 'app')
- Enable USB debugging and connect your physical device
- Create an Android Virtual Device (AVD) with API level 24 or higher
- Choose between
debugandreleasebuilds from the Build Variants panel
Thanks goes to these amazing people for their contributions π



















