fakhrymubarak / Pokedex

🗡️ Pokedex demonstrates modern Android development with Hilt, Material Motion, Coroutines, Flow, Jetpack (Room, ViewModel) based on MVVM architecture.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Pokedex

Apps for technical assesment Mobile Developer PhinCon.

Use Cases

  1. Pokemon List Page

    • Primary Scenario
      • Execute “Get List Pokemon” from PokeAPI
      • Use Paging to load items
      • Show Loading using shimmer while waiting response from the API
      • Show list Pokemon
    • Negative Scenario
      • Invalid Data or (4xx - 5xx)
        • Show toast error
      • No Connectivity
        • Show toast error
  2. Pokemon Detail

    • Primary Scenario
      • Execute "Get Pokemon Details" from PokeAPI
      • Show button catch pokemon
    • Negative Scenario
      • Invalid Data or (4xx - 5xx)
        • Show toast error
      • No Connectivity
        • Show toast error
  3. Catch Pokemon

    • Primary Scenario (Success Catch)
      • User pressed button catch pokemon
      • System try to catch pokemon with probability 50%
      • System delay 3000 while animating the pokeball (optional)
      • Show bottom sheet success and text input nickname pokemon.
      • Put the pokemon to Local Database.
    • Negative Scenario (Failed Catch)
      • Show toast failed catch
      • Show failed to catch pokemon animation (optional)
  4. My Pokemon List (Catches Pokemon)

    • Primary Scenario
      • Execute "Get Pokemon Details" from PokeAPI
      • Use Paging to load items
      • Show list Pokemon
    • Negative Scenario
      • Empty Pokemon
        • Display Empty List Placeholder
        • Show toast error
  5. Release pokemon

    • Primary Scenario
      • User pressed release pokemon
      • Delete pokemon from Local Database
      • Update my pokemon list.
    • Negative Scenario
      • Empty Pokemon
      • Invalid Data or (4xx - 5xx)
        • Show toast error

Tech Stack

  • Minimum Android SDK level 24
  • Kotlin based, Coroutines
    • Flow for asynchronous.
  • Architecture
    • MVVM Design Pattern
    • Repository Pattern Implementation
    • Android Architecture Components (Data - Domain - Presentation)
  • Jetpack
    • Lifecycle: Observe Android lifecycles and handle UI states upon the lifecycle changes.
    • ViewModel: Manages UI-related data holder and lifecycle aware. Allows data to survive configuration changes such as screen rotations.
    • ViewBinding: Binds UI components in your layouts to data sources in your app using a declarative format rather than programmatically. database access.
    • Dagger-Hilt: for dependency injection.)
  • Retrofit2 & OkHttp3: Construct the REST APIs, and interface to handle network payload for Android.
  • Timber: A logger with a small, extensible API.

About

🗡️ Pokedex demonstrates modern Android development with Hilt, Material Motion, Coroutines, Flow, Jetpack (Room, ViewModel) based on MVVM architecture.

License:Apache License 2.0


Languages

Language:Kotlin 100.0%