Kotlin Multiplatform 中单个项目中的业务和客户应用程序?

Business and Customer app in a single project in Kotlin Multiplatform?

我正在制作一个连接客户和企业的应用程序。现在我想将它打包到一个项目中,因为它们在主题上是相关的并且可能共享一些逻辑。这对于本机应用程序来说已经足够简单了,但是对于多平台而言,我不确定如何组织它们。例如,我有两个 IOS 和两个 Android 模块,但是对于共享代码,我需要 3 个共享库,sharedBussiness、sharedCustomer 和 common。在生成框架和依赖项时,这种分离会不会太难处理?由于 sharedBusiness/Customer 将依赖于通用模块,因此在 ios 端必须生成和处理框架。这是一种常见的方法/可行吗?

这应该没有任何问题。如果您将代码拆分为多个模块,则可以只包含每个平台或应用所需的模块。

将许多 KMM 模块添加到 iOS 应用程序并不容易,但您不需要。

因此您可能有 sharedBusinesssharedCustomer KMM 模块,每个模块都包含在相应的应用程序中,并且两者可能只是其他 KMM 模块的组合,取决于 common你的情况。

默认情况下它只会导出 类 由 shared 模块的 headers 使用。

比如,如果你有 data class SharedBusiness(let common: SomeCommonClass)SomeCommonClass 将被导出,否则 - 它不会。

因此,如果您需要将所有 类 和函数从 common 模块导出到 iOS 框架,您可以使用 this docs

您可以使用 Android 构建变体 (productFlavor) 实现此目的,您将拥有 1 个具有共享逻辑的主要源代码,然后您创建新包,一个用于您的客户,一个用于您的公司和内部您只输入差异代码。

要阅读更多内容,请查看此内容build-variants