Skip to content

Feature based modular Pokedex app built with GraphQL, Jetpack Compose, Hilt, Paging 3, and more...

Notifications You must be signed in to change notification settings

emertozd/PokeQL

Repository files navigation

🚧 Under construction 👷‍♀️⛏👷🔧️👷🔧 🚧

PokeQL

PokeQL

Feature based modular Pokedex app built with GraphQL, Jetpack Compose, Hilt, Paging 3, and more...

Tech Stack

Features

Screenshots

PokeQL PokeQL

Architecture

Overview of a Feature Module

Feature

Shared Module

Kotlin module that contains the code for starting the feature module. Usually the code consists of a communicator interface and a data class for the parameters. The wiring module will bind them later so we can inject our communicator without knowing the implementation details thanks to this dependency inversion practice.

Domain Module

Kotlin module that contains the business logic of the feature. Usually it contains repository and use case interfaces. The actual implementation of them will be in the data module.

Data Module

Android Library module that contains the implementation of the domain module. Usually it contains repository and use case implementations.

UI Module

Android Library module that contains Screens, Viewmodels etc. of the feature. This module contains the implementation of communicator interface that defined in the shared module.

Impl-Wiring Module

Android Library module that contains the dependency injection setup.

Fake Module

Android Library module that contains the mocked use case implementations and dummy datas.

Fake-Wiring Module

Android Library module that contains the dependency injection setup for the fake module.

Demo Module

Android Application Module that contains the demo app of the feature. Usually it consists of a single activity that navigates to the feature module with mock datas.

PokeQL Overview

PokeQL

About

Feature based modular Pokedex app built with GraphQL, Jetpack Compose, Hilt, Paging 3, and more...

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages