https://github.com/akitikkx/upnext
Upnext: TV Series Manager is an MVVM Android app which allows users to be able to view show schedules, popular, trending and most anticipated shows with favorite functionality provided by the Trakt API
https://github.com/akitikkx/upnext
android coil-image-loader coil-kotlin compose coroutines-android firebase hilt hilt-android jetpack-compose kotlin kotlin-android kotlin-coroutines kotlin-flow mvvm-android retrofit2 room-database
Last synced: about 1 month ago
JSON representation
Upnext: TV Series Manager is an MVVM Android app which allows users to be able to view show schedules, popular, trending and most anticipated shows with favorite functionality provided by the Trakt API
- Host: GitHub
- URL: https://github.com/akitikkx/upnext
- Owner: akitikkx
- License: mit
- Created: 2022-01-22T09:53:54.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2026-05-01T05:48:46.000Z (about 1 month ago)
- Last Synced: 2026-05-01T07:26:58.010Z (about 1 month ago)
- Topics: android, coil-image-loader, coil-kotlin, compose, coroutines-android, firebase, hilt, hilt-android, jetpack-compose, kotlin, kotlin-android, kotlin-coroutines, kotlin-flow, mvvm-android, retrofit2, room-database
- Language: Kotlin
- Homepage: https://theupnextapp.com
- Size: 64.1 MB
- Stars: 64
- Watchers: 1
- Forks: 7
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# Upnext: TV Series Manager
[](https://devlibrary.withgoogle.com/products/android/repos/akitikkx-upnext)
[](https://kotlinlang.org)
[](https://developer.android.com/jetpack/compose)
[](LICENSE)
**Upnext** is a modern Android application for tracking TV series, built with industry-standard best practices and cutting-edge libraries. It serves as a reference implementation for a scalable, production-ready Android app in 2026.
## 🚀 Key Features
* **100% Jetpack Compose**: Fully modern UI built with Material 3.
* **Adaptive Layouts**: Optimized for phones, tablets, and foldables using Window Size Classes.
* **Offline First**: Robust offline support with Room and WorkManager sync.
* **Trakt Integration**: Seamlessly syncs with Trakt.tv for tracking episodes and history.
* **Modern Architecture**: Clean Architecture, MVVM, and Dependency Injection with Hilt.
## 🛠 Tech Stack
This project leverages the latest Android development tools and libraries:
* **Language**: [Kotlin 2.1](https://kotlinlang.org/)
* **UI**: [Jetpack Compose](https://developer.android.com/jetpack/compose) (Material 3)
* **Dependency Injection**: [Hilt](https://dagger.dev/hilt/)
* **Async**: [Coroutines](https://kotlinlang.org/docs/coroutines-overview.html) & [Flow](https://kotlinlang.org/docs/flow.html)
* **Network**: [Retrofit](https://squareup.github.io/retrofit/) & [OkHttp](https://squareup.github.io/okhttp/)
* **Local Storage**: [Room](https://developer.android.com/training/data-storage/room) & [DataStore](https://developer.android.com/topic/libraries/architecture/datastore)
* **Image Loading**: [Coil](https://coil-kt.github.io/coil/) & [Glide](https://bumptech.github.io/glide/)
* **Background Work**: [WorkManager](https://developer.android.com/topic/libraries/architecture/workmanager)
* **Build System**: Gradle with Version Catalogs (`libs.versions.toml`)
## 🏗 Architecture
The app follows **Clean Architecture** principles with a logical separation of concerns:
1. **UI Layer**: Jetpack Compose screens and ViewModels.
2. **Domain Layer**: Use Cases / Interactors (Logical business rules).
3. **Data Layer**: Repositories, Data Sources (Local/Remote), and API definitions.
Although currently structured as a monolithic `app` module for simplicity, the logical boundaries are strictly enforced to facilitate future modularization.
## 💻 Setup & Build
### Prerequisites
* **Android Studio**: Ladybug or newer.
* **JDK**: Java 17 (Ensure Gradle is using JDK 17 in simple Settings).
### Trakt API Configuration
To run the app, you need a Trakt.tv API key.
1. Register an application at [Trakt.tv](https://trakt.tv/oauth/applications).
2. Set the Redirect URI to: `theupnextapp://callback`
3. Create a `local.properties` file in the project root (do NOT commit this file).
4. Add your keys:
```properties
TraktClientID="YOUR_CLIENT_ID"
TraktClientSecret="YOUR_CLIENT_SECRET"
TraktRedirectURI="theupnextapp://callback"
```
## 🤝 Contributing
We welcome contributions! Please see [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines on how to propose bug fixes and new features.
## 📄 License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.