Skip to content

🐾 Pokedex applies modern Android development with a multi-module structure inspired by Clean Architecture, along with Hilt, Coroutines, Flow, and Jetpack.

Notifications You must be signed in to change notification settings

orioonyx/PokeDex

Repository files navigation

PokeDex 🐾

License Platform

A Pokemon encyclopedia application developed with Kotlin, built on a multi-module structure based on Clean Architecture and applying the MVVM design pattern. PokeDex leverages Jetpack components, Room, and Flow to provide an intuitive and modularized user experience.

Features Overview 🛠️

  • Multi-Module Based on Clean Architecture

    • Structured with app, data, and domain modules, ensuring clear separation of responsibilities while maximizing maintainability and scalability.
  • MVVM Design Pattern

    • Decouples the View and ViewModel for better organization of UI logic and business rules.
  • Offline-First Approach

    • Data persistence using Room for Pokémon details and caching.
  • Jetpack Components

    • ViewModel: Manages UI-related data lifecycle-aware for efficient state management.
    • Room: Provides a robust local database with type-safe queries.
    • LiveData: Observes changes in UI-related data seamlessly.
    • Palette: Extracts prominent colors from images for dynamic UI design.
  • Data Binding & View Binding

    • Simplifies UI updates by directly binding UI components to data and reduces boilerplate code for view references.
  • Reactive Programming

    • Powered by Kotlin Coroutines & Flow for handling asynchronous tasks and state management efficiently.
  • Networking

    • Retrofit & OkHttp: Fast and reliable networking stack for API communication.
    • Moshi: JSON parsing library integrated with Retrofit for seamless data handling.
  • Dependency Injection

    • Using Hilt for scalable and testable dependency injection.
  • Image Loading

    • Glide: Efficient image loading and caching library for handling Pokémon images.
  • Logging

    • Timber: Lightweight and extensible logging library for debugging.
  • Comprehensive Testing

    • JUnit, Kotest, MockK: For unit testing.
    • Espresso: For UI testing.
    • Hilt Testing: Simplified dependency injection in tests.
    • Coroutine Testing: For verifying suspend functions and flows.

Architecture ✨

Preview 🚀

Open API 🌍

PokeDex uses [PokeAPI](https://pokeapi.co/) for fetching data related to Pokémon.

License 📜

Designed and developed by 2024 kyungeun noh

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

About

🐾 Pokedex applies modern Android development with a multi-module structure inspired by Clean Architecture, along with Hilt, Coroutines, Flow, and Jetpack.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages