A discovery app that fetches movies, TV shows, and celebrity details from the TMDb API. Built independently in both Flutter and native Kotlin to compare performance and architecture. Includes user login, ratings, favorites, and watchlists.
Flutter Version (Cross-platform: Android & iOS) :
Framework: Flutter — Single codebase for Android & iOS.
Backend Services: Firebase Cloud Functions — Handles user-specific backend logic like saving ratings, watchlists, etc.
Security: Firebase App Check — Protects backend resources from abuse.
Secrets Management: Google Cloud Secret Manager — Securely stores API keys and service credentials.
Database & Caching: Drift (Moor) — Local SQLite database for caching movie metadata and offline support.
State Management & Architecture: Provider / Riverpod (if used, mention here).
Native Android Version (Kotlin) :
UI Toolkit: Jetpack Compose — Declarative UI for modern Android app development.
Architecture: Clean Architecture + MVVM (Model-View-ViewModel) — Ensures a clean separation of concerns with independent layers for UI, business logic, and data. This allows for scalable and testable code.
Navigation: Android Navigation Component 3 — Type-safe and lifecycle-aware screen transitions.
Networking: Retrofit + Moshi — Robust HTTP client for consuming TMDb API with JSON parsing.
Concurrency: Kotlin Coroutines & Flow — Asynchronous and reactive programming for efficient data handling.
Persistence: Room Database — Local storage for movie data, favorites, and cached lists.
Dependency Injection: Dagger Hilt — Modular and scalable dependency management.