🎥 CineMates demonstrates modern Android development with Hilt, Coroutines, Flow, Jetpack (Room, ViewModel), and Material Design based on MVVM architecture and Modularization.
👷♂️ Section in preparation
- Minimum SDK level 22
- Kotlin based, Coroutines + Flow for asynchronous.
- Jetpack
- Lifecycle: Observe Android lifecycles and handle UI states upon the lifecycle changes.
- ViewModel: Manages UI-related data holder and lifecycle aware. Allows data to survive configuration changes such as screen rotations.
- DataBinding: Binds UI components in your layouts to data sources in your app using a declarative format rather than programmatically.
- Room: Constructs Database by providing an abstraction layer over SQLite to allow fluent database access.
- Hilt: for dependency injection.
- Architecture
- MVVM Architecture (View - DataBinding - ViewModel - Model)
- Repository Pattern
- Retrofit2 & OkHttp3: Construct the REST APIs and paging network data.
- Material-Components: Material design components for building ripple animation, and CardView.
- Glide: Loading images from network.
- Custom Views
- LinearLayoutInfoView: A simple way to display a simple section of text (vertical or horizontal) consisting of a title and a value.
- MoreLessTextView: A simple way to display an expandable TextView as needed.
- PosterView: A simple way to display a media poster featuring an image and a title.
- StatefulRecyclerView: A RecyclerView that handles the loading, error, and empty states.
- Timber: A logger with a small, extensible API.
CineMates using the TheMovieDB for constructing RESTful API.
TheMovieDB provides a RESTful API interface to highly detailed objects built from thousands of lines of data related to Movie and Tv Series.
👷♂️ Section in preparation
Feel free to open an Issues 🐛 or submit a Pull requests ❔ for any bugs/enhancement.
If you have ideas 💡 you can submit them here.
Support it by joining stargazers for this repository. ⭐
Also, follow me on GitHub for my next creations! 🤩