/Film-Time

A Movie and TV shows tracking app illustrating Android development best practices with Jetpack Compose

Primary LanguageKotlinMIT LicenseMIT

Film Time πŸ“ΊπŸŽ¬

A modern, feature-rich Movie & TV Show tracking application showcasing Android development best practices using Jetpack Compose and Kotlin.

Features 🌟

  • Browse popular, top-rated, and upcoming movies & TV shows.
  • Search for your favorite movies & shows.
  • Track movies & TV shows you've watched or want to watch.
  • User Profiles to manage watchlists and favorites.
  • Dark Mode for night time browsing.
  • ... and much more!

Tech Stack πŸ› 

  • Kotlin - First class and official programming language for Android development.
  • Jetpack Compose - Android’s modern toolkit for building native UI.
  • Coroutines - For asynchronous and more..
  • Koin - For dependency injection.
  • Retrofit - A type-safe HTTP client for Android and Java.

And more!

Architecture πŸ›

This app follows the MVVM architectural pattern.

Getting Started πŸš€

  1. Clone the repository:
   git clone https://github.com/moallemi/Film-Time.git
  1. Open the project in Android Studio.
  2. Sync the Gradle files and run the app!

Development setup

First off, you require the latest Android Studio Flamingo (or newer) to be able to build the app.

Code style

This project uses ktlint, provided via the spotless gradle plugin, and the bundled project IntelliJ codestyle.

If you find that one of your pull reviews does not pass the CI server check due to a code style conflict, you can easily fix it by running: ./gradlew spotlessApply.

API keys

You need to supply API / client keys for the various services the app uses:

You can find information about how to gain access here.

Add this to your system environment variables:

# Get this from TMDb
FILM_TIME_TMDB_API_KEY=<insert>
# Get these from Trakt
FILM_TIME_TRAKT_CLIENT_ID=<insert>
FILM_TIME_TRAKT_CLIENT_SECRET=<insert>

Do not forget to restart Android Studio to apply changes to your environment.

Contributions πŸ™Œ

Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.

License πŸ“

This project is licensed under the MIT License - see the LICENSE.md file for details.