Movie discovery app showcasing MVP, RxJava, Dagger 2 and Clean Architecture

Overview

MovieGuide

🚧 Refactoring in progress 👷‍♀️ 👷 🔧️ 👷 🔧 🚧

  • Comments and new issues are welcome. 👍
  • Currently not accepting external PRs that touch on the app's architecture and features. 🛑

Build Status

Android app that lists popular/highest-rated movies, shows trailers and reviews.

This app showcases the MVP pattern, RxJava, Dagger 2 and Uncle Bob Martin's Clean Architecture approach. Optimized for tablets.

Building the app

  1. Open local.properties in the root directory.
  2. Add your TMDB API key as follows
tmdb_api_key=ADD_YOUR_API_KEY_HERE
  1. Run the app.

Screenshots

Screenshot screenshot2 screenshot3 screenshot4 screenshot5 screenshot6

Comments
  • question for contribution

    question for contribution

    i'm korean university student. Recently, i used movieguide application in android. i think, it is quite useful and it has good information and interface. So i want our korean to know this application using opensource. But because text file like readme is written in English, people might have trouble in interpreting English. So can i Translate text file like readme or contributing guidelines into Korean?

    opened by dtree0520 6
  • Added youtube window in the app to view trailers without intent to youtube

    Added youtube window in the app to view trailers without intent to youtube

    INITIAL STATE To see the trailers of a movie, the intent was made to the youtube app and the user was watching the trailer there.

    WHAT I ADDED I have added a youtube player window in the app itself. Now upon clicking on a trailer, the user can see the trailer in the app itself without being sent to the youtube app. He can see the trailer in the full window also if he wants.
    MovieGuideYoutubePlayer

    EXTRA CHANGES MADE I have changed the FAB button's position in movie_details fragment because the youtube player cannot play any video if some view is floating/placed above it. So I have put it in the top right end between toolbar and fragment screen.

    Also, right now I have my own youtube API in the Config file which I am sharing, please make sure to replace it with your own.

    opened by Hemant27031999 4
  • Enhancements

    Enhancements

    Few enhancements made :

    • Added swipe refresh button to load the movies again dynamically without reopening the app. Useful in case when application is opened with blank screen in case of no internet.

    • Replaced deprecated Butterknife.findById with the android findViewById.

    • Added a play button on the trailers video layout to denote playable option. .

    opened by KaveriKR 4
  • Add API as a preference

    Add API as a preference

    Hello,

    Instead of adding the API key before building the app, would it be possible to add an option to enter an API key in the app preferences. This would allow changing the key without rebuilding the app.

    opened by Rudloff 4
  • Moving to rxJava2

    Moving to rxJava2

    Hi, here's a little summary of what it took,

    • update retrofit2 call factory for rx2
    • moving rx.* to io.reactivex.*
    • moving Subscription to Disposable
    • moving testSubscriber to testObserver
    • fixing RxAndroidSchedulersHook

    Plus

    • 0109961e4f0e833f5aac7d1b3b7c383f38061813: Updating gradle plugin version: 2.3.1 -> 2.3.3
    • a661d169329709ce6cb433dbdcb0e22bb034a897: rxJava2 gradle imports added + fixing META-INF duplicate file issue

    Tests are all passing.

    opened by MattiaPrimavera 3
  •  README.md document picture changes and Korean translation

    README.md document picture changes and Korean translation

    Among the pictures in the README.md document, we changed the picture that was not updated and translated the rest of the document into Korean.

    I would be grateful if you could commit my pull request. Thank you!

    opened by Hyunwoo-CHO 2
  • I have a question for your

    I have a question for your "Movie Guide" application!

    Hello! I'm university student from Korea. I have a few question about your application, named "Movie Guide".

    First, where do you get reviews for movies from? Second, what do you think about letting people, users of "Movie Guide" application, write their own reviews for each movies.

    Think about my questions and look forward to your thoughtful response.

    Thank you for taking the time to read my question!

    opened by Hyunwoo-CHO 2
  • I found the bug in newest list!

    I found the bug in newest list!

    I am user to use the movie guide app. Before reporting bugs, it's always helpful to use Movie Guides as a movie lover. But I fount the bug. I would like to tell you the bug I found in order for movie guide app to go in a good direction. Even if a movie is loaded from the newest list, the same movie is loaded continuously. My wish is that when I load a movie, I want a new movie from before.

    Thank you for reading the long article and I look forward to your reply ^_^

    opened by tjalsrb97 2
  • Swipe Refresh to load data

    Swipe Refresh to load data

    Ad swipe refresh button to load data when internet is connected after the application in opened with empty screen in case of no internet connection, or to load data again.

    I would like to work on it - yes

    enhancement 
    opened by KaveriKR 2
  • Empty screen after activity recreate with restore state

    Empty screen after activity recreate with restore state

    If 'don't keep activities option' enabled in developer settings, listing activity showing empty screen after returning to it.

    It looks like adapter knows nothing about restored ArrayList in MoviesListingFragment.onViewCreated

    bug 
    opened by drobyshys 4
Owner
Arun Sasidharan
Arun Sasidharan
[] Port of Jake Wharton's U2020 sample app with use of MVP and Dagger 2

U+2020-mvp [DEPRECATED] We recomend to try Moxy framework instead of our solution. Port of Jake Wharton's U2020 sample app with use of MVP pattern and

Live Typing 315 Nov 14, 2022
RxJava architecture library for Android

Reference Architecture for Android using RxJava This is an ambitious reference project of what can be done with RxJava to create an app based on strea

Reark 2.1k Dec 17, 2022
RxJava architecture library for Android

Reference Architecture for Android using RxJava This is an ambitious reference project of what can be done with RxJava to create an app based on strea

Reark 2.1k Dec 17, 2022
🔥 Android MVP with Volley usage simple registration App 🔥

?? Android MVP with Volley usage simple registration App ?? This is a MVP architecture app that uses volley .Project is made using Android Studio. Vol

ABHISHEK KUMAR PATHAK 3 Aug 7, 2022
Learning RxJava for Android by example

Learning RxJava for Android by example This is a repository with real-world useful examples of using RxJava with Android. It usually will be in a cons

Kaushik Gopal 7.6k Dec 30, 2022
Learning RxJava for Android by example

Learning RxJava for Android by example This is a repository with real-world useful examples of using RxJava with Android. It usually will be in a cons

Kaushik Gopal 7.6k Dec 29, 2022
PokeCard Compose is a demo app 100% write in Compose, Flow and Koin based on MVI Clean Architecture 🐱⚡️

A Pokemon Card demo app using Jetpack Compose and Koin based on MVI architecture. Fetching data from the network with Ktor and integrating persisted data in Room database with usecase/repository pattern.

Lopez Mikhael 104 Nov 27, 2022
A sample Android application with a strong focus on a clean architecture, automated unit and UI testing and continuous integration.

Android playground This is a sample Android application with a strong focus on a clean architecture, automated unit and UI testing and continuous inte

null 6 Jun 4, 2022
Clean Architecture Crypto App

Hi, this is the first project I did with CleanArchitectureMvvm and it is basic and not too complicated. I hope it will be useful for other friends as well.

Soran Mahmoodi 0 Oct 28, 2021
A demo application that uses TMDB APIs to fetch the movie details and cache it using the Room DB.

TMDB App Tmdb sample project is a demo application that is based on modern Android architectures. It will fetch the data from the network and cache it

Clint Paul 38 Nov 28, 2022
A sample Android app which showcases advanced usage of Dagger among other open source libraries.

U+2020 A sample Android app which showcases advanced usage of Dagger among other open source libraries. Watch the corresponding talk or view the slide

Jake Wharton 5.7k Dec 22, 2022
🧸 A demo Disney app using Jetpack Compose and Hilt based on modern Android tech stacks and MVVM architecture.

DisneyCompose A demo Disney app using compose and Hilt based on modern Android tech-stacks and MVVM architecture. Fetching data from the network and i

Jaewoong Eum 791 Dec 30, 2022
A sample app showing how to build an app using the MVI architecture pattern.

MVI Example This application was streamed live on Twitch to demonstrate how to build an application using MVI. You can find the VOD here for now: http

Adam McNeilly 46 Jan 2, 2023
📚 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

Madalin Valceleanu 2.3k Dec 30, 2022
Restaurant is a demo application based on modern Android application tech-stacks and MVVM architecture

Restaurant is a demo application based on modern Android application tech-stacks and MVVM architecture. Fetching data from the network via repository pattern.

Eslam kamel 25 Nov 20, 2022
Demo Android application using Gradle. Project is written entirely in Kotlin with MVVM architecture

Demo Android application using Gradle. Project is written entirely in Kotlin with MVVM architecture, Dagger / Hilt Dependency Injection, Room Database and Retrofit API Calls

Dejan Radmanovic 1 Apr 6, 2022
Android sample app following best practices: Kotlin, Compose, Coroutines and Flow, Hilt, JetPack Navigation, ViewModel, MVVM and MVI, Retrofit, Coil

Foodies - Modern Android Architecture Foodies is a sample project that presents a modern 2021 approach to Android app development. The project tries t

null 362 Jan 2, 2023
A demo app to show how to detect screenshots taken by the user while using the app

Screenshot Detector A demo app to show how to detect screenshots taken by the user while using the app. Blog link Detect Screenshots in Android Screen

Nikit Bhandari 77 Dec 9, 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