* Feat: KMP Library Setup (#1766) * Migrating from hilt to koin (This) (#1764) * Migrating from hilt to koin * Fixed Instance creation error * refactor: Removed Hilt and migrated to Koin This commit removes Hilt and migrates the project to Koin for dependency injection. The following changes were made: - Removed the `AndroidHiltConventionPlugin`. - Added the `AndroidKoinConventionPlugin`. - Updated dependencies to use Koin. - Updated KSP configuration for Koin. - Updated feature modules to use Koin. - Updated common modules to use Koin . - Removed Hilt annotations and replaced them with Koin annotations. - Updated ViewModels to use Koin for dependency injection. - Updated modules to use Koin for dependency injection. * Formatted Dependencies * migrating from hilt to koin clean up commit * Revert "migrating from hilt to koin clean up commit" This reverts commit |
||
|---|---|---|
| .. | ||
| convention | ||
| gradle.properties | ||
| README.md | ||
| settings.gradle.kts | ||
Convention Plugins
The build-logic folder defines project-specific convention plugins, used to keep a single
source of truth for common module configurations.
This approach is heavily based on https://developer.squareup.com/blog/herding-elephants/ and https://github.com/jjohannes/idiomatic-gradle.
By setting up convention plugins in build-logic, we can avoid duplicated build script setup,
messy subproject configurations, without the pitfalls of the buildSrc directory.
build-logic is an included build, as configured in the root
settings.gradle.kts.
Inside build-logic is a convention module, which defines a set of plugins that all normal
modules can use to configure themselves.
build-logic also includes a set of Kotlin files used to share logic between plugins themselves,
which is most useful for configuring Android components (libraries vs applications) with shared
code.
These plugins are additive and composable, and try to only accomplish a single responsibility.
Modules can then pick and choose the configurations they need.
If there is one-off logic for a module without shared code, it's preferable to define that directly
in the module's build.gradle, as opposed to creating a convention plugin with module-specific
setup.
Current list of convention plugins:
mifospay.android.application,mifospay.android.library,mifospay.android.test: Configures common Android and Kotlin options.mifospay.android.application.compose,mifospay.android.library.compose: Configures Jetpack Compose options