Skip to content

Pokédex app developed on top of the pokeapi.co REST API, with Retrofit, Room, Palette, Glide, Coroutines, Hilt and more, in MVVM architecture.

Notifications You must be signed in to change notification settings

jfransp/Pokedex

Repository files navigation

Pokedex

Pokédex app developed on top of the pokeapi.co REST API, with Retrofit, Room, Palette, Glide, Coroutines, Hilt and more, in MVVM architecture.

Libraries and Implementations

Room

Persistence library

Retrofit

Network requests

Paging 3

Pagination of fetched data

Coroutines

Concurrency tasks

Dagger Hilt

Dependency injection

Glide

Loading online images

Palette

Custom and dynamic collor settings for views based on images

GSON

Json parsing and converting

SafeArgs Plugin

For passing basic data between fragments on navigation.

Progress View

Custom view developed by skydoves (from whom I also got inspiration for the detail screen layout).

Some minor implementations

Recycler Views, Bottom Navigation, Swipe to Delete (with undo snackbar), Database Type Converters for Room, LiveData

PokeAPI

This app was developed on top of the pokeapi.co free to use pokemon data REST Api.

Architecture

Basic MVVM architecture with repository. Remote mediation for detail screen was handled within the viewmodel itself; dependencies were injected with Hilt; each fragment has it's own viewmodel and some navigation dependent logic was implemented on the MainActivity itself.

There's still room for improvement as always but it works (:

Future improvements

-Handling no network response on main pokedex screen (some message, retry button, etc); for now it just stays blank in case of no internet connection.
-The main pokedex screen items constraints and sizes have to be fixed, it gets messed up on some devices.
-I might need to refactor some functions for setting view colors due to low compatibility (there might be problems running the app on API Levels 27 or lower, which is not a good number given the current distribution statistics).
-Adding loadstate listeners for fragments with circular progressbar.
-Adding comments on code for clarity and educational purposes.

App developed for the VentureLabs selective process code challenge.

About

Pokédex app developed on top of the pokeapi.co REST API, with Retrofit, Room, Palette, Glide, Coroutines, Hilt and more, in MVVM architecture.

Topics

Resources

Stars

Watchers

Forks

Languages