我可以使用与 kotlin 相同的代码库创建一个 android、ios 和 web

Posted

技术标签:

【中文标题】我可以使用与 kotlin 相同的代码库创建一个 android、ios 和 web【英文标题】:Can I create an android, ios and web with the same codebase of kotlin 【发布时间】:2021-07-16 10:26:51 【问题描述】:

我已经用kotlin 创建了一个android 应用程序,它也可以按需提供给Web-appios。所以我在 Google 上搜索以找到一种方法,我得到了类似 Kotlin for multiplatform 之类的东西,读完之后我明白了,也可以使用相同的代码库创建一个 IOS 应用程序。

但我不知道相同的代码库是否也适用于网络应用程序?或者问题可能是“是否可以使用相同的代码库为所有 3 个平台制作应用程序?”

或者我应该切换到Flutter? 但是如果我切换到颤振,那么我必须从头开始迁移它。这将非常耗时。但我听说过,我们必须在 Flutter 上编写一次代码并在任何地方运行它。在使用 kotlin 时,我必须针对不同的平台更改很多东西?

我说的对吗?从长远来看,什么是更好的方法?

【问题讨论】:

【参考方案1】:

使用 Kotlin Multiplatform,理论上您可以在平台之间获得高达 ~80% 的共享代码。

是的,这意味着通常您的 UI,但其他平台特定的东西也必须为每个平台重写。

就你而言,我认为朝着这个方向前进是有意义的。您将不得不稍微调整您的 kotlin 代码,为 Web 和 iOS 制作 UI,但您将获得本机质量,并对平台进行更多控制。 如果我已经有 kotlin 代码库,至少这是我会选择的,如果您还有其他问题,请告诉我

【讨论】:

你的意思是如果我选择使用 kotlin 的方式。那么它会比用颤振重新创建它花费更少的时间吗?当我更新项目时使用 kotlin,我必须对所有 3 个平台进行更改。那么它不会比颤振花费更多的时间吗?我同意你的回答,如果你在我的位置,你会选择 kotlin 作为一种节省时间的方法,谢谢。但我也想知道这对长期也有好处? 是的,如果您考虑长期,可能在某些时候您会错过一些原生解决方案。但我想说这取决于你计划构建什么: - 为了获得最佳质量/效率比,KMP 可能是最好的 - 如果你只关心效率,flutter 可能是一个很好的选择,但如果你遇到了障碍,走原生路会很头疼 非常感谢,先生,现在我想我应该使用 kotlin。 ? @mr.groot,我也写了一篇关于这些注意事项的博客,可能是有用的 6 分钟阅读:medium.com/nerd-for-tech/…

以上是关于我可以使用与 kotlin 相同的代码库创建一个 android、ios 和 web的主要内容,如果未能解决你的问题,请参考以下文章

与 kotlin 异步运行代码的最佳方法

我可以使用第三方 Java 库 (.jar) 来使用 Kotlin 进行 Android 开发吗?

在“使用”标准库函数中测试 Kotlin lambda

Kotlin学习与实践 Lambda

使用 Kotlin 多平台实现相机库

从Python JSON迁移到Kotlin JVM JSON