Skip to content

🍿 A TV Showcase App using Jetpack libs and MVVM arch. Data provided by TV Maze API

Notifications You must be signed in to change notification settings

lucasrafagnin/tv-showcase

Repository files navigation

TV Showcase


Google

A TV Showcase 🍿 Android App using Jetpack libraries and MVVM architecture. Data provided by TVMaze API.

Cover

Release 🚀

  • Download here
  • See how the app looks like 📹 here

Tech Stack 🛠

  • Minimum SDK API level: 21
  • Kotlin - Official programming language for Android development.
  • Dagger Hilt - Dependency Injection library for Android
  • Coroutines - For asynchronous stuff and more.
  • Flow - A cold asynchronous data stream that sequentially emits values and completes normally or with an exception.
  • LiveData - Data objects that notify views when the underlying database changes.
  • ViewModel - Manages UI data and lifecycle aware. Allows data to survive configuration changes such as screen rotations.
  • ViewBinding - Bind UI components from layouts to data sources in app using a declarative format rather than programmatically.
  • Retrofit - A type-safe HTTP client for Android.
  • Room - SQLite object mapping library.
  • Moshi - A modern JSON library for Kotlin and Java.
  • Moshi Converter - A Converter which uses Moshi for serialization to and from JSON.
  • Navigation - A library that helps navigation between fragments
  • Coil-kt - An image loading library for Android backed by Kotlin Coroutines.
  • Gradle Kotlin DSL - For writing Gradle build scripts using Kotlin.
  • Ktlint 💅 - Kotlin linter
  • JUnit, Mockito and Mockk for unit tests

Features 🔖

  • List of all series contained in the API
  • Search option to find series by name
  • Series detail page that shows details about the series, cast, seasons, and episodes
  • Episode detail page
  • Cast detail page
  • Daily episode calendar
  • Option to save to favorites

Tech details 🧑‍🔬

  • Day/Night theme for API level 29+
  • Test coverage on Data module
  • Test coverage on Domain module
  • Shortcuts to main pages
  • Adaptive icon
  • Support to PT language
  • Search by voice