🎬 A demo project using The Movie DB based on Kotlin MVVM architecture and material design & animations.

Overview

TheMovies2

License API Build Status License

A simple project using The Movie DB based on Kotlin MVVM architecture and material designs & animations.

preview0 preview1

How to build on your environment

Add your The Movie DB's API key in your local.properties file.

tmdb_api_key=YOUR_API_KEY

Tech stack & Open-source libraries

  • Minimum SDK level 16
  • 100% Kotlin based + Coroutines
  • JetPack
    • Lifecycle - dispose observing data when lifecycle state changes.
    • ViewModel - UI related data holder, lifecycle aware.
    • Room Persistence - construct database.
  • Architecture
    • MVVM Architecture (View - DataBinding - ViewModel - Model)
    • Repository pattern
    • Hilt - dependency injection
    • DataBinding with Bindables - Android DataBinding kit for notifying data changes to UI layers.
  • Material Design & Animations
  • Retrofit2 & Gson - constructing the REST API
  • OkHttp3 - implementing interceptor, logging and mocking web server
  • Sandwich - constructing lightweight API response and handling error responses
  • Glide - loading images
  • BaseRecyclerViewAdapter - implementing adapters and viewHolders
  • WhatIf - checking nullable object and empty collections more fluently
  • Bundler - Android Intent & Bundle extensions that insert and retrieve values elegantly.
  • Mockito-kotlin - Junit mock test
  • Timber - logging
  • Stetho - debugging persistence data & network packets
  • Ripple animation, Shared element transition
  • Custom Views AndroidTagView, ExpandableTextView

Find this repository useful? ❤️

Support it by joining stargazers for this repository. ⭐
And follow me for my next creations! 🤩

Supports ☕

If you feel like support me a coffee for my efforts, I would greatly appreciate it.

Buy Me A Coffee

License

Designed and developed by 2019 skydoves (Jaewoong Eum)

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
You might also like...
Movo (Movie Information) is an android application to find out all the Movie Information and Details.

Movo About The Project Screen.Recording.2022-08-12.at.08.53.46_1.mp4 Movo (Movie Information) is an android application to find out all the Movie Info

MovieApp - Movie App using Clean Architecture with MVVM architectural pattern
MovieApp - Movie App using Clean Architecture with MVVM architectural pattern

MovieApp In this project, MovieDB API has been used to retrive movie data. Upcom

Android Demo App for League of legends's Champions based on MVVM design pattern
Android Demo App for League of legends's Champions based on MVVM design pattern

🎉 LOL-Champs If this project is useful, please give it a star ⭐ A Android Sample App with champion information of the League of Legends(LOL) using An

Tv-Movie - Android application Tv&Movie that uses TMDB API
Tv-Movie - Android application Tv&Movie that uses TMDB API

Tv&Movie This is an android application that shows lists of popular movies, popu

☀️ Wheater is a small demo application based on modern Android tech-stacks and MVVM architecture. ⛅
☀️ Wheater is a small demo application based on modern Android tech-stacks and MVVM architecture. ⛅

Wheater is a small demo application based on modern Android tech-stacks and MVVM architecture. Tech stack & Open-source libraries Minimum SDK level 19

Movie Android App written in Kotlin, MVVM, RxJava, Coroutine (Upcoming), Android Architecture Components and Jetpack Compose (Upcoming).
Movie Android App written in Kotlin, MVVM, RxJava, Coroutine (Upcoming), Android Architecture Components and Jetpack Compose (Upcoming).

MovieHunt MovieHunt is a sample Android project using The Movie DB API based on MVVM architecture. It showcases the latest Android tech stacks with we

Book Parking is a demo application based on MVVM architecture. The app allows users to booking parking slots, the app uses firebase for the backend.
Book Parking is a demo application based on MVVM architecture. The app allows users to booking parking slots, the app uses firebase for the backend.

Book Parking is a demo application based on MVVM architecture. The app allows users to booking parking slots, the app uses firebase for the backend.

A simple material design app intro with cool animations and a fluent API.
A simple material design app intro with cool animations and a fluent API.

material-intro A simple material design app intro with cool animations and a fluent API. Very inspired by Google's app intros. Demo: A demo app is ava

Movie App with MVVM + Clean Architecture (TMDB Api)
Movie App with MVVM + Clean Architecture (TMDB Api)

MovieApp Movie App is an application where you can follow movie trends, search for the movie you like and add the ones you like to your favorites. API

Comments
  • [Koin] No need for createdAtStart

    [Koin] No need for createdAtStart

    I think you got it wrong. By default Koin will behave lazily, so no need to set createdAtStart = false on each definition you don't wanna create during startup. I've also noticed some definitions don't have this property set, so I wonder if you thought not setting it would imply eager instantiation...

    For example, here's Koin single DSL method. Notice createdAtStart:

        inline fun <reified T> single(
                qualifier: Qualifier? = null,
                createdAtStart: Boolean = false,
                override: Boolean = false,
                noinline definition: Definition<T>
        ): BeanDefinition<T>
    
    opened by mradzinski 2
  • Add Tablayout with Fragments for Movies

    Add Tablayout with Fragments for Movies

    How to make this project bit complex by adding a Tablayout + ViewPager that will show movies category and fragments to display each category with a list of corresponding movies. I'm a bit new to MVVM and Dependency Injection so I don't know where to start

    opened by esQmo 0
Releases(1.0.1)
Owner
Jaewoong Eum
Android and open source software engineer.❤️ Digital Nomad. Love coffee, music, magic tricks, and writing poems. Coffee Driven Development
Jaewoong Eum
:octocat: A demo project based on MVVM architecture and material design & animations.

GithubFollows A simple demo project based on MVVM clean architecture and material design & animations. Architecture Specs & Open-source libraries Mini

Jaewoong Eum 288 Dec 25, 2022
A movie application where you can search a movie that you want and see the detail of movie

MovieApp This is a simple movie application where you can search a movie that you want and see the detail of movie Technologies Hilt (Dependency Injec

Serhad Mert 5 Nov 30, 2021
🛡️ Android security (camera/microphone dots indicators) app using Hilt, Animations, Coroutines, Material, StateFlow, Jetpack based on MVVM architecture.

??️ Android security app using Hilt, Animations, Coroutines, Material, StateFlow, Jetpack (Room, ViewModel, Paging, Security, Biometrics, Start-up) based on MVVM architecture.

null 639 Jan 6, 2023
PopularMovieApp - A simple project to Chiper challenge taken data from The Movie DB based on Kotlin MVVM clean architecture

A simple project to Chiper challenge taken data from The Movie DB based on Kotli

Jhonatan Alvarez Caicedo 0 Jan 4, 2022
A simple Pokedex App getting API with Retrofit, maintaining data using LiveData, and Material Design based on MVVM architecture

PokedexApp Pokedex A simple Pokedex App getting API with Retrofit, maintaining data using LiveData, and Material Design based on MVVM architecture. Te

Steven Adriano 0 Apr 12, 2022
A simple app to showcase Androids Material Design and some of the cool new cool stuff in Android Lollipop. RecyclerView, CardView, ActionBarDrawerToggle, DrawerLayout, Animations, Android Compat Design, Toolbar

#Android-LollipopShowcase This is a simple showcase to show off Android's all new Material Design and some other cool new stuff which is (new) in Andr

Mike Penz 1.8k Nov 10, 2022
:movie_camera: Movie discovery app showcasing Android best practices with Google's recommended architecture: MVVM + Repository + Offline support + Android Architecture Components + Paging library & Retrofit2.

Popular Movies Stage 1 + Stage 2 Discover the most popular and top rated movies playing. Movies data fetched using themoviedb.org API. ✨ Screenshots M

Yassin AJDI 189 Nov 26, 2022
Movie Info - MovieInfo app that recieves popular movies and allow the user to search for specific movie through the restapi

Movie_Info MovieInfo app that recieves popular movies and allow the user to sear

inderjeet yadav 3 Jun 8, 2022