Movies
Movies is a simple project to study and play with some android components, architecture and tools for Android development.
Tech Stack
This project uses feature modularization architecture. The movies feature module uses MVI as software design patter for presentation layer, and the actors feature module uses MVVM. You can checkout how was the migration from MVVM to MVI in this pull request.
Medium blogs
I write about the process of coding this project in the following blogs:
- Understanding MVVM
- Understanding and making unit & instrumented tests.
- The ABC of modularization
- Create a safe retrofit calls extension part I, II, & III
- Honest thoughts on Jetpack Navigation library in modularized projects
- Integrating Paging3
Development setup
You require the latest Android Studio 4.2 (stable channel) to be able to build the app. For the compose branch use the latest Android Studio on the canary channel.
Libraries
- Application entirely written in Kotlin
- Asynchronous processing using Coroutines
- Uses Koin for dependency injection
- Uses Github Actions
- Uses Paging3, see this PR.
- Uses JUnit4, Espresso, Fragment Tests among other libraries for unit & instrumented tests.
API keys
You need to supply API / client keys for the service the app uses.
Once you obtain the key, you can set them in your ~/local.properties
:
# Get this from TMDb
tmdb.key=<insert>
📃
License
Copyright 2021 Christopher Elias
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.