Skip to content

Popular Movies app illustrating Android development best practices with Android Jetpack Components

License

Notifications You must be signed in to change notification settings

QArtur99/PopularMovies_KT

Repository files navigation

Popular Movies

Get it on Google Play

Popular Movies app inspired by the Udacity Android Developer Nanodegree. Written in Kotlin and implements the Jetpack libraries. The application fetches movie data using https://www.themoviedb.org (TMDB).

Used Tech

  • Kotlin
  • MVVM
  • Coroutines - Asynchronous programming
  • Data Binding - Declaratively bind observable data to UI elements.
  • Lifecycles - Create a UI that automatically responds to lifecycle events.
  • LiveData - Build data objects that notify views when the underlying database changes.
  • Navigation - Handle everything needed for in-app navigation.
  • Paging - Load and display small chunks of data at a time.
  • Room - Access your app's SQLite database with in-app objects and compile-time checks.
  • ViewModel - Store UI-related data that isn't destroyed on app rotations. Easily schedule asynchronous tasks.
  • Koin - Runtime framework for dependency injection.
  • Retrofit 2 - Handle REST api communication.
  • Moshi - Serialize Kotlin objects and deserialize JSON objects.
  • Glide - Load and cache images by URL.
  • Test - An Android testing framework for unit and runtime UI tests.
  • ktlint - Enforce Kotlin coding styles.

Screenshots

image image

How to run the project in development mode

  • Clone or download repository as a zip file.
  • Open project in Android Studio.
  • Set TheMovieDb API key in build.gradle(line 41).
  • Run 'app' SHIFT+F10.

Features

  • Discover the most popular and the most rated movies
  • Mark favorite movies by tapping a heart icon and store them in local database
  • Watch and play trailers on youtube
  • Read reviews

Report issues

Something not working quite as expected? Do you need a feature that has not been implemented yet? Check the issue tracker and add a new one if your problem is not already listed. Please try to provide a detailed description of your problem, including the steps to reproduce it.

Contribute

Awesome! If you would like to contribute with a new feature or submit a bugfix, fork this repo and send a pull request. Please, make sure all the unit tests, integration tests & ./gradlew spotlessApply are passing before submitting and add new ones in case you introduced new features.

Getting Started

  • If you don’t already have an account on TMDB, you will need to create one in order to request an API Key.
  • The Movie Database API

Android Studio IDE setup

Popular Movies uses ktlint to enforce Kotlin coding styles. Here's how to configure it for use with Android Studio (instructions adapted from the ktlint README):

  • Close Android Studio if it's open
  • Download ktlint using these installation instructions
  • Inside the project root directory run: ./ktlint --apply-to-idea-project --android
  • Remove ktlint if desired: rm ktlint
  • Start Android Studio

License

Copyright 2019 Artur Gniewowski

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.

About

Popular Movies app illustrating Android development best practices with Android Jetpack Components

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages