Skip to content

[FR]: Re assess the dependencies in the multi module setup #2103

@mahmed1987

Description

@mahmed1987

Is there an existing issue for this?

  • I have searched the existing issues

Describe the problem

Image

Look at the picture above. I am able to access stuff from the network module right in the feature module . This in my opinion is a breach of engineering practices where in the scope of a component should only be limited to what it needs .

Perhaps we should address the dependencies mentioned as "apis" in core:data build file , and look into making them "implementation" ?

This decision of making use of apis in core:data has been done intentionally though , but can you please present an argument against what i have suggested ?

Describe the solution

dependencies {
    implementation(projects.core.common)
    implementation(projects.core.database)
    implementation(projects.core.datastore)
    implementation(projects.core.network)

    implementation(projects.core.analytics)
    implementation(projects.core.notifications)

    testImplementation(libs.kotlinx.coroutines.test)
    testImplementation(libs.kotlinx.serialization.json)
    testImplementation(projects.core.datastoreTest)
    testImplementation(projects.core.testing)
}

In my opinion this is how the core:data should look like

Additional context

Image

Code of Conduct

  • I agree to follow this project's Code of Conduct

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions