joelkanyi /Muviz
A Jetpack compose app that consumes the TMDB API to display movie and Tv shows and their details
★ 299⑂ 40👁 3⑃ 119● 17▤ 1◈ 0
299
stars
40
forks
3
watchers
119
prs
17
issues
1
releases
0
discussions
README
Muviz
An Android app built with Jetpack Compose consuming TMDB API to help movies, Tv shows and series fanatics to have current information of the trending, popular, upcoming, on air and many other films. It also helps user know the details of their favorite films and the casts, this helps users add their favorites films to favorite for easy remembrance. It also helps users search for that show that they have heard about it and they are not sure about it.
Structural design pattern
The app is built with the Model-View-ViewModel (MVVM) is its structural design pattern that separates objects into three distinct groups:
- Models hold application data. They’re usually structs or simple classes.
- Views display visual elements and controls on the screen. They’re typically subclasses of UIView.
- View models transform model information into values that can be displayed on a view. They’re usually classes, so they can be passed around as references.
Setup Requirements
Obtain your key from TMDB API and replace it in the local.properties file:
gradle
API_KEY=API_KEY_VALUE
Tech Stack.
- Kotlin - Kotlin is a programming language that can run on JVM. Google has announced Kotlin as one of its officially supported programming languages in Android Studio; and the Android community is migrating at a pace from Java to Kotlin.
- Jetpack components:
- Jetpack Compose - Jetpack Compose is Android’s modern toolkit for building native UI. It simplifies and accelerates UI development on Android. Quickly bring your app to life with less code, powerful tools, and intuitive Kotlin APIs.
- Android KTX - Android KTX is a set of Kotlin extensions that are included with Android Jetpack and other Android libraries. KTX extensions provide concise, idiomatic Kotlin to Jetpack, Android platform, and other APIs.
- AndroidX - Major improvement to the original Android Support Library, which is no longer maintained.
- Lifecycle - Lifecycle-aware components perform actions in response to a change in the lifecycle status of another component, such as activities and fragments. These components help you produce better-organized, and often lighter-weight code, that is easier to maintain.
- ViewModel -The ViewModel class is designed to store and manage UI-related data in a lifecycle conscious way.
- LiveData - LiveData is an observable data holder class. Unlike a regular observable, LiveData is lifecycle-aware, meaning it respects the lifecycle of other app components, such as activities, fragments, or services. This awareness ensures LiveData only updates app component observers that are in an active lifecycle state.
- Paging 3 library - The Paging library helps you load and display pages of data from a larger dataset from local storage or over network. This approach allows your app to use both network bandwidth and system resources more efficiently.
- Room database - The Room persistence library provides an abstraction layer over SQLite to allow Top issues
#120[Feature Request] Android TV2 comments · 2025-08-14#108Disable Detele Button On Favorites Screen1 comments · 2025-01-24#36Migrate to MoviebaseApp/tmdb-api 1 comments · 2023-03-10#38automated dependency updates dashboard0 comments · 2024-01-14
Latest release
1.0.5 1.0.5 2024-07-03What's Changed migrate from Material 2 to Material 3 by @joelkanyi in https://github.com/joelkanyi/Muviz/pull/83 Theme options by @joelkanyi in https://github.com/joelkanyi/Muviz/pull/84 fix films and search pagination by @joelkanyi in https://github.com/joelkanyi/Muviz/pull/85 update to kotlin 2.0.0 by @joelkanyi in https://github.com/joelkanyi/Muviz/pull/87 migrate to compose destinations v2 by @joelkanyi in https://github.com/joelkanyi/Muviz/pull/88 add shared element transitions by @joelkanyi in https://github.com/joelkanyi/Muviz/pull/89 update dependency com.google.devtools.