2024 年 Kotlin Multiplatform 发展路线图 | 官方博客
记得加关注, Kotlin 之路不迷路!
Kotlinlang.org
随着 Kotlin Multiplatform 最近稳定,世界各地的开发团队已经可以在生产中无缝、舒适地采用它。不过,这对于 KMP 及其生态系统来说仅仅是一个开始。为了让您获得优良的跨平台开发体验,JetBrains 计划在 2024年对核心 Kotlin Multiplatform 技术、Compose Multiplatform、KMP 工具和 KMP 库做出一系列深入改进。本文将介绍我们在这些领域的计划和优先事项。
Compose Multiplatform
我们致力于将 Compose Multiplatform 打造成框架,供开发者创建在所有支持的平台上都一致、美观且高性能的应用程序。目前,我们的主要关注点是让 Compose for iOS 进入 Beta 版阶段,但同时也在推进其他事项。我们的计划:
-
使所有 Jetpack Compose 核心 API 和组件实现多平台。
-
提高 iOS 端的渲染性能。
-
使 Compose for iOS 应用中的滚动和文本编辑行为与 iOS 原生应用中的行为相同。
-
为共享所有类型的资源实现通用 API。
-
与 iOS 和桌面无障碍功能 API 集成。
-
提供多平台导航解决方案。
许多上述改进也有利于 Compose for Desktop。此外,我们也在提高其稳定性,并根据生产使用反馈进行改进。
我们还将继续探索 Compose for Web 的可能,特别是 Wasm。我们最近的目标是将其提升至 Alpha 版,其中包括:
-
允许您移植现有应用并重用所有通用代码。
-
支持不同的屏幕尺寸、方向和密度。
-
支持鼠标、触摸屏、实体键盘或屏幕键盘输入。
-
提高性能和二进制文件大小。
工具
我们致力于为 Kotlin Multiplatform 提供优异的 IDE 体验。这意味着不仅投资核心平台,例如,将 Kotlin IDE 插件迁移到 K2 编译器前端,还要为所有 Kotlin Multiplatform 目标和集成的代码库提供单一工具 (Fleet),从而消除在不同 IDE 之间不断切换的需求。
我们计划在您对使用 Fleet 进行 Kotlin Multiplatform 开发的反馈上快速迭代,确保满足您的需求,让您获得出色的开发体验。特别是,我们将在以下方面着重开展工作:
-
增强 Compose Multiplatform 支持,包括通用代码的实时预览和可视化调试工具。
-
帮助您进行项目配置的 IDE。
-
统一并增强 Multiplatform 项目所有部分的调试体验。
Multiplatform 核心
Kotlin Multiplatform 的一个流行场景是与 iOS 目标共享代码。我们希望关注在代码库中使用 Kotlin Multiplatform 框架的 iOS 开发者的开发体验。
这一领域的主要举措是直接从 Kotlin 导出到 Swift。这将消除 Objective-C 瓶颈,带来更广泛的 Swift 语言支持和更自然的 API 导出。此外,我们还在为 Kotlin 库作者创建专属工具。这些工具将提高 Kotlin API 导出到 Swift 时的兼容性和用户友好性。我们也在密切关注工具。IDE 和构建系统是开发者体验的重要组成部分,我们的目标是确保 Swift Export 顺利集成。
我们的其他举措包括加快 Kotlin/Native 编译速度、增强 CocoaPods 集成,以及引入对使用 SwiftPM 导出框架的支持。
我们还计划继续探索改进 Kotlin Multiplatform 应用程序构建设置的方式。在 Kotlin 1.9.20 中,我们对 Gradle Multiplatform DSL 发布了巨大改进,使其更易读写。我们将继续逐步完善。此外,我们正在测试 Amper,这是一个新的项目配置工具,专注于实用性、入门和 IDE 支持。
库生态系统
随着 Kotlin Multiplatform 生态系统的快速发展,库的向后兼容性变得至关重要。为此,JetBrains 团队和库创建者必须合作。我们的计划是:
-
改进 klib 格式,使库创建者可以利用其构建 JVM 库的知识。
-
在 Kotlin Multiplatform 库中实现与 JVM 相同的代码内联行为。
-
提供工具来确保您的多平台库公共 API 不会以不兼容的方式更改。
我们还将改进 KMP 库的发布流程。具体而言,我们计划:
-
无需 Mac 机器即可构建和发布 KMP 库。
-
为创建和发布 KMP 库提供模板和广泛的指导原则。
虽然 Kotlin Multiplatform 现已稳定,但我们仍在计划重大更新。请放心:以当前格式构建的库仍然可以与较新的 Kotlin 版本一起使用。
阅读更多内容
-
Kotlin 路线图:
https://kotlinlang.org/docs/roadmap.html
专注 Kotlin 领域的 2023 年度总结
凝聚 Kotlin 开发者的线上技术派对
一年一度 Kotlin 中文开发者大会
将在 12 月 16 至 17 日和大家线上见面。
10+ 位实力大咖将围绕
Kotlin Multiplatform、Android、
Kotlin 编译器插件、后端开发等
热门话题贡献精彩的技术演讲。
新增 Live Coding 环节,
带你上手 Compose Multiplatform。
还有来自 Kotlin 团队和社区小伙伴的
学习资源与经验分享。
陪你过一个专属 Kotlin 的充实周末!
也别忘了一键预约视频号开播提醒 ⏬
您也可以访问我们的大会专属页面,
填写活动报名表单,
在大会开始前收到邮件提醒。
本博文英文原作者:
Egor Tolstoy
这就是 Kotlin 编程语言
简洁、跨平台、且有趣!
本文分享自微信公众号 - JetBrains(JetBrainsChina)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Gradio-Lite: 完全在浏览器里运行的无服务器 Gradio
Gradio 是一个经常用于创建交互式机器学习应用的 Python 库。在以前按照传统方法,如果想对外分享 Gradio 应用,就需要依赖服务器设备和相关资源,而这对于自己部署的开发人员来说并不友好。 欢迎 Gradio-lite ( @gradio/lite ): 一个通过 Pyodide 在浏览器中直接运行 Gradio 的库。在本文中,我们会详细介绍 @gradio/lite 是什么,然后浏览示例代码,并与您讨论使用 Gradio-lite 运行 Gradio 应用所带来的优势。 @gradio/lite 是什么? @gradio/lite 是一个 JavaScript 库,可以使开发人员直接在 Web 浏览器中运行 Gradio 应用,它通过 Pyodide 来实现这一能力。Pyodide 是可以将 Python 代码在浏览器环境中解释执行的 WebAssembly 专用 Python 运行时。有了 @gradio/lite ,你可以 使用常规的 Python 代码编写 Gradio 应用 ,它将不再需要服务端基础设施,可以 顺畅地在浏览器中运行 。 开始使用 让我们用 @gr...
- 下一篇
SQL 也能搞复杂时序查询?使用 SQL 在 GreptimeDB 上做 Range 查询
查询并聚合一个「给定长度的时间范围的数据」,是时序数据中常见的一种查询模式。例如 PromQL 中的 Range selector,就原生地支持了这种时序查询。但对于通用的数据库查询语言 SQL ,这类时序查询很难通过原生的 SQL 完成,所以我们在 GreptimeDB 中引入了扩展的 SQL Range 查询语法,将时序查询能力与 SQL 高度灵活的表达能力相结合,实现了 SQL 对时序数据查询的原生支持。 ✨ 让数据动起来! 使用 SQL 在 GreptimeDB 上实现动态 Range 查询 https://greptime.cn/playground 🔧 点击链接加入我们的 Playground,立即体验👆 示例 我们用一个例子来介绍 Range 查询。下面这张表 temperature 记录了不同城市在不同时间的气温: 我们想查询北京从 2023 年 5 月 2 日(时间戳为 1682985600000 )以前的: 每日的日平均气温; 每日的周平均气温; 如果某天的数据点缺失,则以前后两天平均气温均值作为这天的平均气温。 我们首先从 PromQL 的视角来看如何去写这句...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8编译安装MySQL8.0.19
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Mario游戏-低调大师作品
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Linux系统CentOS6、CentOS7手动修改IP地址
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- Hadoop3单机部署,实现最简伪集群