:movie_camera: Movie discovery app showcasing Android best practices with Google's recommended architecture: MVVM + Repository + Offline support + Android Architecture Components + Paging library & Retrofit2.

Last update: Aug 6, 2022

Screen

Popular Movies Stage 1 + Stage 2

Discover the most popular and top rated movies playing. Movies data fetched using themoviedb.org API.

โœจ Screenshots

Main Screen Demo Favorites
Fist 3 3
Movie Details Trailers Reviews
4 5 6

๐ŸŒŸ Features

  • Discover the most popular and the most rated movies
  • User can view and play trailers on youtube
  • Shows a list of reviews for each movie
  • Users can mark a movie as favorite in the details view by tapping a heart icon
  • Users can share movie trailers with their network
  • Offline support: app makes use of NetworkBoundResource, which uses database as the single source of truth
  • Advanced uses of Room
  • MVVM with Android Architecture Components(Room, LiveData, ViewModel)
  • Pagination and endless scrolling using Android paging library.
  • Handle network status and network failures
  • ConstraintLayout(guidelines, barriers... etc)
  • Material design.

๐Ÿš€ Getting Started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.

Prerequisites

  • Android Studio 3.2+
  • Java JDK

Installing

Follow these steps if you want to get a local copy of the project on your machine.

1. Clone or fork the repository by running the command below

git https://github.com/YassinAJDI/PopularMovies.git

2. Import the project in AndroidStudio, and add API Key

  1. In Android Studio, go to File -> New -> Import project
  2. Follew the dialog wizard to choose the folder where you cloned the project and click on open.
  3. Android Studio imports the projects and builds it for you.
  4. Add TheMovieDb API Key inside gradle.properties file.
TMDB_API_KEY="Your API Key here"

๐Ÿค How to Contribute

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request

๐Ÿ“ƒ Libraries used

๐Ÿ“ License

This project is released under the MIT license. See LICENSE for details.

MIT License

Copyright (c) 2018 Yassin Ajdi

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

GitHub

https://github.com/YassinAJDI/PopularMovies
You might also like...

๐ŸฒFoodium is a sample food blog Android application ๐Ÿ“ฑ built to demonstrate the use of Modern Android development tools - (Kotlin, Coroutines, Flow, Dagger 2/Hilt, Architecture Components, MVVM, Room, Retrofit, Moshi, Material Components).

 ๐ŸฒFoodium is a sample food blog Android application ๐Ÿ“ฑ built to demonstrate the use of Modern Android development tools - (Kotlin, Coroutines, Flow, Dagger 2/Hilt, Architecture Components, MVVM, Room, Retrofit, Moshi, Material Components).

Foodium ๐Ÿฒ Foodium is a sample food blog ๐Ÿฒ Android application ๐Ÿ“ฑ built to demonstrate use of Modern Android development tools. Dedicated to all Andr

Aug 11, 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 search for specific movie through the restapi

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

Jun 8, 2022

AudioNotes ๐Ÿ“™ An open source simple audio note taking app built to demonstrate android development best practices.

AudioNotes ๐Ÿ“™ An open source simple audio note taking app built to demonstrate android development best practices.

AudioNotes ๐Ÿ“™ A simple open source audio note-taking ๐Ÿ“ Android application built to describe the use of Modern Android development tools. ๐Ÿ— . Made w

Jun 28, 2022

NoteApp - A note taking app illustrating Android best practices with Jetpack Compose.

NoteApp - A note taking app illustrating Android best practices with Jetpack Compose.

NoteApp - A note taking app illustrating Android best practices with Jetpack Compose.

Jun 14, 2022

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

Mar 23, 2022

๐Ÿ“’ NotyKT is a complete ๐Ÿ’ŽKotlin-stack (Backend + Android) ๐Ÿ“ฑ application built to demonstrate the use of Modern development tools with best practices implementation๐Ÿฆธ.

๐Ÿ“’ NotyKT is a complete ๐Ÿ’ŽKotlin-stack (Backend + Android) ๐Ÿ“ฑ application built to demonstrate the use of Modern development tools with best practices implementation๐Ÿฆธ.

NotyKT ๐Ÿ–Š๏ธ NotyKT is the complete Kotlin-stack note taking ๐Ÿ–Š๏ธ application ๐Ÿ“ฑ built to demonstrate a use of Kotlin programming language in server-side

Aug 12, 2022

An advanced Kotlin (Android Native) application that uses SOLID architectural principles, consumes a RESTFUL Service, downloads & images using best practices

An advanced Kotlin (Android Native) application that uses SOLID architectural principles, consumes a RESTFUL Service, downloads & images using best practices

Dog-Playground Kotlin An advanced Kotlin (Android Native) application that uses SOLID architectural principles, consumes a RESTFUL Service, downloads

Jan 10, 2022

Launchy - A custom launcher for our server that installs recommended mods

Launchy Our custom launcher which makes it easier to set up optional mods and in

Apr 6, 2022

Manganers - An application that contains the most recommended places to eat in Purwokerto

Manganers - An application that contains the most recommended places to eat in Purwokerto

manganers adalah aplikasi yang berisikan tempat makan di Purwokerto yang paling

Feb 4, 2022
Comments
  • 1. Replaces Java POJOs with Kotlin data classes

    Resolves #4 .

    Primary changes

    • Replaces the POJOs defined for data models with equivalent Kotlin data classes

    Additional changes

    • Updates the app to target Android SDK version 29 (Android 10).
    • Bug fixes for image loading with Glide.
    Reviewed by AniVerma17 at 2019-09-30 18:44
  • 2. I didn't add any test target in Package.swift. And I guess there is no test code in project. So I think we shouldn't run swift package test

    I didn't add any test target in Package.swift. And I guess there is no test code in project. So I think we shouldn't run swift package test

    ๆœ€ๅˆ็”ฑ @mstfy ๅœจ https://github.com/TTTAttributedLabel/TTTAttributedLabel/pull/814#issuecomment-691533453 ๅ‘ๅธƒ

    Reviewed by Xl5843003 at 2021-10-30 23:10
  • 3. I think it would be better if I put in a viewpager.

    May I change the botom Nav and Fragment a little to make them turn into left and right swipe with a viewpager between Discover and Favorites Fragment?

    Reviewed by saechimdaeki at 2019-10-21 12:17
  • 4. Local db is not synced with Api data Could u please fix this.

    Hey there Thanks for your all the efforts on this open source project you did a great job but local db is not synced with api data could u check this one

    Thanks

    Reviewed by AndroidPoet at 2019-08-04 06:26
(Coroutine, Flow(+StateFlow), Hilt, JetPack, MVVM, Repository Pattern, Retrofit2 & OkHttp3, Moshi, Glide, Timber, Material-Components)

(Coroutine, Flow(+StateFlow), Hilt, JetPack, MVVM, Repository Pattern, Retrofit2 & OkHttp3, Moshi, Glide, Timber, Material-Components)

Apr 13, 2022
A movie application where you can search a movie that you want and see the detail of movie
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

Nov 30, 2021
๐Ÿ“š Sample Android Components Architecture on a modular word focused on the scalability, testability and maintainability written in Kotlin, following best practices using Jetpack.
๐Ÿ“š  Sample Android Components Architecture on a modular word focused on the scalability, testability and maintainability written in Kotlin, following best practices using Jetpack.

Android Components Architecture in a Modular Word Android Components Architecture in a Modular Word is a sample project that presents modern, 2020 app

Aug 18, 2022
Wallum is a superfast โšก lightweight wallpaper app, built using Kotlin, Retrofit, MVVM, Paging 3, Hilt, and Navigation Components
Wallum is a superfast โšก lightweight wallpaper app, built using Kotlin, Retrofit, MVVM, Paging 3, Hilt, and Navigation Components

Show some โค๏ธ and star the repo to show support for the project Wallum Android App Wallum is a super-fast ?? , lightweight wallpaper app built purely w

Jul 14, 2022
The Rick And Morty - MVVM with a clean architecture approach using some of the best practices in Android Development.
The Rick And Morty - MVVM with a clean architecture approach using some of the best practices in Android Development.

Rick-and-Morty The Rick And Morty - App consuming a Rick and Morty API to display Characters it has been built with clean architecture principles, Rep

Jul 29, 2022
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

Aug 18, 2022
๐Ÿš€ Sample Android Clean Architecture on Rorty App focused on the scalability, testability and maintainability written in Kotlin, following best practices using Jetpack.
๐Ÿš€ Sample Android Clean Architecture on Rorty App focused on the scalability, testability and maintainability written in Kotlin, following best practices using Jetpack.

Android Clean Architecture Android Clean Architecture in Rorty is a sample project that presents modern, approach to Android application development u

Dec 28, 2021
An simple image gallery app utilizing Unsplash API to showcase modern Android development architecture (MVVM + Kotlin + Retrofit2 + Hilt + Coroutines + Kotlin Flow + mockK + Espresso + Junit)
An simple image gallery app utilizing Unsplash API to showcase modern Android development architecture (MVVM + Kotlin + Retrofit2 + Hilt + Coroutines + Kotlin Flow + mockK + Espresso + Junit)

Imagine App An simple image gallery app utilizing Unsplash API. Built with โค๏ธŽ by Wajahat Karim and contributors Features Popular photos with paginatio

Aug 18, 2022
An app which displays questions from Stack Exchange from it's api. Can search questions with tags as well. Uses MVVM architecture, dependency injection, coroutines, retrofit2 for network calls

Stack Exchange app What the app does? Shows a list of trending questions from stack exchange api Can search for the desires question. Can add tags to

Apr 27, 2022
The JeTrivia is built on a modern Android Development tech stack with MVVM architecture. Kotlin, Coroutine, Flow, StateFlow, Jetpack Compose, Navigation, Room, Hilt, Retrofit2, OkHttp3, kotlinx.serialization, MockK, Truth
The JeTrivia is built on a modern Android Development tech stack with MVVM architecture. Kotlin, Coroutine, Flow, StateFlow, Jetpack Compose, Navigation, Room, Hilt, Retrofit2, OkHttp3, kotlinx.serialization, MockK, Truth

JeTrivia ?? In Progress ?? The JeTrivia application is sample based on MVVM architecture. Fetching data from the network via repository pattern and sa

Mar 31, 2022