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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions