Skip to content

Tarik-B/pokechu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

76 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Pokéchu

Yet Another Pokédex App, without spoilers

Features

  • Pokedex selection by region or game
  • Hidden undiscovered Pokémons name/thumbnail
  • Toggleable captured/discovered statuses
  • Filter captured/discovered Pokémons only
  • Search by names (any language)
  • Quick search by ID (national or local)
  • Basic information sheet (types, height, weight)
  • Evolution tree (vertical or horizontal)
  • Data language (for Pokémon names, locations, etc.) disctinct from app language
  • Day/night (light/dark) modes

Todo

Major:

  • Add Pokedex official description(s?) in details
  • Add Pokémon cries (trigger on opening details?)
  • Pokémon variants (Alola, mega evolutions, gigamax, etc.)
  • Filter main list by types/etc.
  • Add splash screen
  • Add open sources notices/licences
  • List of games in Pokémon details
  • Filter by games
  • Retrieve "has evolution tree" data

Minor:

  • Merge all data filtering code in viewmodels into single sql queries
  • Find a way to display all searched fields of Pokémon when searching
  • Auto close keyboard when clicking on main list while searching
  • Decrease height of list (not grid) items to make list view actually useful (display more items than grid view)
  • Remove all localized names from db
  • Close bottom sheet by scrolling down the scrollview while already at top
  • Toggle captured from details activity
  • Wrong return shared element transition from details activity after changing selected pokemon in details

Known bugs

  • "Follow system" theme follows system theme as it was on app launch: #1
  • List view holders not fading after turning on "show undiscovered info"
  • Details thumbnail/infos not fading
  • Tree view holders not fading either
  • Bottom sheet not refreshed on data language changes
  • Bottom sheet pages sync loading
  • Bottom sheet overlaps bottom (and thus also the end) of main list
  • Main activity something refreshes (loading overlay + list transition animation) when coming back from details(/settings?) for no reason
  • Captured/discovered count icons not vertically centered
  • Everything that works

Development

Repository hierarchy

Folder Content
assets/ mostly original svgs of Google icons
db/ SQL code and samples
parser/ Pokémon data parser/exporter written in Python 3.10
parser_output/ data parser output (.sqlite, .kt, .xml, etc.) to be used in app
pokechu/ Android app written in Kotlin
screenshots/ this readme's screenshots

Parser

Just launch main.py. It parses Poképedia pages and PokéAPI data and writes data to output/ folder as follows:

Output Content
db.sqlite sqlite database containing Pokémon, types, evolutions and regions data
Kotlin files one for each enum used in parser/database/app (to keep indexes in sync)
images/ folder downloaded thumbnails of Pokémon, items, etc. (some were manually pre-downloaded)
values*/ folders localized names of Pokémon, items, regions, etc. as Android XML string files

Pokéchu Android app

Kotlin Android application reading Pokémon data from SQLite database, assets images and XML strings

Copy parser output data as follows:

Source Destination
db.sqlite app/src/main/assets/
Kotlin files app/src/main/java/fr/amazer/pokechu/enums/
images/ folder app/src/main/assets/
values*/ folders app/src/main/res/

Code hierarchy:

Folder Content
data/ data repositories classes as per Android MVVM architecture
database/ Room database, entities and daos
enums/ enumerations values for regions, items, etc. generated by Python parser
managers/ managers classes, including shared preferences manager and observer classes
ui/ activities, fragments, etc.
utils/ static utilitary functions
viewmodel/ MVVM viewmodels classes

Gallery

Category Images
Main Pokemon list:
Regions/games panel:
Search:
Details/evolution tree:
Settings:

Special thanks

to Poképédia, Bulbapedia and PokéAPI contributors and maintainers!

Credits

Pokémon © 2002-2023 Pokémon. © 1995-2023 Nintendo/Creatures Inc./GAME FREAK inc. TM, ® and Pokémon character names are trademarks of Nintendo