Movie Search App - using Flow, Suspend Function, AAC ViewModel, Dagger Hilt and so on.

Overview

Movie Search App

This is my first android practice project, using Flow, Suspend Function, AAC ViewModel, Dagger Hilt and so on.

Project Structure

root/
  ┣ app
  ┃  ┣ App.kt
  ┃  ┣ MainActivity.kt
  ┃  ┣ nav_graph.xml
  ┃  ┗ HiltInjectionModules
  ┣ UiComponent
  ┃  ┣ MovieDetailFragment.kt
  ┃  ┣ fragment_movie_detail.xml
  ┃  ┣ MovieSearchFragment.kt
  ┃  ┗ fragment_movie_search.xml
  ┣ ViewModel
  ┃  ┣ AnyViewModel.kt
  ┃  ┣ MovieDetailViewModel.kt
  ┃  ┗ MovieSearchViewModel.kt
  ┣ Router
  ┃  ┣ MovieDetailRouter.kt (interface)
  ┃  ┗ MovieSearchRouter.kt (interface)
  ┣ UiLogic
  ┃  ┣ main
  ┃  ┃  ┣ MovieDetailUiLogicImpl.kt
  ┃  ┃  ┣ MovieDetailUiLogicFactoryImpl.kt
  ┃  ┃  ┣ MovieSearchUiLogicImpl.kt
  ┃  ┃  ┗ MovieSearchUiLogicFactoryImpl.kt
  ┃  ┗ test
  ┃     ┣ MovieDetailUiLogicImplTest.kt
  ┃     ┗ MovieSearchUiLogicImplTest.kt
  ┣ UiLogicInterface
  ┃  ┣ UiLogic.kt (interface)
  ┃  ┣ UiLogicFactory.kt (interface)
  ┃  ┣ MovieDetailUiLogic.kt (interface)
  ┃  ┗ MovieSearchUiLogic.kt (interface)
  ┣ Repository
  ┃  ┣ main
  ┃  ┃  ┗ MovieRepositoryImpl.kt
  ┃  ┗ test
  ┃     ┗ MovieRepositoryImplTest.kt
  ┣ RepositoryInterface
  ┃  ┗ MovieRepository.kt (interface)
  ┣ RemoteDataSource
  ┃  ┗ TheMovieDatabaseService.kt
  ┗ RemoteDataSourceInterface
     ┗ TheMovieDatabaseService.kt (interface)

Module Dependency Graph

module_graph

View Composition and UI Layer Data Structure

UI Layer Data Structure corresponds to View Composition, therefore be able to test view patterns via unit testing. (e.g. MovieDetailUiLogicImplTest.kt)

view

Thrid Party Libraries

Requirements

  • Android Studio Arctic Fox 2020.3.1 Patch 1
  • Java 8
  • Kotlin 1.5.30

Usage

To run this application, The Movie Database API Key and Access Token are needed. Set those required strings to app/gradle.properties like below.

TMDB_API_KEY=xxxx
TMDB_ACCESS_TOKEN=xxxx
You might also like...
🔥Simple quote app using MVVM, Retrofit, Coroutines and Dagger Hilt 💉

🔥 simple quote app using MVVM, Retrofit, Coroutines and Dagger Hilt 💉 quote.mp4 📚 knowledges and technologies ViewBinding Retrofit Coroutines MVVM

To Do List App is built in Kotlin using Material 3, Data Binding, Navigation Component Graphs, Room persistence library, Kotlin coroutines, LiveData, Dagger Hilt, and Notifications following MVVM Architecture.
To Do List App is built in Kotlin using Material 3, Data Binding, Navigation Component Graphs, Room persistence library, Kotlin coroutines, LiveData, Dagger Hilt, and Notifications following MVVM Architecture.

ToDoListApp ToDoList App demonstrates modern Android development with Hilt, Coroutines, LiveData, Jetpack (Room, ViewModel), and Material 3 Design bas

Tv-Movie - Android application Tv&Movie that uses TMDB API
Tv-Movie - Android application Tv&Movie that uses TMDB API

Tv&Movie This is an android application that shows lists of popular movies, popu

WatchStore Ecommerce app using MVVM, Kotlin, Firebase Firestore, Coroutines, Dagger Hilt
WatchStore Ecommerce app using MVVM, Kotlin, Firebase Firestore, Coroutines, Dagger Hilt

WatchStore Sanple App Like Ecommerce App Developed using Kotlin. Features used: Firebase Firestore Navigation Component. MVVM Architecture RecyclerVie

Finder Job simple app using (Retrofit , Dagger hilt , coroutines , navigation components)
Finder Job simple app using (Retrofit , Dagger hilt , coroutines , navigation components)

Job Finder I'm finished building a simple project Job Finder App technology used [dagger hilt, coroutines, navigation components, LiveData, Skelton pa

CoroutinesFlow and ViewModel Retrofit API - Practice with CoroutinesFlow, ViewModel and Retrofit API

Practice with Coroutines Flow, ViewModel and get data with Retrofit from two API

Wallpaper app made using Hilt, Retrofit, Room, Navigation Components, MVI, Coroutines, Flows, ViewModel, LiveData, Datastore Preference.
Wallpaper app made using Hilt, Retrofit, Room, Navigation Components, MVI, Coroutines, Flows, ViewModel, LiveData, Datastore Preference.

Android Picture Engine Wallpaper app made using Hilt, Retrofit, Room, Navigation Components, MVI, Coroutines, Flows, ViewModel, LiveData, Datastore Pr

Android Application built using MVVM + Retrofit + Hilt + Clean + Room to shown several movies from
Android Application built using MVVM + Retrofit + Hilt + Clean + Room to shown several movies from "The Movie DB" platform.

MovieHunter Android Application built using MVVM + Retrofit + Hilt + Clean + Room to shown several movies from "The Movie DB" platform. Contribution I

A quiz app built with trivia api. This app was built with mvvm architecture, dagger-hilt, retrofit, room database, and navigation components.
A quiz app built with trivia api. This app was built with mvvm architecture, dagger-hilt, retrofit, room database, and navigation components.

A quiz app built with trivia api. This app was built with mvvm architecture, dagger-hilt, retrofit, room database, and navigation components.

Owner
Taiki Suzuki
AbemaTV / University of Aizu 18th
Taiki Suzuki
Movie Info - MovieInfo app that recieves popular movies and allow the user to search for specific movie through the restapi

Movie_Info MovieInfo app that recieves popular movies and allow the user to sear

inderjeet yadav 3 Jun 8, 2022
A simple NewsApp built using Jetpack Compose, MVVM Architecture, Dagger Hilt and Kotlin Flow

NewsApp is simple App which uses NewsAPI to get top headlines for country you live in or you can search for a specific news. Focus of this app is to d

ElvisOperator 4 Aug 20, 2022
Small training project where dagger, dagger hilt and other components are used for clean architecture

LeagueNow ?? LeagueNow is a sample soccer team list Android application ?? built to demonstrate use of modern Android development tools - (Kotlin, Arc

Kevin Serrano 1 Oct 21, 2021
🦄 Android Pokedex-AR using ARCore, Sceneform, Hilt, Coroutines, Flow, Jetpack (Room, ViewModel, LiveData) based on MVVM architecture.

?? Android Pokedex-AR using ARCore, Sceneform, Hilt, Coroutines, Flow, Jetpack (Room, ViewModel, LiveData) based on MVVM architecture.

Jaewoong Eum 535 Dec 9, 2022
Simple Notes app demonstrates modern Android development with Hilt, Material Motion, Coroutines, Flow, Jetpack (Room, ViewModel) based on MVVM architecture.

Simple Notes app demonstrates modern Android development with Hilt, Material Motion, Coroutines, Flow, Jetpack (Room, ViewModel) based on MVVM architecture.

Aravind Chowdary 2 Sep 3, 2022
Shreyas Patil 2.1k Dec 30, 2022
Movie discovery app showcasing MVP, RxJava, Dagger 2 and Clean Architecture

MovieGuide ?? Refactoring in progress ??‍♀️ ⛏ ?? ??️ ?? ?? ?? Comments and new issues are welcome. ?? Currently not accepting external PRs that touch

Arun Sasidharan 2.6k Dec 25, 2022
Movo (Movie Information) is an android application to find out all the Movie Information and Details.

Movo About The Project Screen.Recording.2022-08-12.at.08.53.46_1.mp4 Movo (Movie Information) is an android application to find out all the Movie Info

Reihan Fatilla 4 Sep 28, 2022
🦁 A Disney app using transformation motions based on MVVM (ViewModel, Coroutines, Flow, LiveData, Room, Repository, Koin) architecture.

DisneyMotions A demo Disney app using transformation motions based on MVVM architecture. The motion system is included in the 1.2.0-alpha05 released m

Jaewoong Eum 1.4k Dec 16, 2022