mirror of
				https://github.com/InsanusMokrassar/MicroUtils.git
				synced 2025-11-04 06:00:22 +00:00 
			
		
		
		
	add template for startup and readme
This commit is contained in:
		
							
								
								
									
										10
									
								
								startup/template/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								startup/template/README.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,10 @@
 | 
			
		||||
# How to use
 | 
			
		||||
 | 
			
		||||
In case you have multiplatform project and wish to use startup plugin, this template may help you to create new modules.
 | 
			
		||||
 | 
			
		||||
1. Copy-paste whole template folder (you may clone this folder to your project and actualize some data to copy your prepared template)
 | 
			
		||||
2. Replace `group_name` by your project (or root module) group name
 | 
			
		||||
3. Replace `module_name` by the name of your new module name
 | 
			
		||||
 | 
			
		||||
You may read about the `build.gradle` structure in these templates in project
 | 
			
		||||
[KotlinMultiplatformProjectTemplate](https://github.com/InsanusMokrassar/KotlinMultiplatformProjectTemplate).
 | 
			
		||||
							
								
								
									
										18
									
								
								startup/template/client/build.gradle
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								startup/template/client/build.gradle
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,18 @@
 | 
			
		||||
plugins {
 | 
			
		||||
    id "org.jetbrains.kotlin.multiplatform"
 | 
			
		||||
    id "org.jetbrains.kotlin.plugin.serialization"
 | 
			
		||||
    id "com.android.library"
 | 
			
		||||
    alias(libs.plugins.compose)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
apply from: "$mppProjectWithSerializationPresetPath"
 | 
			
		||||
 | 
			
		||||
kotlin {
 | 
			
		||||
    sourceSets {
 | 
			
		||||
        commonMain {
 | 
			
		||||
            dependencies {
 | 
			
		||||
                api project(":${rootProject.name}.module_name.common")
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -0,0 +1,15 @@
 | 
			
		||||
package group_name.module_name.client
 | 
			
		||||
 | 
			
		||||
import dev.inmo.micro_utils.startup.plugin.StartPlugin
 | 
			
		||||
import kotlinx.serialization.json.JsonObject
 | 
			
		||||
import org.koin.core.Koin
 | 
			
		||||
import org.koin.core.module.Module
 | 
			
		||||
 | 
			
		||||
object ClientPlugin : StartPlugin {
 | 
			
		||||
    override fun Module.setupDI(config: JsonObject) {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    override suspend fun startPlugin(koin: Koin) {
 | 
			
		||||
        super.startPlugin(koin)
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										20
									
								
								startup/template/client/src/jsMain/kotlin/ClientJSPlugin.kt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								startup/template/client/src/jsMain/kotlin/ClientJSPlugin.kt
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,20 @@
 | 
			
		||||
package group_name.module_name.client
 | 
			
		||||
 | 
			
		||||
import group_name.module_name.common.CommonJSPlugin
 | 
			
		||||
import dev.inmo.micro_utils.startup.plugin.StartPlugin
 | 
			
		||||
import kotlinx.serialization.json.JsonObject
 | 
			
		||||
import org.koin.core.Koin
 | 
			
		||||
import org.koin.core.module.Module
 | 
			
		||||
 | 
			
		||||
object ClientJSPlugin : StartPlugin {
 | 
			
		||||
    override fun Module.setupDI(config: JsonObject) {
 | 
			
		||||
        with(CommonJSPlugin) { setupDI(config) }
 | 
			
		||||
        with(ClientPlugin) { setupDI(config) }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    override suspend fun startPlugin(koin: Koin) {
 | 
			
		||||
        super.startPlugin(koin)
 | 
			
		||||
        CommonJSPlugin.startPlugin(koin)
 | 
			
		||||
        ClientPlugin.startPlugin(koin)
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -0,0 +1,9 @@
 | 
			
		||||
package group_name.module_name.client
 | 
			
		||||
 | 
			
		||||
import dev.inmo.micro_utils.startup.plugin.createStartupPluginAndRegister
 | 
			
		||||
 | 
			
		||||
@ExperimentalStdlibApi
 | 
			
		||||
@EagerInitialization
 | 
			
		||||
@JsExport
 | 
			
		||||
@ExperimentalJsExport
 | 
			
		||||
private val jsModuleLoader = createStartupPluginAndRegister("template.ClientJSPlugin") { ClientJSPlugin }
 | 
			
		||||
@@ -0,0 +1,21 @@
 | 
			
		||||
package group_name.module_name.client
 | 
			
		||||
 | 
			
		||||
import group_name.module_name.common.CommonJVMPlugin
 | 
			
		||||
import group_name.module_name.common.CommonJVMPlugin.setupDI
 | 
			
		||||
import dev.inmo.micro_utils.startup.plugin.StartPlugin
 | 
			
		||||
import kotlinx.serialization.json.JsonObject
 | 
			
		||||
import org.koin.core.Koin
 | 
			
		||||
import org.koin.core.module.Module
 | 
			
		||||
 | 
			
		||||
object ClientJVMPlugin : StartPlugin {
 | 
			
		||||
    override fun Module.setupDI(config: JsonObject) {
 | 
			
		||||
        with(CommonJVMPlugin) { setupDI(config) }
 | 
			
		||||
        with(ClientPlugin) { setupDI(config) }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    override suspend fun startPlugin(koin: Koin) {
 | 
			
		||||
        super.startPlugin(koin)
 | 
			
		||||
        CommonJVMPlugin.startPlugin(koin)
 | 
			
		||||
        ClientPlugin.startPlugin(koin)
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										1
									
								
								startup/template/client/src/main/AndroidManifest.xml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								startup/template/client/src/main/AndroidManifest.xml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
<manifest package="group_name.module_name.client"/>
 | 
			
		||||
@@ -0,0 +1,21 @@
 | 
			
		||||
package group_name.module_name.client
 | 
			
		||||
 | 
			
		||||
import group_name.module_name.common.CommonAndroidPlugin
 | 
			
		||||
import group_name.module_name.common.CommonAndroidPlugin.setupDI
 | 
			
		||||
import dev.inmo.micro_utils.startup.plugin.StartPlugin
 | 
			
		||||
import kotlinx.serialization.json.JsonObject
 | 
			
		||||
import org.koin.core.Koin
 | 
			
		||||
import org.koin.core.module.Module
 | 
			
		||||
 | 
			
		||||
object ClientAndroidPlugin : StartPlugin {
 | 
			
		||||
    override fun Module.setupDI(config: JsonObject) {
 | 
			
		||||
        with(CommonAndroidPlugin) { setupDI(config) }
 | 
			
		||||
        with(ClientPlugin) { setupDI(config) }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    override suspend fun startPlugin(koin: Koin) {
 | 
			
		||||
        super.startPlugin(koin)
 | 
			
		||||
        CommonAndroidPlugin.startPlugin(koin)
 | 
			
		||||
        ClientPlugin.startPlugin(koin)
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										7
									
								
								startup/template/common/build.gradle
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								startup/template/common/build.gradle
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,7 @@
 | 
			
		||||
plugins {
 | 
			
		||||
    id "org.jetbrains.kotlin.multiplatform"
 | 
			
		||||
    id "org.jetbrains.kotlin.plugin.serialization"
 | 
			
		||||
    id "com.android.library"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
apply from: "$mppProjectWithSerializationPresetPath"
 | 
			
		||||
@@ -0,0 +1,11 @@
 | 
			
		||||
package group_name.module_name.common
 | 
			
		||||
 | 
			
		||||
import dev.inmo.micro_utils.startup.plugin.StartPlugin
 | 
			
		||||
import kotlinx.serialization.json.JsonObject
 | 
			
		||||
import org.koin.core.module.Module
 | 
			
		||||
 | 
			
		||||
object CommonPlugin : StartPlugin {
 | 
			
		||||
    override fun Module.setupDI(config: JsonObject) {
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -0,0 +1 @@
 | 
			
		||||
package group_name.module_name.common
 | 
			
		||||
							
								
								
									
										17
									
								
								startup/template/common/src/jsMain/kotlin/CommonJSPlugin.kt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								startup/template/common/src/jsMain/kotlin/CommonJSPlugin.kt
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,17 @@
 | 
			
		||||
package group_name.module_name.common
 | 
			
		||||
 | 
			
		||||
import dev.inmo.micro_utils.startup.plugin.StartPlugin
 | 
			
		||||
import kotlinx.serialization.json.JsonObject
 | 
			
		||||
import org.koin.core.Koin
 | 
			
		||||
import org.koin.core.module.Module
 | 
			
		||||
 | 
			
		||||
object CommonJSPlugin : StartPlugin {
 | 
			
		||||
    override fun Module.setupDI(config: JsonObject) {
 | 
			
		||||
        with (CommonPlugin) { setupDI(config) }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    override suspend fun startPlugin(koin: Koin) {
 | 
			
		||||
        super.startPlugin(koin)
 | 
			
		||||
        CommonPlugin.startPlugin(koin)
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -0,0 +1,9 @@
 | 
			
		||||
package group_name.module_name.common
 | 
			
		||||
 | 
			
		||||
import dev.inmo.micro_utils.startup.plugin.createStartupPluginAndRegister
 | 
			
		||||
 | 
			
		||||
@ExperimentalStdlibApi
 | 
			
		||||
@EagerInitialization
 | 
			
		||||
@JsExport
 | 
			
		||||
@ExperimentalJsExport
 | 
			
		||||
private val jsModuleLoader = createStartupPluginAndRegister("template.CommonJSPlugin") { CommonJSPlugin }
 | 
			
		||||
@@ -0,0 +1,17 @@
 | 
			
		||||
package group_name.module_name.common
 | 
			
		||||
 | 
			
		||||
import dev.inmo.micro_utils.startup.plugin.StartPlugin
 | 
			
		||||
import kotlinx.serialization.json.JsonObject
 | 
			
		||||
import org.koin.core.Koin
 | 
			
		||||
import org.koin.core.module.Module
 | 
			
		||||
 | 
			
		||||
object CommonJVMPlugin : StartPlugin {
 | 
			
		||||
    override fun Module.setupDI(config: JsonObject) {
 | 
			
		||||
        with (CommonPlugin) { setupDI(config) }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    override suspend fun startPlugin(koin: Koin) {
 | 
			
		||||
        super.startPlugin(koin)
 | 
			
		||||
        CommonPlugin.startPlugin(koin)
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										1
									
								
								startup/template/common/src/main/AndroidManifest.xml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								startup/template/common/src/main/AndroidManifest.xml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
<manifest package="group_name.module_name.common"/>
 | 
			
		||||
@@ -0,0 +1,17 @@
 | 
			
		||||
package group_name.module_name.common
 | 
			
		||||
 | 
			
		||||
import dev.inmo.micro_utils.startup.plugin.StartPlugin
 | 
			
		||||
import kotlinx.serialization.json.JsonObject
 | 
			
		||||
import org.koin.core.Koin
 | 
			
		||||
import org.koin.core.module.Module
 | 
			
		||||
 | 
			
		||||
object CommonAndroidPlugin : StartPlugin {
 | 
			
		||||
    override fun Module.setupDI(config: JsonObject) {
 | 
			
		||||
        with (CommonPlugin) { setupDI(config) }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    override suspend fun startPlugin(koin: Koin) {
 | 
			
		||||
        super.startPlugin(koin)
 | 
			
		||||
        CommonPlugin.startPlugin(koin)
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										16
									
								
								startup/template/server/build.gradle
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								startup/template/server/build.gradle
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,16 @@
 | 
			
		||||
plugins {
 | 
			
		||||
    id "org.jetbrains.kotlin.multiplatform"
 | 
			
		||||
    id "org.jetbrains.kotlin.plugin.serialization"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
apply from: "$mppJavaProjectPresetPath"
 | 
			
		||||
 | 
			
		||||
kotlin {
 | 
			
		||||
    sourceSets {
 | 
			
		||||
        commonMain {
 | 
			
		||||
            dependencies {
 | 
			
		||||
                api project(":${rootProject.name}.module_name.common")
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -0,0 +1,15 @@
 | 
			
		||||
package group_name.module_name.server
 | 
			
		||||
 | 
			
		||||
import dev.inmo.micro_utils.startup.plugin.StartPlugin
 | 
			
		||||
import kotlinx.serialization.json.JsonObject
 | 
			
		||||
import org.koin.core.Koin
 | 
			
		||||
import org.koin.core.module.Module
 | 
			
		||||
 | 
			
		||||
object ServerPlugin : StartPlugin {
 | 
			
		||||
    override fun Module.setupDI(config: JsonObject) {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    override suspend fun startPlugin(koin: Koin) {
 | 
			
		||||
        super.startPlugin(koin)
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -0,0 +1,20 @@
 | 
			
		||||
package group_name.module_name.server
 | 
			
		||||
 | 
			
		||||
import group_name.module_name.common.CommonJVMPlugin
 | 
			
		||||
import dev.inmo.micro_utils.startup.plugin.StartPlugin
 | 
			
		||||
import kotlinx.serialization.json.JsonObject
 | 
			
		||||
import org.koin.core.Koin
 | 
			
		||||
import org.koin.core.module.Module
 | 
			
		||||
 | 
			
		||||
object ServerJVMPlugin : StartPlugin {
 | 
			
		||||
    override fun Module.setupDI(config: JsonObject) {
 | 
			
		||||
        with(CommonJVMPlugin) { setupDI(config) }
 | 
			
		||||
        with(ServerPlugin) { setupDI(config) }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    override suspend fun startPlugin(koin: Koin) {
 | 
			
		||||
        super.startPlugin(koin)
 | 
			
		||||
        CommonJVMPlugin.startPlugin(koin)
 | 
			
		||||
        ServerPlugin.startPlugin(koin)
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user