Skip to content

sejun2/Pokedex-android-compose

Repository files navigation

PokeDex Android App

rec2.webm
Screenshot_20240909_031850 Screenshot_20240909_031909 Screenshot_20240909_031920

This is a toy project implementing a PokeDex using Android Jetpack Compose. The app follows Clean Architecture principles with MVVM (Model-View-ViewModel) pattern.

Architecture Overview

┌─────────────────────────────────────────────────────────────────┐
│                           Presentation Layer                    │
│  ┌─────────────────┐    ┌──────────────┐    ┌────────────────┐  │
│  │     Compose     │◄───│   ViewModel  │◄───│    UseCase     │  │
│  │    UI Components│    │              │    │                │  │
│  └─────────────────┘    └──────────────┘    └────────────────┘  │
│                                                   ▲             │
└───────────────────────────────────────────────────┼─────────────┘
                                                    │
┌───────────────────────────────────────────────────┼─────────────┐
│                            Domain Layer           │             │
│  ┌──────────────────┐    ┌───────────────────┐    │             │
│  │   Domain model   │    │    Repositories   │◄───┘             │
│  │                  │    │    (Interfaces)   │                  │
│  └──────────────────┘    └───────────────────┘                  │
│                                   ▲                             │
└───────────────────────────────────┼─────────────────────────────┘
                                    │
┌───────────────────────────────────┼─────────────────────────────┐
│                            Data Layer                           │
│  ┌──────────────────┐    ┌───────────────────┐                  │
│  │  Remote Data     │    │   Repositories    │                  │
│  │  Source (API)    │───►│  (Implementations)│                  │
│  └──────────────────┘    └───────────────────┘                  │
└─────────────────────────────────────────────────────────────────┘

Tech Stack

  • Jetpack Compose: Modern Android UI toolkit
  • Kotlin: Programming language
  • Coroutines: For asynchronous programming
  • Flow: For reactive programming
  • Hilt: Dependency injection
  • Retrofit: HTTP client for API calls
  • Gson: JSON parsing
  • Coil: Image loading library
  • Android Architecture Components: ViewModel

Project Structure

The project is divided into three main layers:

  1. Presentation Layer: Contains UI components (Composables) and ViewModels.
  2. Domain Layer: Contains business logic, use cases, and repository interfaces.
  3. Data Layer: Implements the repository interfaces and manages data sources.

Features

  • Display a list of Pokémon
  • Show detailed information about each Pokémon
  • Filter Pokémon list
  • Fancy animations

Setup

  1. Clone the repository
  2. Open the project in Android Studio
  3. Build and run the app on an emulator or physical device

Design resources

Figma: https://www.figma.com/design/3UF026k8MyMRpTeLMOv2CF/Pok%C3%A9dex-(Community)?node-id=314-3&node-type=CANVAS&t=MzsO5qUrLmBzG06H-0

About

A Pokedex application built with Jetpack Compose

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages