I developed a comprehensive movie collection application that enables users to search, favorite, display, and manage movie information with dynamic data loading. Built with modern Android technologies, the app delivers a responsive and seamless user experience.
Main interface showing movie grid and search functionality
MVVM Architecture: The project follows the Model-View-ViewModel pattern, separating UI layer from business logic. MainActivity serves as the entry point with NavController for navigation, while ViewModel manages UI states and FilmData/FilmApi handle data operations.
MVVM architecture structure and data flow
Performance Optimization: Implemented asynchronous data loading using OkHttp for TMDb API requests, ensuring UI fluidity by executing network operations on background threads. Utilized Coil library for efficient image loading and caching, with HorizontalPager for smooth image transitions in detail views.
Responsive UI Design: Built with Jetpack Compose and Material3 components, featuring adaptive layouts for different screen sizes. Implemented LazyVerticalGrid for efficient list rendering and SwipeRefresh for pull-to-refresh functionality.
Data Persistence: Integrated SharedPreferences with Gson for local movie data storage, ensuring data retention between app sessions. For manually added movies, cover images are stored using URI paths to maintain data security and independence.
API Integration: Connected to TMDb's public API using OkHttp and Gson for data parsing. Implemented robust error handling with user-friendly messages for network failures, enhancing overall user experience.
Movie detail screen featuring image carousel and information display
UI/UX Enhancements: Implemented interactive components like Snackbar for user feedback and optimized image loading with Coil. Added dynamic theme switching supporting both light and dark modes using Material3 themes for consistent cross-platform experience.
The application demonstrates modern Android development practices, combining robust architecture with excellent user experience, making movie collection management both efficient and enjoyable.
Detail instructions:
Download Link: https://github.com/caijiechao/android-movie-app