Skip to content

JetpackCompose | Kotlin | MVVM | Room | Coroutines | StateFlow

Notifications You must be signed in to change notification settings

diegaspar/PokeApp

Repository files navigation

PokeApp

Android Jetpack Compose Pokemon App based on the api https://pokeapi.co/. Getting all the pokemons in paginated mode, and going to the detail of every pokemon itself, persisting the data of the detail of each Pokemon.

In the detail of the Pokemon, after loading the image of the pokemon, using Palette to determine the dominant color and applying it to the background/and types of the Pokemon.

Online mode.


Offline mode.

Clean Architecture based on :

  • Jetpack Compose
  • ViewModel
  • Use Case
  • Repository
  • DataSource

Main libraries used


Modules Architecture

App

App contains Application and the MainActivity and knows all the other modules, it is in charge of initialising Koin. No other module knows App. App controls the Navigation Compose of the project.

buildSrc

Everything related to Dependencies and Kotlin DSL implementation

core-base

Used in the features of the app. Contains everything related to :

  • Api and retrofit implementation
  • Persistence and its implementation
  • Domain
  • DataSources

core-ui

Everything related to the common Compose components UI that can be reusable.

features

  • pokemonList > Module related to the list of pokemons (Initial Screen) [Composables-States-ViewModel-UseCase]
  • pokemonDetail > Module related to the detail of pokemon (Detail Secondary Screen) [Composables-States-ViewModel-UseCase] , it also persists the data in Room.

MUST TODO IN FUTURE

  • Clean and unify the gradle.kts files
  • Add UI tests

About

JetpackCompose | Kotlin | MVVM | Room | Coroutines | StateFlow

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages