Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Domain And Data layers for each feature. #10

Open
Roshaanf opened this issue Apr 2, 2020 · 1 comment
Open

Domain And Data layers for each feature. #10

Roshaanf opened this issue Apr 2, 2020 · 1 comment
Labels
enhancement New feature or request

Comments

@Roshaanf
Copy link

Roshaanf commented Apr 2, 2020

Why there are not Business and Data modules for each feature? For instance if I want to remove any feature from the app or I want to implement dynamic features. I have to go in Business(God Business) to remove that feature specific classes same goes for Data module and if I don't remove those classes then unnecessary code will remain part of my apk. Also if I change something in Business module for only feature1 the whole Business module will require rebuild.

@marcosalis marcosalis added the enhancement New feature or request label May 5, 2020
@marcosalis
Copy link
Contributor

Hi, thank you for your comment!
It is indeed an important issue on large projects, and one we've discussed internally. However, the scope of the "Clean architecture" example is primarily to showcase our approach in terms of layers ("vertical" splitting). We currently use a very formal and structured package separation policy to make sure a future refactoring will easily allow us to further split the codebase horizontally (and improve build speed in the process).
We have discussed ways to achieve that, and still retain the layers separation for each feature. It involves having to find a clever way to manage Gradle configurations for many modules, a good naming convention and (possibly) a Studio template that allows us to create a set of feature modules without too much manual intervention.
I can't give you an estimate, but when that happens we'll try to show an example on this repository.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants