Cocktail is a fully kotlin written android app based on modularized MVVM design architecture.
Data Source:
Tech Stack Used:
- Coroutines - A concurrency design pattern library
- Flow - Built on top of coroutines and is stream of data that can be computed asynchronously
- Hilt - Dependency Injection framework
- Paging V3 - Pagination
- View Binding - View Binding
- OkHttp3 - Network interceptor
- Retrofit - HTTP client
- Glide - Loading images
- Timber - Log
- Gson - JSON library
- Lottie - Vector animation library
- Kotlin DSL - Alternative syntax to the Groovy DSL
- Detekt - Static code analysis for Kotlin
- Gradle Doctor - Gradle build scan plugin
- Navigation - Navigate through the app (including nested navigation graphs)
- LeakCanary - Memory leak detection
- Chucker - An HTTP inspector for Android & OkHTTP
- StrictMode - A developer tool which detects things you might be doing by accident
- Dark/Light Theme - Support dark/light themes
- DataStore - Data storage solution that allows you to store key-value pairs or typed objects
Modules
- App Module: Application Class and Dependency Injection
- Data Module: Remote Paging Data Source and Repository
- Domain Module: Use Cases
- Presentation Module: Main Activity with Datastore and Bottom Nav Bar directing to following user flows:
- Non Alcoholic Cocktails: List and Detail Fragment (With Save Feature)
- Alcoholic Cocktails: List and Detail Fragment (With Save Feature)
- Saved Cocktails: List Fragment
Screenshots