Skip to content

MVVM, Hilt, Coroutine, WebView, Data binding, View binding, Room, Retrofit, Navigation, Glide, Lottie, Parcelable

License

Notifications You must be signed in to change notification settings

TugceAras/MovieApp

Repository files navigation

Movies Catalog 🎥 🍿

📸 Screenshots




📽 Video

MovieApp.mp4

👇 Structures Used

  • MVVM
  • WebView
  • Dependency Injection | Hilt
  • Coroutine
  • Retrofit
  • Room
  • View Binding | Data Binding
  • Parcelable
  • Glide

For animation : Lottie used

📱 Screens

  • Login Screen
  • Popular Movie Screen
  • Search Screen
  • Detail Screen
  • Watchlist Screen
  • Favorites Screen

✏️ Dependency

    // Navigation
    def nav_version = "2.5.3"
    implementation "androidx.navigation:navigation-fragment-ktx:$nav_version"
    implementation "androidx.navigation:navigation-ui-ktx:$nav_version"

    // Coroutine
    implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4'
    implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4")

    // Coroutine Scope
    implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.0'
    implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.6.0'

    // Room
    def room_version = "2.5.0"
    implementation "androidx.room:room-runtime:$room_version"
    kapt "androidx.room:room-compiler:$room_version"
    implementation "androidx.room:room-ktx:$room_version"

    // Retrofit
    implementation 'com.squareup.retrofit2:retrofit:2.9.0'
    implementation 'com.squareup.retrofit2:converter-gson:2.9.0'

    // Glide
    implementation 'com.github.bumptech.glide:glide:4.14.2'
    kapt  'com.github.bumptech.glide:compiler:4.14.2'

    // DI-Hilt
    implementation "com.google.dagger:hilt-android:2.44"
    kapt "com.google.dagger:hilt-compiler:2.44"

    // Lottie
    implementation 'com.airbnb.android:lottie:5.2.0'

app build.gradle:

plugins {
    id 'com.android.application'
    id 'org.jetbrains.kotlin.android'
    id 'kotlin-parcelize'
    id 'androidx.navigation.safeargs.kotlin'
    id 'kotlin-kapt'
    id 'com.google.dagger.hilt.android'
}

buildFeatures {
      viewBinding true
      dataBinding true
 }

project build.gradle:

plugins {
    id 'com.android.application' version '7.4.2' apply false
    id 'com.android.library' version '7.4.2' apply false
    id 'org.jetbrains.kotlin.android' version '1.8.0' apply false
    id 'androidx.navigation.safeargs' version '2.5.3' apply false
    id 'com.google.dagger.hilt.android' version '2.44' apply false
}

❗ Manifest File

<uses-permission android:name="android.permission.INTERNET" />

👇 API

About

MVVM, Hilt, Coroutine, WebView, Data binding, View binding, Room, Retrofit, Navigation, Glide, Lottie, Parcelable

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages