1 min read

Modules structure

The Android PoqSDK is composed of many modules and there are 6 main types: component, feature, core, platform, testing, and integrations modules.

Component module

A component module gathers the domain and data layer of a given feature. You should interact with a component module via the actions exposed with the use cases.

Feature module

A feature module contains the presentation layer of a feature and it can depend on 1 or multiple component modules. For example, product detail feature module depends on the product detail component module, but also on the cart component since it requires the action of "add to cart".

Core modules

The core modules, core feature and core component, contain common logic and dependencies for all the other modules. In the core modules, among many other, you can find the logic related to the CountryConfig and the User.

Platform module

The platform module acts as a glue module including all the components and features modules. The platform module fills the gaps between modules providing the navigation between features, initialising the dependency injection with the dependency injection modules exposed from each module, and creating the database from the DAOs of each module.

Testing modules

The Android PoqSDK also exposes testing modules with common testing dependencies and helper classes to make your testing easier. There are 3 testing modules, one per each kind of test supported: unit, integration, and UI.

Integrations modules

The Android PoqSDK also provides optional 3rd party integrations which are included in their own module. Click here to learn more about the supported integrations.