Android生态下的Kotlin有哪些更新#GoogleIO 2023

news/2024/5/20 5:08:09 标签: android, kotlin, gradle

Android生态下Kotlin有哪些更新#GoogleIO 2023

自Android官方宣布Kotlin作为Android开发的第一语言,过去将近6年时间。下面是GoogleIO 2023宣布的Android生态的4项重要更新。

Kotlin编译器2.0版本

如果你是一位Kotlin开发者,你可能会对听到这个消息感到兴奋,因为Kotlin语言将通过2.0版本得到重大升级。有意思的是,新的Kotlin编译器版本2.0将成为Kotlin 2.0的默认编译器。这大大提升了性能,与以前的Kotlin编译器版本1.8相比。
Google IO
明年(2024年)将发布最终更新。Google通过Kotlin 2.0编译器旨在提高开发人员的生产力、易用性,并且新的2.0编译器还将推动Kotlin语言的更多功能进步。

如果您想尝试新的Kotlin 2.0编译器,只需在您的模块的Gradle Build文件中将Kotlin语言版本更新为2.0即可。

Kotlin DSL 用于 Gradle 构建

谷歌非常看好使用 Kotlin 语言完全开发 Android 应用。从 Android Studio Giraffe 开始,编写 Gradle 构建脚本文件的默认 DSL 脚本将是 Kotlin DSL,而不是 Groovy DSL。

要在 Gradle 构建脚本中使用 Kotlin DSL,只需将文件命名为 build.gradle.kts,而不是 build.gradle

使用 Kotlin DSL 的一个优点是它使语法提示更加准确,甚至在同步 build.gradle 文件之前就报告语法错误。

除此之外,开发人员还可以使用 Gradle 版本目录将所有应用程序的依赖项放在一个集中的位置,这对于可扩展性非常有帮助。

查看下面的链接:如果您正在寻找从 Groovy 迁移 Gradle 构建逻辑的方法。

https://docs.gradle.org/current/dsl/index.html

要查看示例,请在 Github 上查看 NowInAndroid项目。

https://github.com/android/nowinandroid

KSP(Kotlin符号处理器):优于Kapt(Kotlin注解处理工具)的更好选择

最初,Kapt是用于从Kotlin代码生成Java存根,允许以Java编写的注解处理器与Kotlin一起使用。

通过Kapt,注解处理变成了一个耗时的两步过程。
Kapt工作流程
KSP是对Kapt的一种以Kotlin为主的替代品,用于直接分析Kotlin代码。
KSP工作流程
KSP相对于Kapt有以下优势

  • 它速度提升了2倍,因为它不需要生成Java存根。
  • 类型更准确:因为它理解Kotlin语言的特定差异,如可空性。
  • 它具备多平台准备能力,因为它不依赖于Java源代码。
  • 要开始从Kapt迁移到KSP,请查阅以下官方迁移文档。

https://developer.android.com/build/migrate-to-ksp

Room、Glide、Moshi等热门库已经添加了对KSP的支持。而Dagger和Hilt尚未支持KSP。

Kotlin Multiplatform

Kotlin Multiplatform仍处于beta版本,处于实验阶段。谷歌正在将三个受欢迎的Jetpack库引入Kotlin Multiplatform生态系统中,它们是->AnnotationsCollectionsDataStore

我个人认为多平台是移动开发的未来。任何朝着这个方向迈出的一步都是正确的。

要了解在Kotlin Multiplatform中使用DataStore,请查看此kmm-samples存储库。

https://github.com/Kotlin/kmm-basic-sample

要关于Kotlin Multiplatform的内容,请阅读此官方文档。

https://developer.android.com/kotlin/multiplatform


http://www.niftyadmin.cn/n/433269.html

相关文章

echarts象形柱图实现电量效果柱状图

首先听到象柱形图pictorialBar,你会不会觉得很陌生? 然后,看看官网的示例,显示效果很抽象,觉得很不实用,真的有人会用到吗? 但是,我再让你看看下图,类似电量格效果的柱状…

Linux 基础《简答》题库及答案

Linux 基础《简答》题库及答案 文章目录 Linux 基础《简答》题库及答案简答题库1.简述DNS进行正向域名解析的过程2.简述使用ftp进行文件传输时的两种登录方式?它们的区别是什么?3.计算机网卡的网络配置信息必须手动设置…

hadoop本地化windows部署

文章目录 前言1. hadoop on windows1.1 安装jdk1.2 安装hadoop1.2.1 解压1.2.2 备用目录1.2.3 修改配置1.2.4 安装winutils-master1.2.5 格式化namenode1.2.6 启动hadoop1.2.7 web-ui登陆hadoop hdfs 2. spark on windows2.1 安装scala2.2 安装spark2.2.1 解压2.2.2 环境变量2.…

Android PopupWindow+RecyclerView 实现二级联动筛选

前言 这篇文章主要的功能是利用 PopupWindow 和 RecyclerView 实现条件筛选包括二级联动筛选,主要是仿小红书里的筛选功能而写的一个 Demo 效果如下,代码通俗易懂,保姆级教程 一、使用步骤 1.引入库 api com.github.CymChad:BaseRecycler…

window系统配置PCL的简化方法(不需要复制一百多个依赖项目名称,直接导入配置表)

1.下载文件 百度网盘: 链接:https://pan.baidu.com/s/1WQQ8kaDilaagjoK5IrYZzA 提取码:1111 注意:直接解压在E盘!!!!! 不解压在E盘也可以,后续替换环境变量和属性表文件…

Flutter的MaterialApp

简介 MaterialApp是Flutter中的一个顶层控件,用于创建一个基于Material Design风格的应用程序。 MaterialApp控件是一个方便的包装器,它提供了一些全局的配置和属性,用于设置应用程序的整体样式、路由导航和其他相关功能。 常用属性 以下…

微信公众号H5页面(vue)跳转至微信小程序页面方案总结

微信公众号H5跳转微信小程序方案总结 1.需求背景 最近由于发挥小程序的性能与用户体验优势,决定将微信公众号的部分功能跳转至小程序相关模块。解决方案 注意开放对象如下: 已认证的服务号,服务号绑定“JS接口安全域名”下的网页可跳转任意合法合规的小程序。已认证的非个人…

电脑小白不要错过这五款小众但强大的软件

电脑上的各类软件有很多,除了那些常见的大众化软件,还有很多不为人知的小众软件,专注于实用功能,简洁干净、功能强悍。 多语言翻译——QTranslate QTranslate是一款实用的多语言翻译工具。它可以在任何应用程序中选中文本&#…