Skip to content

roxxydev/itunes-search-android

Repository files navigation

ITunes Search

The project is written in Kotlin following MVI/MVVM design pattern. The app consumes the Search API of ITunes store for searching content like movies, books, podcasts, music, music videos, audiobooks, and TV shows within ITunes Store.

Download

Design Pattern

The project used MVI and Repository design pattern approach. State in app is defined by user's action which is called intent (not the android Intent class) which the ViewModel will get and decide the state to be reflected to the View.

Libraries

  • Hilt - For dependency injection and lessens setup required with Dagger.
  • Room - Used for data caching as this is included already in android Jetpack.
  • Retrofit - API http network requests.
  • OkHttp - Use OkHttp for logging interceptor of http request for debugging purposes.
  • Moshi - For serialization from JSON. Used Moshi instead of GSON as Moshi is much faster than GSON and smaller than GSON which means produced apk build is smaller.
  • Navigation Component - For handling fragments and simplify app's navigation between screens.
  • Timber - For better logging and handling of logs for crash reporting.
  • Glide - For fast and efficient image loading to views.
  • Material Design - For implementing Google's material design ui across views in the app.

Setup

Run the following command to build the project

./gradlew build

Installation

Installing apk to device can be done with the following commands. Note that debug apk is used in the commands.

  • via Gradle
./gradlew installDebug
  • via adb tool
adb install build/outputs/apk/debug/app-debug.apk

Linting

Lint issues or warnings can be checked by running

./gradlew lint

About

Android app consuming iTunes Search API

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages