Skip to content

I had began learning Android App development since Aug 2021. This is my first Android app project for practice development.

License

Notifications You must be signed in to change notification settings

marty-suzuki/MyFirstAndroidPractice

Repository files navigation

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
  ┃  ┃  ┗ MovieSearchUiLogicImpl.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

About

I had began learning Android App development since Aug 2021. This is my first Android app project for practice development.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages