A demo Disney app using transformation motions based on MVVM architecture.
The motion system is included in the 1.2.0-alpha05 released material version.
## Tech stack & Open-source libraries - Minimum SDK level 21 - 100% [Kotlin](https://kotlinlang.org/) based + [Coroutines](https://github.com/Kotlin/kotlinx.coroutines) + [Flow](https://kotlin.github.io/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines.flow/) for asynchronous. - JetPack - Lifecycle - dispose observing data when lifecycle state changes. - ViewModel - UI related data holder, lifecycle aware. - Room Persistence - construct database. - Architecture - MVVM Architecture (View - DataBinding - ViewModel - Model) - [Bindables](https://github.com/skydoves/bindables) - Android DataBinding kit for notifying data changes to UI layers. - Repository pattern - [Koin](https://github.com/InsertKoinIO/koin) - dependency injection - Material Design & Animations - [Sandwich](https://github.com/skydoves/Sandwich) - construct lightweight network response interfaces and handling error responses. - [Retrofit2 & Gson](https://github.com/square/retrofit) - constructing the REST API - [OkHttp3](https://github.com/square/okhttp) - implementing interceptor, logging and mocking web server - [Glide](https://github.com/bumptech/glide) - loading images - [BaseRecyclerViewAdapter](https://github.com/skydoves/BaseRecyclerViewAdapter) - implementing adapters and viewHolders - [WhatIf](https://github.com/skydoves/whatif) - checking nullable object and empty collections more fluently - [Bundler](https://github.com/skydoves/bundler) - Android Intent & Bundle extensions that insert and retrieve values elegantly. - [Timber](https://github.com/JakeWharton/timber) - logging - Ripple animation, Shared element container transform/transition ## MAD Score ![summary](https://user-images.githubusercontent.com/24237865/103010250-58eaaa00-457b-11eb-90d6-e62beda756b0.png) ![kotlin](https://user-images.githubusercontent.com/24237865/103010255-5a1bd700-457b-11eb-8959-0a7c4a2b4bda.png) ## Unit Testing Frameworks Unit Tests verify the interactions of viewmodels between repositories and dao & REST api requests. - [Robolectric](https://github.com/robolectric/robolectric) - Robolectric is the industry-standard unit testing framework for Android. - [Mockito-Kotlin](https://github.com/nhaarman/mockito-kotlin) - a small library that provides helper functions to work with Mockito in Kotlin. ![screenshot483387955](https://user-images.githubusercontent.com/24237865/79007747-c47c1b00-7b96-11ea-95c0-f6579f2d865b.png) ## Contents Credits All copyrights of the contents, concepts, and phrases used for this open-source project belong to [The Walt Disney Company](https://www.disneyplus.com/). ## Find this repository useful? :heart: Support it by joining __[stargazers](https://github.com/skydoves/DisneyMotions/stargazers)__ for this repository. :star: