Kotlin Multiplatform 中单个项目中的业务和客户应用程序?
Business and Customer app in a single project in Kotlin Multiplatform?
我正在制作一个连接客户和企业的应用程序。现在我想将它打包到一个项目中,因为它们在主题上是相关的并且可能共享一些逻辑。这对于本机应用程序来说已经足够简单了,但是对于多平台而言,我不确定如何组织它们。例如,我有两个 IOS 和两个 Android 模块,但是对于共享代码,我需要 3 个共享库,sharedBussiness、sharedCustomer 和 common。在生成框架和依赖项时,这种分离会不会太难处理?由于 sharedBusiness/Customer 将依赖于通用模块,因此在 ios 端必须生成和处理框架。这是一种常见的方法/可行吗?
这应该没有任何问题。如果您将代码拆分为多个模块,则可以只包含每个平台或应用所需的模块。
将许多 KMM 模块添加到 iOS 应用程序并不容易,但您不需要。
因此您可能有 sharedBusiness
和 sharedCustomer
KMM 模块,每个模块都包含在相应的应用程序中,并且两者可能只是其他 KMM 模块的组合,取决于 common
你的情况。
默认情况下它只会导出 类 由 shared
模块的 headers 使用。
比如,如果你有 data class SharedBusiness(let common: SomeCommonClass)
,SomeCommonClass
将被导出,否则 - 它不会。
因此,如果您需要将所有 类 和函数从 common
模块导出到 iOS 框架,您可以使用 this docs
您可以使用 Android 构建变体 (productFlavor
) 实现此目的,您将拥有 1 个具有共享逻辑的主要源代码,然后您创建新包,一个用于您的客户,一个用于您的公司和内部您只输入差异代码。
要阅读更多内容,请查看此内容build-variants
我正在制作一个连接客户和企业的应用程序。现在我想将它打包到一个项目中,因为它们在主题上是相关的并且可能共享一些逻辑。这对于本机应用程序来说已经足够简单了,但是对于多平台而言,我不确定如何组织它们。例如,我有两个 IOS 和两个 Android 模块,但是对于共享代码,我需要 3 个共享库,sharedBussiness、sharedCustomer 和 common。在生成框架和依赖项时,这种分离会不会太难处理?由于 sharedBusiness/Customer 将依赖于通用模块,因此在 ios 端必须生成和处理框架。这是一种常见的方法/可行吗?
这应该没有任何问题。如果您将代码拆分为多个模块,则可以只包含每个平台或应用所需的模块。
将许多 KMM 模块添加到 iOS 应用程序并不容易,但您不需要。
因此您可能有 sharedBusiness
和 sharedCustomer
KMM 模块,每个模块都包含在相应的应用程序中,并且两者可能只是其他 KMM 模块的组合,取决于 common
你的情况。
默认情况下它只会导出 类 由 shared
模块的 headers 使用。
比如,如果你有 data class SharedBusiness(let common: SomeCommonClass)
,SomeCommonClass
将被导出,否则 - 它不会。
因此,如果您需要将所有 类 和函数从 common
模块导出到 iOS 框架,您可以使用 this docs
您可以使用 Android 构建变体 (productFlavor
) 实现此目的,您将拥有 1 个具有共享逻辑的主要源代码,然后您创建新包,一个用于您的客户,一个用于您的公司和内部您只输入差异代码。
要阅读更多内容,请查看此内容build-variants