Is it possible to build a project with Dynamic feature modules and Koin?
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ height:90px;width:728px;box-sizing:border-box;
}
I have an app with different modules but the project is growing and we need to split the project in different Dynamic feature modules because the users (probably) would not need all the features. My problem is that Koin needs to be started from the Application class with all the koin modules that the app is going to load but from that class I don't know which modules I have to load and :app modules does not import the other modules in gradle's dependencies (the other modules have to implement :app module).
My question is if it is a way to load Koin modules from an Activity in :app or the other loaded features.
android android-studio kotlin koin
add a comment |
I have an app with different modules but the project is growing and we need to split the project in different Dynamic feature modules because the users (probably) would not need all the features. My problem is that Koin needs to be started from the Application class with all the koin modules that the app is going to load but from that class I don't know which modules I have to load and :app modules does not import the other modules in gradle's dependencies (the other modules have to implement :app module).
My question is if it is a way to load Koin modules from an Activity in :app or the other loaded features.
android android-studio kotlin koin
add a comment |
I have an app with different modules but the project is growing and we need to split the project in different Dynamic feature modules because the users (probably) would not need all the features. My problem is that Koin needs to be started from the Application class with all the koin modules that the app is going to load but from that class I don't know which modules I have to load and :app modules does not import the other modules in gradle's dependencies (the other modules have to implement :app module).
My question is if it is a way to load Koin modules from an Activity in :app or the other loaded features.
android android-studio kotlin koin
I have an app with different modules but the project is growing and we need to split the project in different Dynamic feature modules because the users (probably) would not need all the features. My problem is that Koin needs to be started from the Application class with all the koin modules that the app is going to load but from that class I don't know which modules I have to load and :app modules does not import the other modules in gradle's dependencies (the other modules have to implement :app module).
My question is if it is a way to load Koin modules from an Activity in :app or the other loaded features.
android android-studio kotlin koin
android android-studio kotlin koin
asked Nov 22 '18 at 9:43
Ch4viCh4vi
115412
115412
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
At the end, reading the documentation, I have found the solution. Instad of using startKoin with all my feature modules, I can use startKoin(...)
with no modules or base modules and then loadKoinModules(...)
(more) in each dynamic feature to load their koin modules.
As a tip about dynamic features, it is good to have an interface with an entry point function that every feature implements to start the modules only once.
What is a good entrypoint to load the module? My module only contains an activity and some data classes and those don't seem like good entrypoints to me.
– Oscar Spruit
Feb 20 at 12:09
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53427963%2fis-it-possible-to-build-a-project-with-dynamic-feature-modules-and-koin%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
At the end, reading the documentation, I have found the solution. Instad of using startKoin with all my feature modules, I can use startKoin(...)
with no modules or base modules and then loadKoinModules(...)
(more) in each dynamic feature to load their koin modules.
As a tip about dynamic features, it is good to have an interface with an entry point function that every feature implements to start the modules only once.
What is a good entrypoint to load the module? My module only contains an activity and some data classes and those don't seem like good entrypoints to me.
– Oscar Spruit
Feb 20 at 12:09
add a comment |
At the end, reading the documentation, I have found the solution. Instad of using startKoin with all my feature modules, I can use startKoin(...)
with no modules or base modules and then loadKoinModules(...)
(more) in each dynamic feature to load their koin modules.
As a tip about dynamic features, it is good to have an interface with an entry point function that every feature implements to start the modules only once.
What is a good entrypoint to load the module? My module only contains an activity and some data classes and those don't seem like good entrypoints to me.
– Oscar Spruit
Feb 20 at 12:09
add a comment |
At the end, reading the documentation, I have found the solution. Instad of using startKoin with all my feature modules, I can use startKoin(...)
with no modules or base modules and then loadKoinModules(...)
(more) in each dynamic feature to load their koin modules.
As a tip about dynamic features, it is good to have an interface with an entry point function that every feature implements to start the modules only once.
At the end, reading the documentation, I have found the solution. Instad of using startKoin with all my feature modules, I can use startKoin(...)
with no modules or base modules and then loadKoinModules(...)
(more) in each dynamic feature to load their koin modules.
As a tip about dynamic features, it is good to have an interface with an entry point function that every feature implements to start the modules only once.
answered Dec 18 '18 at 10:54
Ch4viCh4vi
115412
115412
What is a good entrypoint to load the module? My module only contains an activity and some data classes and those don't seem like good entrypoints to me.
– Oscar Spruit
Feb 20 at 12:09
add a comment |
What is a good entrypoint to load the module? My module only contains an activity and some data classes and those don't seem like good entrypoints to me.
– Oscar Spruit
Feb 20 at 12:09
What is a good entrypoint to load the module? My module only contains an activity and some data classes and those don't seem like good entrypoints to me.
– Oscar Spruit
Feb 20 at 12:09
What is a good entrypoint to load the module? My module only contains an activity and some data classes and those don't seem like good entrypoints to me.
– Oscar Spruit
Feb 20 at 12:09
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53427963%2fis-it-possible-to-build-a-project-with-dynamic-feature-modules-and-koin%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown