A list of the Star Wars movies with the most recent movie being displayed first. When selecting a movie, it bring up their information such as release year, director and producer. A separate section displays the list of the characters appearing in that movie. I used Swapi API (https://swapi.co/api/) for the data.
Project features:
- 100% Kotlin
- Android Jetpack (ViewModel, LiveData, Lifecycle)
- Clean architecture
- Reactive Programming (RxJava and LiveData)
- Dagger2 Dependency injection (service locator)
- Unit and UI tests (In progress)
- Android Studio 3.5.3
- Kotlin Version 1.3.40.
- Google + JetBrains (Pretty standard default stack nowadays)
- Dependency injection (Dagger is easy to use library for managing dependencies, it is perfect for small/mid size projects_)
- Retrofit2 (Retrofit is a de-facto standard nowadays)
- Tests (I like Mockk for mocking, prefer it over Mockito. Also found recently about Kakao, which provides a nice DSL over Espresso, which makes writing and reading UI tests more pleasant)
- Gradle (Nice way to keep all library dependencies in one centralised place)
MVVM stands for “Model View ViewModel”, and it’s a software architecture often used by Apple developers to replace MVC. Model-View-ViewModel (MVVM) is a structural design pattern that separates objects into three distinct groups:
- Models hold application data. They’re usually structs or simple classes.
- Views display visual elements and controls on the screen. They’re typically - subclasses of UIView.
- View models transform model information into values that can be displayed on a view. They’re usually classes, so they can be passed around as references.
- Improve UI for good user interface, Keep the interface simple.
- Cover edge case in Unit test
- Continuous integration (Setup basic integration, it runs static analysis tools, unit tests, and assembles builds. Was thinking to run UI tests as well, but the setup is a little bit tricky and due to time constraints, have to postpone the idea)
- Navigation