Skip to content

feat: Modularize project structure#210

Open
rainxchzed wants to merge 2 commits intomainfrom
multi-module
Open

feat: Modularize project structure#210
rainxchzed wants to merge 2 commits intomainfrom
multi-module

Conversation

@rainxchzed
Copy link
Owner

This commit refactors the project into a modular architecture, separating concerns into core and feature modules, each with distinct data, domain, and presentation layers. This modularization improves scalability, maintainability, and build times.

  • feat(project): Introduced a multi-module architecture with core and feature modules.
  • feat(build): Configured Gradle build scripts (build.gradle.kts, settings.gradle.kts, gradle/libs.versions.toml) to support the new KMP module structure.
  • feat(modules): Added boilerplate code, including Platform implementations, test files, .gitignore, and AndroidManifest.xml for each new module.

This commit refactors the project into a modular architecture, separating concerns into `core` and `feature` modules, each with distinct `data`, `domain`, and `presentation` layers. This modularization improves scalability, maintainability, and build times.

- **feat(project)**: Introduced a multi-module architecture with `core` and `feature` modules.
- **feat(build)**: Configured Gradle build scripts (`build.gradle.kts`, `settings.gradle.kts`, `gradle/libs.versions.toml`) to support the new KMP module structure.
- **feat(modules)**: Added boilerplate code, including `Platform` implementations, test files, `.gitignore`, and `AndroidManifest.xml` for each new module.
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jan 30, 2026

Important

Review skipped

Too many files!

This PR contains 289 files, which is 139 over the limit of 150.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

  • 🔍 Trigger a full review
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch multi-module

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

This commit refactors the project into a multi-module architecture and introduces Gradle convention plugins to streamline the build process. The core logic is separated into `core` and `feature` modules, each with distinct `data`, `domain`, and `presentation` layers. This modularization improves scalability, maintainability, and build times.

- **refactor(project)!**: Migrated from a monolithic `composeApp` to a multi-module architecture. Source code has been moved from `composeApp` into new `core` and `feature` modules.
- **feat(build)**: Introduced Gradle convention plugins (`cmp.application`, `cmp.library`, `cmp.feature`, `kmp.library`, `room`, `buildkonfig`) to standardize module configurations.
- **chore(build)**: Updated Gradle build scripts (`build.gradle.kts`, `settings.gradle.kts`, `gradle/libs.versions.toml`) to support the new modular structure and convention plugins.
- **chore(tests)**: Removed placeholder and boilerplate test files (`ExampleInstrumentedTest.kt`, `ExampleUnitTest.kt`) from all modules.
- **refactor(di)**: Updated Koin dependency injection modules to reflect the new module structure.
- **refactor(auth)**: Moved authentication-related models (`DeviceStart`, `DeviceTokenSuccess`) to the `core:domain` and `core:data` modules and renamed them for clarity (e.g., `GithubDeviceStart`).
- **refactor(network)**: Centralized `HttpClient` creation and rate-limiting logic into the `core:data` module.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant