With this demo app you may search movies by name, see the details of it, or mark it as a favorite one. Moreover, you will find a section listing favorite movies you chose.
graph LR
A[Navigation Drawer] --> B[Find Movie Screen]
A --> G
B -- input search --> C{Any Result?}
C -- Yes --> D[Listing Movies Screen]
C -- No --> E[Empty Screen]
D -- select --> F[Detail Screen]
F -- add to favorites --> F
G[Favorite Screen]
Jetpack | Kotlin & Quality | Dependency Management | Others | Testing |
---|---|---|---|---|
Compose |
Coroutines |
Version Catalogs |
Landscapist |
MockK |
WorkManager |
Asynchronous Flow |
TOML |
Material 3 |
ComposeTestRule |
Hilt |
Detekt |
Gradle Kotlin DSL |
Retrofit |
|
Room |
Ktlint |
OkHttp |
||
Paging |
Timber |
|||
Navigation |
Lottie |
Creational | Structural | Behavioral |
---|---|---|
Singleton | Facade | Command |
Chain of Responsibility | ||
State |
The Domain Model pattern is shown here in a very simple way.
This project is trying to follow the ideas explained in Domain-Driven Design book of Eric Evans.
Yet, there are only a few entities, so far, such as: Movie
and TomatoMeter
.
It's strongly recommended to read Clean Architecture book of Robert C. Martin
for a better understanding and avoiding misconceptions out there.
As a glimpse, read Clean Code blog: https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html
- π Kotlin Docs: https://kotlinlang.org/docs/home.html
- π Kotlin Release: https://github.com/JetBrains/kotlin/releases
- π£ Kotlin Blog: https://blog.jetbrains.com/kotlin/
- π₯ Kotlin Youtube Channel: https://www.youtube.com/channel/UCP7uiEZIqci43m22KDl0sNw
- π€ Kotlin Reddit: https://www.reddit.com/r/Kotlin/
- π€― Kotlin StackOverflow: https://stackoverflow.com/questions/tagged/kotlin
- πΊοΈ Kotlin Community: https://kotlinlang.org/community/
- π Platform Architecture: https://developer.android.com/guide/platform
- π©βπ»π¨βπ» Android Developers: https://developer.android.com/
- Android Jetpack: https://developer.android.com/jetpack
- Sunflower: https://github.com/android/sunflower
- Compose Samples: https://github.com/android/compose-samples
- Droidcon: www.droidcon.com
- Android Developers: https://www.youtube.com/channel/UCVHFbqXqoYvEWM1Ddxl0QDg
For more samples in this series of Android Development, please, feel free to check them. Each one of them cover a specific topic.
- Modularization by layers. Skills: MVI, RxJava.
π https://github.com/4mr0m3r0/movies-mvi-sample - Modularization by features. Skills: MVI, Coroutines, Flow.
π https://github.com/4mr0m3r0/movies-modularization-sample - Implementing a Design System. Skills: Jetpack Compose, Atomic Design Methodology.
π https://github.com/4mr0m3r0/atomic-design-sample - Android Services. Skills: Services, Broadcast Receivers, Content Providers.
π https://github.com/4mr0m3r0/android-services-sample