Kotlin Multiplatform稳定版本发布:加速跨平台开发的新里程碑

Kotlin Multiplatform稳定版本发布:加速跨平台开发的新里程碑

引言

在最新的消息中,JetBrains团队宣布Kotlin Multiplatform(KMP)将于2023年10月稳定发布。这一消息对于广大开发者来说毫无疑问是一个令人振奋的消息。KMP的正式生产稳定性意味着开发者们可以更加自信地利用该框架进行跨平台开发,同时也标志着KMP在行业中迈出的坚实一步。

Kotlin Multiplatform是一种跨平台开发框架,凭借其出色的特性和灵活性,迅速获得了包括麦当劳、Netflix和飞利浦等多家公司的青睐。然而,在此之前,该框架一直处于beta阶段或早期生产使用阶段。虽然已经有许多公司成功地使用了这个框架,但直到现在,KMP都没有达到正式的生产稳定性。而现在,随着Kotlin版本1.9.20的发布,KMP终于迎来了稳定版本。

新特性和改进

KMP稳定版本带来了许多令人振奋的新特性和改进,其中最重要的是向后兼容的保证。这意味着开发者们可以放心地升级到最新版本,而无需担心与之前的稳定版本不兼容的问题。

此外,Kotlin 1.9.20还带来了一个重大的更新,即Gradle设置的简化。过去,配置KMP需要一系列繁琐的设置步骤,尤其是在为iOS开发创建子目标时。然而,有了默认的层次结构模板,使用Kotlin 1.9.20后,设置流程得到了显著简化。这极大地提高了开发者的效率,使他们能够更快速地构建和部署跨平台应用程序。

之前,在声明目标平台时,如果我们想创建一些子目标,比如在MacBook上开发面向iOS的应用程序,同时支持Intel和Silicon芯片,我们需要使用以下设置:

kt 复制代码
kotlin {
..
iosX64()
iosArm64()
iosSimulatorArm64()

sourceSets {
    ..
    val iosX64Main by getting
    val iosArm64Main by getting
    val iosSimulatorArm64Main by getting
    val iosMain by creating {
        dependsOn(commonMain)
        iosX64Main.dependsOn(this)
        iosArm64Main.dependsOn(this)
        iosSimulatorArm64Main.dependsOn(this)
    }
}
}

但是,有了默认的层次结构模板,使用Kotlin 1.9.20,设置可以简化为以下形式:

kt 复制代码
kotlin {
iosX64()
iosArm64()
iosSimulatorArm64()
// 不再需要显式声明iOSMain源集
}

展望未来

KMP稳定版本的发布为跨平台开发带来了更多的机遇和潜力。开发者们可以利用这个框架在不同的平台上共享代码,并通过一次开发实现多个平台的覆盖。这不仅降低了开发成本,还加快了产品的上市时间。

未来,我们可以期待KMP进一步发展和壮大。随着更多公司采用该框架并提供反馈,JetBrains团队将有更多的机会改进和优化KMP,以满足广大开发者的需求。

结论

Kotlin Multiplatform的稳定版本发布是跨平台开发领域的一个重要里程碑。它为开发者们提供了更可靠、更高效的工具,使他们能够更好地实现代码共享和跨平台部署。我们期待着在未来看到更多基于KMP开发的创新应用程序的出现,并相信这个框架将继续在行业中发挥重要作用。

参考

https://kotlinlang.org/docs/whatsnew1920.html#see-the-full-hierarchy-template

https://blog.jetbrains.com/kotlin/2023/11/kotlin-multiplatform-stable/

https://kotlinlang.org/docs/components-stability.html

相关推荐
l1t6 分钟前
在python 3.14 容器中安装和使用chdb包
开发语言·python·clickhouse·chdb
梵刹古音6 分钟前
【C++】函数重写
开发语言·c++
民国二十三画生1 小时前
C++(兼容 C 语言) 的标准输入语法,用来读取一行文本
c语言·开发语言·c++
半切西瓜1 小时前
Android Studio 创建应用自动指定SDK目录
android·ide·android studio
Codiggerworld1 小时前
从字节码到JVM:深入理解Java的“一次编写,到处运行”魔法
java·开发语言·jvm
RdoZam1 小时前
Android-封装个好用、轻量和通用的原生Adapter基类
android·kotlin
禾叙_1 小时前
【netty】Channel
开发语言·javascript·ecmascript
二流小码农1 小时前
鸿蒙开发:独立开发者的烦恼之icon图标选择
android·ios·harmonyos
云深处@1 小时前
【C++11】包装器,智能指针
开发语言·c++
量子炒饭大师1 小时前
【C++入门】Cyber深度漫游者的初始链路——【类与对象】初始化成员列表
开发语言·c++·dubbo·类与对象·初始化成员列表