https://github.com/chohohee/android-clean-architecture-mvvm
Clean Architecture MVVM Pattern in Android with Use Cases
https://github.com/chohohee/android-clean-architecture-mvvm
android clean-architecture coroutines-flow hilt jetpack multi-module mvvm offline-first paging pokemon room
Last synced: 3 months ago
JSON representation
Clean Architecture MVVM Pattern in Android with Use Cases
- Host: GitHub
- URL: https://github.com/chohohee/android-clean-architecture-mvvm
- Owner: chohohee
- Created: 2024-11-06T00:10:49.000Z (8 months ago)
- Default Branch: main
- Last Pushed: 2025-01-16T03:37:05.000Z (5 months ago)
- Last Synced: 2025-01-16T04:35:35.209Z (5 months ago)
- Topics: android, clean-architecture, coroutines-flow, hilt, jetpack, multi-module, mvvm, offline-first, paging, pokemon, room
- Language: Kotlin
- Homepage:
- Size: 52.1 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Clean Architecture MVVM
Clean Architecture MVVM Pattern in Android with Use Cases
### Preview
| EN | KO | JA |
|------------------------------|------------------------------|------------------------------|
|  |  |  |[](https://github.com/chohohee/android-clean-architecture-mvvm/raw/main/preview/app-release.apk)
### Features
- List of all Pokemon
- View Pokemon card details
- Localization of name attribute
- Offline First### Architecture
- [Clean Architecture](https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html)
- MVVM (Model-View-ViewModel)
- Repository Pattern
- Multi-Module:
```
root
--- presentation
--- domain
--- data
--- local
--- remote
```### Libraries
- [Kotlin](https://kotlinlang.org/)
- [Coroutines](https://github.com/Kotlin/kotlinx.coroutines) + [Flow](https://kotlin.github.io/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines.flow/) for aynsc
- [Hilt](https://dagger.dev/hilt/) for dependency injection
- [Retrofit2 & OkHttp3](https://github.com/square/retrofit) for rest api
- [Serialization](https://kotlinlang.org/docs/serialization.html) for parse response
- [JetPack](https://developer.android.com/jetpack)
- data binding, lifecycle, navigation, paging, room, view model, palette
- [Glide](https://github.com/bumptech/glide) for image loading
- [Lottie](https://airbnb.io/lottie/) for image animation### API
The API used in this project is [PokéAPI](https://pokeapi.co/) and the base url is as follows:
```
https://pokeapi.co/api/v2
```#### Endoint Used
| Method | Endpoint | Usage |
| ------ | --------------------------------- | ---------------------------------- |
|GET | `/pokemon?offset={0}&limit={100}` | Get All Pokemon Information Paging |
|GET | `/pokemon-species/{bulbasaur}` | Get localized Pokemon names |
|GET | `/pokemon/{bulbasaur}` | Get Pokemon attribute information |
|GET | `/type/{1}` | Get localized Pokemon attributes |