https://github.com/static-var/tmdb-compose
An android application built with Jetpack compose, follows MVVM architecture, also uses libraries like Hilt, Room, Retrofit and Moshi.
https://github.com/static-var/tmdb-compose
android jetpack-compose mvvm-architecture
Last synced: 9 months ago
JSON representation
An android application built with Jetpack compose, follows MVVM architecture, also uses libraries like Hilt, Room, Retrofit and Moshi.
- Host: GitHub
- URL: https://github.com/static-var/tmdb-compose
- Owner: static-var
- Created: 2020-12-04T13:50:34.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2021-06-20T14:29:07.000Z (about 5 years ago)
- Last Synced: 2024-05-02T02:19:24.915Z (about 2 years ago)
- Topics: android, jetpack-compose, mvvm-architecture
- Language: Kotlin
- Homepage:
- Size: 944 KB
- Stars: 7
- Watchers: 1
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# TmDB
Application built with Jetpack Compose which uses TmDB as data source.
To get this app running add your API KEY to `local.properties` as shown below, if you don't have one you can easily get one from [here](https://www.themoviedb.org/settings/api) after creating a free account.
```
api=""
```
SDK levels supported
--------------
- Minimum SDK 23
- Target SDK 30
Built With π
--------------
- [Jetpack Compose](https://developer.android.com/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.
- [Kotlin](https://kotlinlang.org/) - Officially supported programming language for Android development.
- [Coroutines](https://kotlinlang.org/docs/reference/coroutines-overview.html) - For asynchronous and more..
- [Android Architecture Components](https://developer.android.com/topic/libraries/architecture) - Collection of libraries that help you design robust, testable, and maintainable apps.
- [LiveData](https://developer.android.com/topic/libraries/architecture/livedata) - Data objects that notify views when the underlying database changes.
- [ViewModel](https://developer.android.com/topic/libraries/architecture/viewmodel) - Stores UI-related data that isn't destroyed on UI changes.
- [Navigation](https://developer.android.com/jetpack/compose/navigation) - For naviation between composables.
- [Hilt](https://dagger.dev/hilt/) - Dependency Injection Framework
- [Material Components for Android](https://github.com/material-components/material-components-android) - Modular and customizable Material Design UI components for Android.
- [Accompanist](https://google.github.io/accompanist/) - Accompanist is a group of libraries that contains some utilities which I've found myself copying around projects which use Jetpack Compose.
- [Moshi](https://github.com/square/moshi) - Moshi is a modern JSON library for Android and Java, to ease the process of parsing JSON.
- [Retrofit](https://github.com/square/retrofit) - A type-safe HTTP client for Android and Java.
- [Store](https://github.com/dropbox/Store) - Store is a Kotlin library for loading data from remote and local sources.
Package structure
-----------------
```
app/src/main/java/dev/shreyansh/tmdb
βββ data # Data layer
βΒ Β βββ api # API service
βΒ Β βββ db # Database setup
βΒ Β βΒ Β βββ dao # Model DAO's
βΒ Β βββ model # Models
βΒ Β βΒ Β βββ responses # Wrapper classes for models to parse API respose
βΒ Β βββ repository # Repository classes which acts as a single source of truth for the ViewModel
βββ di # Dependency Injection setup
βββ ui # UI layer
βΒ Β βββ about # UI for about screen
βΒ Β βββ home # UI for home screen
βΒ Β βββ movie # UI for movie screen
βΒ Β βββ navigation # Navigation setup
βΒ Β βββ theme # Theme for TmDB
βΒ Β βββ tvShows # UI for Tv show screen
βββ utils # Helper functions and classes
```
Miscellaneous Information
----------------
This app is written while keeping in mind the [MVVM architecture](https://developer.android.com/jetpack/guide).