Skip to content

verindrarizya/Movies-Made

Repository files navigation

Movies-Made

verindrarizya

How to use

Get your own API KEY from TMDB, and put it in buildConfigField inside build.gradle in core module

About

A simple application applying clean architecture and modularization for fetching and showing Movies from TMDB.

Features

  • Fetch and show movies
  • Favorite Movies
  • Add Favorite Movie
  • Delete Favorite Movie
  • Setting, Reminder every 2 days

Clean Architecture

  • Presentation Layer, contains UI that are coordinated by ViewModels which execute the use cases.
  • Domain Layer, completely pure kotlin module containing entities, use cases, & repository interfaces.
  • Data Layer, contains repository implementation with multiple data sources. Repository responsible to coordinate data from different data sources.

Build With

  • Kotlin, a modern statically typed programming language.
  • Kotlin Coroutines
  • Flow
  • LiveData, an observable data holder.
  • ViewModel, class for storing and manage UI-related data in a lifecycle conscious way.
  • Room, a persistence library that provides an abstraction layer over SQLite.
  • WorkManager, an API that make it easy to schedule reliable, asynchronous tasks that are expected to run.
  • Hilt, a dependency injection library for Android that reduces the boilerplate of doing manual dependency injection in your project that's built on top of Dagger
  • Retrofit, a type-safe HTTP client for Android and Java
  • OkHttp, an HTTP & HTTP/2 client for Android and Java applications
  • Gson, a Java serialization/deserialization library to convert Java Objects into JSON and vice versa.
  • Glide, a fast and efficient image loading library for Android.
  • Shimmer, an Android library that provides an easy way to add a shimmer effect
  • Lottie, is a mobile library for Android and iOS that parses Adobe After Effects animations exported as json with Bodymovin and renders them natively on mobile
  • Unit Test
  • Database encryption with SQLCipher
  • Obfuscation
  • Memory leak detection with LeakCanary(See this branch)
  • Certificate Pinning

Releases

No releases published

Packages

No packages published

Languages