赞
踩
在近期的Google I/O大会上,我们推荐了Kotlin Multiplatform (KMP)用于跨移动、网页、服务器和桌面平台共享业务逻辑,并在Google Workspace中采用了KMP。紧接着,KotlinConf 2024成为与Kotlin社区分享亮点并交流的重要时刻。
Kotlin Multiplatform由JetBrains开发,允许开发者通过将Kotlin代码编译为平台原生的二进制文件来构建跨平台应用,同时利用现代内存管理语言的全部功能。这种方法是Google Workspace团队的长期投资,使他们能够在不同平台之间共享业务逻辑。
Android团队一直在努力支持KMP,并最近发布了支持KMP的Room的alpha版本。目前,Annotations、Collections和DataStore已经在支持KMP的稳定版中发布。我们还对Lifecycle、ViewModel和Paging库进行了通用化处理,以便与非Android平台集成。
会议以主题演讲开始,Google的Jeffrey van Gogh概述了Google对Kotlin生态系统的贡献。Jeffrey深入探讨了Google如何利用Kotlin Multiplatform (KMP)简化其产品组合的开发。Jeffrey强调了KMP为Google项目带来的代码共享和效率提升的好处,这与我们最近对Android应用开发的建议一致。
在KotlinConf 2024上的技术会议涵盖了一系列主题:
《两种语言的故事》
由John Pampuch带来的这场演讲,通过对比Java和Kotlin的演变,展示了它们的共生关系和相互影响。
《启用Kotlin Multiplatform成功:Android Jetpack之旅》
由Elif Bilgin、Yigit Boyar和Daniel Santiago Rivera代表的Android Jetpack团队,分享了KMP在Jetpack中的当前状态,介绍了支持KMP的Jetpack库更新,并探讨了将一个成熟的Jetpack库迁移到KMP的过程。
《使用Kotlin加速开发》
由Andrei Shikov分享了优化Compose for Android的宝贵经验,强调了Kotlin中的一些有趣性能细节以及Compose团队为确保最佳性能而建立的保护措施。
《Google Workspace中的Kotlin Multiplatform》
由Jason Parachoniak讨论了Google Workspace从以Java为导向的多平台基础迁移到Kotlin Multiplatform的过程,分享了所学到的经验和这一雄心勃勃的过渡的当前状态。
《编写你自己的Kotlin Lint检查》
由Android Studio工程总监Tor Norbye带来的这场会议,帮助开发者通过创建自己的检查来扩展Android Lint,这是一种被数百万开发者使用的静态分析工具。尽管名字如此,它不仅仅针对Android——还用于分析Google内部的服务器端Kotlin和Java代码!
传统上,开发者需要为每个平台单独编写代码,或者在复用代码时做出许多妥协。自2017年以来,Android 一直积极支持 Kotlin。今天在 Google I/O 大会上,我们宣布支持 Kotlin Multiplatform (KMP),这使得跨移动、网页、服务器和桌面平台共享代码成为可能,从而提高开发者的生产力,并与 Android 的 Kotlin 优先策略完美契合,最终提升 Android 应用的质量。
Google Workspace 团队长期以来一直投资于 KMP,这使得跨平台体验的交付更加灵活和快速。Google Workspace 团队对 KMP 作为多平台架构投资方向的潜力充满信心,认为其能够满足各种工作负载的性能预期。
这一旅程的初始步骤是推出 Google Docs 应用,该应用利用 KMP 实现了 Android、iOS 和网页端的共享业务逻辑,验证了其在 Google 规模上的生产就绪性。Google Workspace 团队期待继续探索 KMP 在其产品套件中的可能性,旨在提高生产力,并为所有平台的用户提供无缝体验。
许多公司已经成功利用 KMP 进行跨平台应用开发,了解他们如何应用不同的代码共享策略。Kotlin Multiplatform 由 JetBrains 开发,通过将 Kotlin 编译为平台原生二进制文件,提供了一种共享代码的新方法。Kotlin 能够为本机平台提供完整、现代的内存管理语言,实现原生互操作性和渐进采用。结合其他平台上的 Kotlin Multiplatform,Kotlin 在 Android 上提供了一种提高生产力和质量的绝佳方式,同时不妥协性能和互操作性。
许多广泛使用的库提供了对 Kotlin Multiplatform 的内置支持,简化了跨平台开发体验。这些库无缝协作,例如,Ktor 通过处理 REST 服务消费简化了网络任务,kotlinx.serialization 将数据转换为 JSON 等格式,而 Okio 处理基本的文件 I/O。此外,SKIE 支持在 iOS 上使用现代类型和协程,CocoaPods 集成则使得使用 iOS 特定依赖项成为可能。
我们与 JetBrains 及 Kotlin 开发者社区合作,为许多 Jetpack 库添加了 KMP 支持。在某些情况下,我们提供了 iOS 平台目标,而在其他情况下,JetBrains 和社区提供了多平台发行版。
目前,Annotations、Collections 和 DataStore 库均已在稳定版中支持 Kotlin Multiplatform。我们还在增加对 iOS 平台目标的二进制兼容性验证支持,使其达到与 Android 相同的质量标准。除了上述库之外,我们还开始为 Room、Lifecycle 和 ViewModels 添加 Kotlin Multiplatform 支持,alpha 版本现已可用。为了更好地理解哪些类和函数在哪些平台上可用,库参考文档现在标明了“common”和平台支持。
Android 工程师与 JetBrains 合作改进 Kotlin/Native(用于 iOS 和原生桌面操作系统)的运行时性能,在编译器基准测试中显示出18%的运行时性能提升。此外,Android 团队还贡献了 Kotlin Native Compiler 的构建时间性能改进,速度提高了多达2倍。
Android Gradle 插件现在正式支持 Kotlin Multiplatform,能够通过简洁的构建定义将 Android 作为共享代码的平台目标,如下所示:
plugins { id("org.jetbrains.kotlin.multiplatform") id("com.android.library") } kotlin { androidTarget { compilations.all { kotlinOptions { jvmTarget = "11" } } } listOf( iosX64(), iosArm64(), iosSimulatorArm64() ).forEach { iosTarget -> iosTarget.binaries.framework { baseName = "Shared" isStatic = true } } sourceSets { commonMain.dependencies { // 在这里添加你的多平台依赖项 } } }
由于 Android Studio 基于 JetBrains 的 IntelliJ 平台,因此它继承了对 Kotlin Multiplatform 代码编辑和许多其他开发功能的支持。其他 Android 开发工具,如 Android Lint 和 Kotlin Symbol Processing (KSP),也开始增加更多的 Kotlin Multiplatform 支持。
Google Chrome 现在正式支持 WasmGC,这被 Kotlin Multiplatform 的 WebAssembly 平台目标使用,以高效且性能良好的方式实现与浏览器的代码共享。
此外,你可以查看更新的文档和一个新的移动示例项目。这些资源应该能够帮助你开始学习KMP,如果你有任何反馈或遇到任何问题,请通过此链接分享。
https://developer.android.com/kotlin/multiplatform
https://github.com/android/kotlin-multiplatform-samples
https://developer.android.com/jetpack/androidx/releases/room#version_27_2
我们对Kotlin的未来充满期待,计划在更多的AndroidX库中添加对KMP的支持。我们期待看到你们如何采用并使用KMP构建下一代应用。
KotlinConf 2024不仅是展示最新技术和工具的平台,更是开发者之间交流和学习的盛会。通过KMP,开发者们可以更高效地在多个平台上共享业务逻辑,提升开发速度和质量。Google在Kotlin生态系统中的持续投入,展示了我们对这一技术的长期承诺和信心。
https://android-developers.googleblog.com/2024/05/android-support-for-kotlin-multiplatform-to-share-business-logic-across-mobile-web-server-desktop.html
在未来的开发过程中,我们将继续致力于优化KMP的使用体验,提供更多的资源和支持,帮助开发者们更好地利用这一强大的工具。期待在不久的将来,看到更多优秀的应用诞生,推动整个Kotlin社区的进步和发展。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。