$ show piashcse/kmp-movie
This is a Kotlin Multiplatform application that provides a movie and TV show browsing experience across Android, iOS, Desktop, and Web platforms. The app fetches data from The Movie Database (TMDB) API and displays content including now playing movies, popular/top-rated/upcoming movies and TV shows, celebrity information, and search functionality. It follows MVVM architecture with Clean Architecture principles, using Koin for dependency injection, Kotlin Coroutines for asynchronous operations, Ktor for networking, and Compose Multiplatform for the UI layer. The application includes features like favorite management with local storage, genre filtering, and detailed views for movies, TV shows, and celebrities.
The LLM identified 3 files worth highlighting for reuse:
A highly reusable generic list screen component that handles loading states, error states, and pagination for any data type. It's parameterized over item type T and state type S, using callbacks to extract data and load more items, making it adaptable to various list-based UIs with minimal modification.
A generic grid component for displaying media items with efficient image loading using Coil and shimmer effects. It's type-safe over item T, uses LazyVerticalGrid for performance, and includes customizable content areas, making it suitable for any media grid implementation across different domains.
A generic pagination handler that manages loading states, error recovery, and page incrementing. It uses callbacks for data loading and state updates, making it reusable across any paginated data fetching scenario with proper separation of concerns and error handling.