Skip to content

bth-dipt-teaching/pokedex

Repository files navigation

Pokédex

Pokédex application developed with Flutter.

This application is inspired by skydoves/Pokedex application for Android.

Getting Started

This project is a starting point for a Flutter application.

Here are a few resources to get you started if this is your first Flutter project:

For help getting started with Flutter development, view the online documentation, which offers tutorials, samples, guidance on mobile development, and a full API reference.

📱 Features

  • View for Pokémon List
  • View for Pokémon Details
  • Light/Dark Theme

📸 Screenshots

GIF

Dark Theme

Overview Detail

Light Theme

Overview Detail

Architecture

graph TB
    subgraph Presentation
        subgraph Home
            subgraph Views
                HomeScreen <-->|navigate to| PokemonDetailsScreen
            end
            subgraph Widgets
                PokemonBaseStatsIndicators
                MetricDetails
                ValueIndicator
                PokemonCard
            end
            HomeScreen -->|uses|PokemonCard
            PokemonDetailsScreen -->|uses|MetricDetails
            PokemonDetailsScreen -->|uses|ValueIndicator
            PokemonDetailsScreen -->|uses|PokemonBaseStatsIndicators
        end
        subgraph Splash
            SplashScreen -->|navigate to| HomeScreen
        end
    end
    subgraph Domain
        PokemonRepository -->|config based on| PokemonListParams
    end
    subgraph Data
        subgraph Data Source
            PokemonDataSource
        end
        subgraph Models
            Pokemon
            PokemonList 
            PokemonList --> Pokemon
            PokemonDetails 
            PokemonDetails --> PokemonStats
            PokemonDetails --> PokemonType
            PokemonStats --> Stats
            PokemonType --> Types
        end
        PokemonDataSource ---|parse into model|PokemonList
        PokemonDataSource ---|parse into model|PokemonDetails
    end
    PokemonDataSource -->|HTTP GET|API[(Pokemon API)]
    HomeScreen <--> PokemonRepository
    PokemonDetailsScreen <--> PokemonRepository
    PokemonRepository -->|request data|PokemonDataSource
Loading

Folder Structure

The folder structure of this project is as follows:

pokedex/
├── android/
├── assets/
├── ios/
├── lib/
│   ├── app.dart     <-- all the application level configurations are defined here
│   ├── main.dart    <-- starting point of the application
│   ├── app/         <-- all the application level configurations are defined, e.g., routes, title, orientation etc.
│   │   ├── config/
│   │   ├── dependency_injection/
│   │   ├── helpers/
│   │   ├── service_result/
│   │   └── services/
│   │       └── api/
│   ├── features/          <-- all features are represented as a subfolder
│   │   ├── home/          <-- feature 'home' screen
│   │   │   ├── data/            <-- a feature's data layer, includes data source (either local or remote)
│   │   │   ├── domain/          <-- a feature's domain layer, includes repository and params 
│   │   │   └── presentation/    <-- a feature's presentation layer, includes widgets and screen
│   │   └── splash/              <-- feature 'splash' screen
│   │       └── presentation/
│   └── src/                     <-- all application level constants, extensions and themes
│       ├── constants/           <-- all the application level constants here, e.g., baseURLs
│       ├── extensions/
│       └── res/                 <-- all themes and colors
│           ├── color_scheme/
│           └── theme/
└── test/

Build and Run

Go to the project root and execute the following command to get the required dependencies:

flutter pub get

To run the project as an Android app, start the Android emulator and then run the following:

flutter run

To build an Android APK run the following:

flutter build apk

Packages & Tools Used

External data source:

License

Copyright © 2023 Enoch Aikpokpodion

This work (source code) is licensed under MIT.

About

Pokédex mobile application created in Flutter

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •