MoviesApp is an android app developed in Kotlin. It follows the principles of Clean Architecture, utilizes the MVVM (Model-View-ViewModel) architectural pattern, and is built using Jetpack Compose, Compose Navigation and third-party libraries. This app enables users to see a list of most popular movies, search for their favourite movie and see detailed information.
- 📜 List: show a list of movies on a screen
- 🔍 Search: search functionality support in the list screen
↖️ Click: when a user clicks on a movie, we see detailed view of that movie- 🚫 Error handling for different states - loading, error, empty/placeholder
- MVVM Architecture
- Kotlin
- ViewModel
- GSON - JSON Parser
- Jetpack Compose for UI
- Compose Navigation for the navigation framework
- Coroutines
- Third party libraries - Glide for images loading
The app follows the principles of Clean Architecture, which promotes separation of concerns and modular development. The architecture consists of the following layers:
- data
- Movie
- MoviesRepository
- movies.json -> mock data
- UI
- MovieApp
- MovieApp
- MoviesListScreen
- MovieDetailScreen
- ViewModel
- MoviesViewModelFactory
- MoviesViewModel
The development workflow for the Movies App follows the standard MVVM pattern and Clean Architecture principles:
- UI components are implemented using Jetpack Compose.
- ViewModel is created to hold and manage UI-related data and business logic.
- Data is stored locally in a json file and is fetched using Repository class
Screen_recording_20240826_020315.mp4
List | Search | Detail |