Skip to content

App for simulate the "Movies Api" using clean architecture and most of jetpack libraries.

Notifications You must be signed in to change notification settings

mokhtarmoustafa/movie_task_master

Repository files navigation

Movie Trends

An android app built using Jetpack that consumes Movies API to display the Trends Movies .


Setup Requirements

First, obtain your API key from Movies API.


Tech Stack

  • MVVM Architecture - A software architecture that removes the tight coupling between components. Most importantly, in this architecture, the children don't have the direct reference to the parent, they only have the reference by observables.
  • Hilt - Hilt provides a standard way to incorporate Dagger dependency injection into an Android application.
  • Jetpack Components
    • Android KTX - Provide concise, idiomatic Kotlin to Jetpack and Android platform APIs.
    • AndroidX - Major improvement to the original Android Support Library, which is no longer maintained.
    • Lifecycle - Perform actions in response to a change in the lifecycle status of another component, such as activities and fragments.
    • Room - Provides an abstraction layer over SQLite used for offline data caching.
    • ViewModel - Designed to store and manage UI-related data in a lifecycle conscious way. The ViewModel class allows data to survive configuration changes such as screen rotations.
    • Navigation - Navigation is a framework for navigating between 'destinations' within an Android application that provides a consistent API whether destinations are implemented as Fragments, Activities, or other components.
  • Retrofit - Type-safe http client and supports coroutines out of the box.
  • GSON - JSON Parser,used to parse requests on the data layer for Entities and understands Kotlin non-nullable and default parameters.
  • OkHttp Logging Interceptor - Logs HTTP request and response data.
  • Coroutines - Library Support for coroutines.
  • Flows - Flows are built on top of coroutines and can provide multiple values. A flow is conceptually a stream of data that can be computed asynchronously.

Screenshots

PRs are welcome :)