Project Overview
Moviqo is a next-generation, immersive movie discovery application designed to bridge the gap between utility and entertainment. Unlike standard movie listing apps, Moviqo offers a premium user experience featuring real-time trending content, instant search, and a unique "Shorts" feature (TikTok-style vertical video player) for watching movie trailers. The app also includes robust offline capabilities, allowing users to build a personal "Watchlist" that persists locally using Room Database.
Technology Stack
- UI: Jetpack Compose (Material 3 Design).
- Architecture: MVVM (Model-View-ViewModel) with Clean Architecture principles.
- Networking: Retrofit & Gson (Integrated with TMDB API).
- Local Storage: Room Database (Offline Watchlist Caching).
- Data Handling: Paging 3 (Infinite Scrolling).
- Concurrency: Kotlin Coroutines & Flow.
- Media: YouTube Player API (For Shorts/Trailers).
- Dependency Injection: Hilt (Dagger).
Application Flow
1. App Entry & Navigation (Entry Point)
- Start: When the app launches,
MainActivity initializes the navigation graph.
- NavHost: Acts as the central traffic controller, managing transitions between screens (Splash, Home, Explore, Shorts, Watchlist, Settings).
- Splash Screen: Displays a branded animated logo before automatically transitioning to the Home Screen.
2. Home Screen & Discovery (Home Flow)
- Data Loading: Upon entry, the
HomeViewModel triggers. It uses Paging 3 to fetch data in chunks from the TMDB API, ensuring smooth performance even with large lists.