KC Blog

【Compose Multiplatform】手機使用依賴注入Koin

3 min read
CrossPlatform#CMP#Dependency Injection#Koin#Kotlin

前言

在 Compose Multiplatform 專案中

依賴注入是一個重要的設計模式

Koin 作為一個輕量級的 DI 框架

非常適合用於跨平台開發

本文將介紹如何在 Compose Multiplatform 中

使用 Koin 進行依賴注入

{% include table/compose-multiplatform-category.html %}

實作步驟

1. 導入庫
在 .toml 文件中添加:

在 build.gradle.kts 中添加:

2. 實作 DI 內容
接下來,我們需要實作 DI 的具體內容:

這裡可以依據你實際要用的去實作

像是我們可能會規劃使用viewmodel、database、datastore等等

就可以根據你實際要用的去做分類

使得程式碼更好維護、管理

3. 初始化 Koin
如果剛好你實作的東西`需要跨平台`取得

例如要在Android取得Context

所以依賴注入就必需要分開注入

根據不同的平台和需求,我們有多種方式初始化 Koin:

in iOSMain:

in androidMain:

如果剛好你實作的東西不需要跨平台取得

你可以用以下的方式去在commonMain裡面直接注入

對於 koin-compose 1.2.0 版本,可以用KoinApplication

讓你的代碼更有整體性

或也可以用原本的 startKoin

4. 實際使用

之後直接用koinViewModel就能直接注入viewmodel

或是有些要組成的東西在moduel那邊使用get() 就能幫你取得實例

總結

  • Koin 能在 Compose Multiplatform 使用
  • 通過適當的配置,可以在不同平台上靈活使用 Koin
  • 使用 Koin 可以大大簡化跨平台項目的依賴管理
  • 根據項目規模和複雜度,選擇合適的初始化方式