Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/sooshin/android-popular-movies-app

Popular Movies App project for Udacity Android Developer Nanodegree. Integrated the Paging library, LiveData, ViewModel, DataBinding, Room, MVVM architecture and Repository pattern.
https://github.com/sooshin/android-popular-movies-app

android android-developer-nanodegree androidarchitecturecomponets androidjetpack movie paging-library popular-movies popularmovies themoviedb-api tmdb udacity

Last synced: about 2 months ago
JSON representation

Popular Movies App project for Udacity Android Developer Nanodegree. Integrated the Paging library, LiveData, ViewModel, DataBinding, Room, MVVM architecture and Repository pattern.

Awesome Lists containing this project

README

        

# Popular Movies, Stage 2

## Project Overview
Most of us can relate to kicking back on the couch and enjoying
a movie with friends and family. In this project, you’ll build an app
to allow users to discover the most popular movies playing.

This app uses the API from [themoviedb.org](https://www.themoviedb.org/)

## API Key Note
**Define key in build.gradle**

Find a file named `gradle.properties` in `.gradle` folder in your home directory.

Add `PopularMoviesApp_ApiKey = "YOUR-API-KEY"` to that file.

Reference: [Hiding API keys from your Android repository](https://medium.com/code-better/hiding-api-keys-from-your-android-repository-b23f5598b906)

## Why this Project

To become an Android developer, you must know how to bring particular
mobile experiences to life. Specifically, you need to know how to build
clean and compelling user interfaces (UIs), fetch data from network services,
and optimize the experience for various mobile devices. You will hone these
fundamental skills in this project.

By building this app, you will demonstrate your understanding of the
foundational elements of programming for Android. Your app will communicate with
the Internet and provide a responsive and delightful user experience.

## What I learned
- Fetch data from the Internet with theMovieDB API
- Use adapters and custom list layouts to populate list views
- Incorporate libraries to simplify the amount of code you need to write
- Build a fully featured application that looks and feels natural on the latest Android operating system.

## Image Resources
[Icon](https://www.flaticon.com/free-icon/film_148716)
made by [Smashicons](https://www.flaticon.com/authors/smashicons) from [www.flaticon.com](www.flaticon.com) is licensed by
[CC 3.0 BY](http://creativecommons.org/licenses/by/3.0/)

## Libraries
- [Android Architecture Components](https://developer.android.com/topic/libraries/architecture/)
* [Paging](https://developer.android.com/topic/libraries/architecture/paging/)
* [Room](https://developer.android.com/topic/libraries/architecture/room)
* [ViewModel](https://developer.android.com/topic/libraries/architecture/viewmodel)
* [LiveData](https://developer.android.com/topic/libraries/architecture/livedata)
- [Android Data Binding](https://developer.android.com/topic/libraries/data-binding/)
- [Retrofit](http://square.github.io/retrofit/) for REST api communication
- [Picasso](http://square.github.io/picasso/) for image loading

## Video
Here is the link to view a video demonstrating the app: https://youtu.be/1eFfdmHGKMw

## Get it on Google Play
**Popular Movies** app gives you information about movies from the TMDb. See what movies are the most popular and high rated. You can also discover Now Playing or Upcoming movies. Popular Movies app will help you decide what to watch.👍

[![google-play-badge](https://user-images.githubusercontent.com/33213229/59287668-13be9a00-8cad-11e9-9a13-b62a4f562cfd.png)](https://play.google.com/store/apps/details?id=com.soojeongshin.popularmovies.free)
[![ic_launcher](https://user-images.githubusercontent.com/33213229/59288297-72d0de80-8cae-11e9-9c58-25828f6e6ae6.png)](https://play.google.com/store/apps/details?id=com.soojeongshin.popularmovies.free)

* Added search features so that you can search for movies by keyword
* Integrated Firebase Analytics, Crashlytics, Firebase AdMob
* Created a launcher icon using Adobe Photoshop

**Popular Movies uses the TMDb API but is not endorsed or certified by TMDb.**

I learned how to link my app to Google AdMob, design an app icon, how to reply on the feedback on improvements, and use the Google Play Console to manage my app. If you like my **Popular Movies** app, you can download it on Google Play.
[Download Link](https://play.google.com/store/apps/details?id=com.soojeongshin.popularmovies.free).
If you have any suggestions or issues, please write to me at [email protected]. Thanks.

## Screenshots
![popular-movies-main](https://user-images.githubusercontent.com/33213229/49940286-757e9100-ff22-11e8-897a-45ba561df250.png)![popular-movies-detail](https://user-images.githubusercontent.com/33213229/49940281-71527380-ff22-11e8-935b-7e2d4138d979.png)![popular-movies-info](https://user-images.githubusercontent.com/33213229/49940285-73b4cd80-ff22-11e8-9ca1-b379e06b90bc.png)
![popular-movies-trailers](https://user-images.githubusercontent.com/33213229/49940290-77485480-ff22-11e8-8ed5-e79430807c66.png)![popular-movies-cast](https://user-images.githubusercontent.com/33213229/49940272-6c8dbf80-ff22-11e8-9ea9-c873be4cd699.png)

## License
Apache, see the [LICENSE](LICENSE) file.