ExplicitArchitecture

Simplifies project structuring using Domain-Driven Design principles, offering interfaces, classes, and an event bus for efficient component decoupling and clearer code organization.

Android JVMJVMKotlin/Native
GitHub stars2
Dependents1
OSS Health
LicenseMIT License
Creation dateover 1 year ago

Last activity5 months ago
Latest release1.4.0 (8 months ago)

Explicit Architecture

[!TIP] Want to chat live with me? Join me on Discord server.

Explicit Architecture is a Kotlin Multiplatform library that makes it easier to structure a project by following the principles and concepts of DDD.

Get started with our 📚 installation guide and example project,

Table of contents

Layers

Domain: The domain layer contains the business logic of the application. It is the heart of the application and contains the aggregate roots, entities, value objects, repositories and domain events.

Application: The application layer contains the application services and use cases that orchestrate the domain objects to perform the business logic. It is the entry point to the domain layer.

Infrastructure: The infrastructure layer contains the implementations of the repositories and other services that interact with frameworks. It is the driven part of the architecture.

Presentation: The presentation layer contains the components the users interact with to use the application. It is the driving part of the architecture.

Framework: The framework layer contains the implementations of the external frameworks and tools used in the application.

Features

The library provides a set of interfaces and classes to structure a project following the principles. Extend your classes to make your code more explicit and easier to understand.

The library offers an event bus solution to decouple the components of the application. Built on top of coroutines, it allows you to publish and subscribe to events in a simple and efficient way.

Releases

  • The changelog provides a summary of changes in each release.

Installation

Add explicitarchitecture to your build.gradle dependencies.

dependencies {
    implementation 'io.github.giovanniandreuzza:explicitarchitecture:1.3.5'
}

Example

The Nimbus Project demonstrates how to integrate and use ExplicitArchitecture in a project.

Android JVMJVMKotlin/Native
GitHub stars2
Dependents1
OSS Health
LicenseMIT License
Creation dateover 1 year ago

Last activity5 months ago
Latest release1.4.0 (8 months ago)

Explicit Architecture

[!TIP] Want to chat live with me? Join me on Discord server.

Explicit Architecture is a Kotlin Multiplatform library that makes it easier to structure a project by following the principles and concepts of DDD.

Get started with our 📚 installation guide and example project,

Table of contents

Layers

Domain: The domain layer contains the business logic of the application. It is the heart of the application and contains the aggregate roots, entities, value objects, repositories and domain events.

Application: The application layer contains the application services and use cases that orchestrate the domain objects to perform the business logic. It is the entry point to the domain layer.

Infrastructure: The infrastructure layer contains the implementations of the repositories and other services that interact with frameworks. It is the driven part of the architecture.

Presentation: The presentation layer contains the components the users interact with to use the application. It is the driving part of the architecture.

Framework: The framework layer contains the implementations of the external frameworks and tools used in the application.

Features

The library provides a set of interfaces and classes to structure a project following the principles. Extend your classes to make your code more explicit and easier to understand.

The library offers an event bus solution to decouple the components of the application. Built on top of coroutines, it allows you to publish and subscribe to events in a simple and efficient way.

Releases

  • The changelog provides a summary of changes in each release.

Installation

Add explicitarchitecture to your build.gradle dependencies.

dependencies {
    implementation 'io.github.giovanniandreuzza:explicitarchitecture:1.3.5'
}

Example

The Nimbus Project demonstrates how to integrate and use ExplicitArchitecture in a project.