选项 将共享模块放入

Accurate, factual information from observations
Post Reply
rakibhasanbd4723
Posts: 17
Joined: Sat Dec 21, 2024 6:58 am

选项 将共享模块放入

Post by rakibhasanbd4723 »

Android 存储库
然而,并非每个项目都大到需要创建一个单独的团队来开发多平台库。我们的第二个选择是将多平台模块放在 Android 项目存储库中。从 Android 的角度来看,Android 和多平台模块之间没有太大区别。它们使用相同的 Kotlin 语言,它们都是 Gradle 模块,并且都可以直接集成到项目中。这意味着我们不再需要构建和分发 Android 库。

在 iOS 端,分发过程与之前使用单独存储库 巴拉圭电话号码库 的设置相同。我们使用KMMBridge工具将多平台模块导出到Apple 框架,并使用CocoaPods或Swift Package Manager发布它。

两个存储库配置 - 将您的应用转换为 Kotlin Multiplatform
此解决方案适用于只有 Android 团队负责开发多平台代码库的项目 。在这种情况下,Android 开发人员可以像使用常规 Android 模块一样使用多平台模块,从而简化开发。另一方面,iOS 团队仍将其用作外部依赖项。向多平台模块添加版本控制和文档也是一个值得考虑的问题,因为 iOS 团队仍然可以将其视为一个库。但是,如果 Android 和 iOS 团队密切合作并直接沟通,这可能就没有必要了。

Image


选项 3:将应用程序合并到 monorepo 中
Android 应用程序存储库中有一个多平台模块会导致团队之间的不对称。Android 工程师开发通用代码,而他们的 iOS 同事只使用它。在某些项目中,这是一种理想的情况,但在其他项目中,情况并非如此。这就是为什么我们有第三种选择,即我们不创建任何新团队,所有开发人员都对多平台代码库的开发负有同等责任。

在这种方法中,我们将单独的存储库合并为一个 monorepo,并向其中添加一个多平台模块。由于所有代码都位于同一个存储库中,因此我们不需要任何远程工件分发解决方案,如 Maven、CocoaPods 或 SPM。Android和 iOS 应用程序都直接依赖于多平台模块。在 Android 端,我们将其作为Gradle 模块连接到应用程序,而在 iOS 端,我们使用Xcode Build Phases对其进行配置。

Kotlin Multiplatform 项目中的 Monorepo 配置
当 Android 和 iOS 开发人员希望紧密合作、更像一个团队时,使用 monorepo 是理想的选择。在 Droids On Roids,我们将此策略应用于使用 Kotlin Multiplatform 的新项目,但在迁移现有应用程序时也值得考虑。它不仅可以简化和加快开发速度,还可以促进工程师之间的知识交流。

但是,如果您想避免创建 monorepo,我们可以通过使用Git submodules来实现类似的结果。此解决方案使我们能够将代码保存在单独的存储库中,同时还将其包含在其他存储库中。这样,我们可以将 Multiplatform 模块直接连接到两个本机应用程序,而无需使用 Maven、CocoaPods 或 SPM 等远程分发机制。

2.考虑模块化
无论选择哪种存储库配置,您可能都希望模块化共享代码。我们经常在项目中这样做,以便从代码封装、更好的构建性能以及更轻松地在团队中甚至跨多个团队并行工作中受益。Kotlin Multiplatform 在这里也不例外。由于它像 Android 一样依赖 Gradle,我们可以应用完全相同的模块化策略。相反,iOS 不使用 Gradle。这意味着我们不能将 Multiplatform 模块连接到 iOS 项目,就像将它连接到 Android 项目一样。相反,我们的共享 Kotlin 代码被打包到一个 iOS 框架中,可以使用 Xcode Build Phases、CocoaPods 或 SPM 进行连接。
Post Reply