我正在制作一个连接客户和企业的应用程序。现在我想把它打包到一个单独的项目中,因为它们在主题上是联系在一起的,可能会分享一些逻辑。对于原生应用程序来说,这将非常简单,但对于多平台应用程序,我不确定如何组织它们。例如,我有两个IOS和两个Android模块,但是对于共享代码,我需要3个共享库,sharedBussiness,sharedCustomer和common。当涉及到生成框架和依赖关系时,这种分离会不会太难处理?因为共享业务/客户将依赖于公共模块,而在ios端,必须生成和处理框架。这是一种常见的方法吗/它会起作用吗?
发布于 2021-08-08 09:01:00
这应该可以正常工作,没有任何问题。如果您将代码拆分为多个模块,则可以只包含每个平台或应用程序所需的模块。
将许多KMM模块添加到iOS应用程序中并不容易,但您不需要这样做。
因此,您可能有sharedBusiness和KMM模块,每个模块都包含在相应的应用程序中,并且这两个模块可能只是其他sharedCustomer模块的组合,具体取决于您的common。
默认情况下,它只会导出shared模块的头所使用的类。
比如,如果你有data class SharedBusiness(let common: SomeCommonClass),SomeCommonClass就会被导出,否则就不会。
因此,如果需要将common模块中的所有类和函数导出到iOS框架中,可以使用this docs
发布于 2021-08-08 10:25:08
你可以使用安卓构建变体(productFlavor)来实现这一点,你会有一个带有共享逻辑的主要源代码,然后你创建一个新的包,一个用于你的客户,一个用于你的业务,里面你只放了不同的代码。
要阅读更多内容,请查看此build-variants
https://stackoverflow.com/questions/68698165
复制相似问题