Clean

Pub package publisher

An opinionated list of modules and components for implementing Clean Architecture. Now before, you shake your head, saying something like - "an architecture can be a package", know that it is the same reason why this not Clean Architecture. It is a suite of components that help you to implement one of the many variations of textbook Clean Architecture.

These modules are here mainly for inspiration, and to simplify the life for those who know and would like to implement aspects of clean architecture in their project. If you decide to use this package make sure you understand what Clean Architecture is and use your judgement.

These modules will not turn your codebase into clean code. In fact, it may have the opposite effect. If you couple your code to this package, you are essentially being bound by decisions made by the authors. This will work well for when things work, you have no need to deviate from the path that this package draws.

When you see an even greater need to do all things cleanly, simply, and with 100% control, we suggest not using this package at all.

Features

  • Common modules and components

    • A clean model interface
    • Initial app models
    • App Model interface
    • App Model interface
    • Response interface
      • Error interface
      • Success interface
    • Request interface
    • Interactor interfaces
      • Input interface
      • Output interface
    • Interactor Mixins
      • Response builder mixin
  • An App modules and component

Getting started

Add this package to dependencies from pub.dev, and begin using it. Check the Api, for each component to see an example of how to use it.

Usage

Additional general example will be added soon. For now check the Api.

Additional information

Notice.

The name of this package alone bears a huge promise, and the aim listed above doesn't help but fuel the illusion of a well oiled package that solves all that ails you.

Fact is, this package is not an overnight effort, and what is common to the contributor of this package may not be common to you. Expect it to be opinionated, and give it time to grow. Hopefully we can grow together.

Libraries

app
Clean App models for what an app is. Obviously your app maybe different, this can be extended to suite your app needs, as long as you agree with the app properties this interface offer.
common
Common Clean Architecture data types