Skip to content

hva94/TvShows

Repository files navigation

📺 Tv Shows Android Application - linkedin.com/in/hva94

API-Driven Master-Detail with Pagination Android Application

First of all, I want to explain the main development steps of the development.

Choose the architecture pattern:

  • MVVM with Clean Architecture

Set up the project structure with the main libraries required

  • Navigation Component
  • Dagger Hilt
  • Lifecycle Components
  • Material Design
  • Retrofit
  • Room

At this point, I build the commits in a cycle of the next steps:

Define the data and business model

  • Research the API documentation
  • Create the data and domain layer (Model, Repository, Use Cases and Aux files)

Create the DI modules required in the last step

  • DatabaseModule
  • NetworkModule
  • RepositoryModule
  • Aux Modules

Implement the Presentation Layer

  • Navigation Composable
  • ViewModel
  • UI Screen Layouts
  • Aux Classes

Project Initial Setup

  • Libraries (build.gradle, app & project)
  • Manifest (Permission and Hilt App)
  • Folder Structure (Clean Architecture with MVVM)
  • Navigation setup
  • Resources (Color, Font, Theme, etc).
  • Icon added
  • Splash screen added

Main TvShow List

  • Create all the files needed for this
  • in the three layers of the project
  • Main Screen feature
  • API consumption with Paging components
  • Persistence management with Room
  • Dependency Injection Setup
  • Navigation Component Setup

Detail TvShow Screen

  • Create all the files needed for this
  • Detail Screen Feature with Collapsing Toolbar added
  • Make favorite TvShow functionality added
  • Navigation with arguments composable added
  • Detail Screen, ViewModel and aux files added
  • Use cases, model, repository implementation added
  • Http requests, Wrapper, entities, converter, etc. added
  • Repository implementation, DI and Mappers added

Profile Screen (Favorite List)

  • Create all the files needed for this
  • Profile Screen with Favorite List implemented
  • Navigation composable added
  • Profile Screen, ViewModel and aux files added
  • Use case, repository implementation added
  • Dao query, repository and DI implementation added

Unit Testing

  • Aux Tests Libraries added
  • Unit tests added for the most important data flow
  • TvShowRepositoryImpl
  • HomeViewModel
  • DetailViewModel
  • ProfileViewModel

Tech Stack

  • Kotlin
  • Architecture Components
  • MVVM Design pattern
  • Jetpack Compose
  • Dependency Injection
  • Navigation Component

Image App Image App Image App

Dependencies

  • Material Design
  • Lifecycle
  • Navigation Component
  • Dagger Hilt
  • Room
  • Retrofit
  • Paging
  • Lottie
  • Coil
  • Truth
  • Mockk
  • Coroutines Test

Image App Image App Image App Image App

Main features

  • Separation of concerns
  • Composable Navigation
  • Animations and transitions
  • Item list pagination
  • Coroutines usage
  • Extension functions
  • Exception handling

Image App Image App Image App Image App

Android components

  • Material design components
  • Lifecycle state components
  • Composable components
  • DayNight Themes

Extra features

  • Progress indicators
  • Screen error handling
  • Rotation support
  • Splash Screen
  • Strings values
  • Dimens values

API documentation based: The Movie DB

Get your: API-KEY

(To try the application put your API key in the local.properties file).

💬 Contact me on linkedin.com/in/hva94

About

API-Driven Master-Detail with Pagination Android Application.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages