首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

KMM跨平台开发入门,看这一篇就够了~

源集是一个 Gradle 概念,用于逻辑上组合在一起多个文件,其中每个组都有自己依赖。 在 Kotlin Multiplatform 中,共享模块中不同源集可以针对不同平台。 ...android和iOSMain, 这些是来自相关生态系统常规库。 可以使用 CocoaPods 或其他依赖管理器原生 iOS 项目和使用 Gradle Android 项目中使用。.../kotlin目录下,创建新Kotlin 文件,代码如下所示 import kotlinx.datetime.* fun daysUntilNewYear(): Int {     val today...现在公共业务逻辑已经处理好了,只需要页面端调用方法然后解析数据并展示即可。这里我们仍然以Android实现为例。...写在最后 到这里,恭喜你,已经入门了KMM使用,更多使用方法需要在实际项目中不断地去总结,去尝试,Jetpack目前也在开发KMM版本,这对KMM发展将会是一个推进~

4.3K20

Kotlin 1.4-M1 现已发布!

可调用引用智能转换 在 Kotlin 1.3 中,您无法访问智能转换类型成员引用。...会在 build/libs 文件夹中生成一个 klib 文件,此文件可以在其他 Kotlin/JS 项目中使用,或在同一目中用作依赖。...对于上面的代码段,它们是这样: 在 Kotlin 1.4-M1 中,可以在使用 webpack 打包相应 JavaScript 代码旁 build/js/packages/<package_name...这有助于确保仍在使用默认后端用户不会受影响——假定他们已经将项目升级到 1.4-M1。 请注意,如果依赖和您项目使用 both 模式构建,仍然存在会导致 IDE 无法正常解析引用问题。...重载解析规则可能会有小幅变化。如果您有多个包含相同名称和不同签名函数,在 Kotlin 1.4 中调用函数可能会与在 Kotlin 1.3 中选择函数不同。

3.4K20
您找到你想要的搜索结果了吗?
是的
没有找到

Kotlin 1.4 现已发布,专注于质量和性能

此前端是编译器一部分,可以解析代码和名称、执行类型检查等,因此也会影响 IDE 性能。。我们将在未来版本中提供它预览,敬请关注!...语言功能 Kotlin 1.4 提供了许多新功能: Kotlin 接口 SAM 转换 库作者显式 API 模式 混合命名和位置参数 尾随逗号 可调用引用改进 在循环 when 内使用 break...无论您是针对单一平台还是在多平台项目中工作,在任何 Gradle Kotlin目中,都不再需要声明与 stdlib 依赖关系。从 Kotlin 1.4.0 开始,此依赖关系默认添加。...Web 目标仍然是 Kotlin 重要战略投资。...版本:0.14.4 kotlinx.html 版本:0.7.2 kotlinx-nodejs 版本: 0.0.6 可以在相应存储库中找到 kotlin-wrappers( kotlin-react等

1.8K30

还在被数据类序列化折磨?是时候丢弃 Gson 了

最重要是,跟其他 Kotlinx 家族成员一样,它将来会以跨平台身份活跃在 Kotlin 所有应用场景,如果你想要构建可移植程序,例如从 Android(Jvm)移植到 iOS(Native)...不知道为啥看代码第一行 plugin("kotlinx-serialization") } dependencies { compile(kotlin("stdlib", "1.2.60...Gson 做不到事儿 看到这里 Gson 哥坐不住了,这事儿尼玛我也会啊,不就解析个 Json 串吗,有啥难??...大家都知道,如果你想要在你目中做出成绩来,你必须要针对你业务场景做优化,市面上所有的轮子都倾向于解决通用问题,我们这些 GitHub 搬运工水平级别主要是看上轮子时候谁螺丝和润滑油上更好...不过这次结果可能就不是一个简单 null 了,而是: ? 用 Gson 解析之后,如果我们想要访问 d,直接抛出空指针。这是为什么呢?

2.2K10

【错误记录】在 Android Studio Terminal 终端执行 gradlew 报错 ( 无法将“gradlew”识别为 cmdlet、函数、脚本文件或可运行程序名称。请检查名称 )

AS\Coroutine> gradlew app:dependencies --configuration releaseRuntimeClasspath gradlew : 无法将“gradlew”识别为...cmdlet、函数、脚本文件或可运行程序名称。...所在位置 行:1 字符: 1 PS Y:\002_WorkSpace\001_AS\Coroutine> gradlew gradlew : 无法将“gradlew”识别为 cmdlet、函数、脚本文件或可运行程序名称...Windows 终端发生了改变 , 原来中断是 Windows cmd 命令行中断 ; 最新 Android Studio 中 , 使用是 Windows PowerShell 终端 ; 在 Windows...:kotlin-stdlib-common:1.6.0 -> 1.7.10 | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom

3.8K10

使用Kotlin Native技术开发iOS应用

创建Kotlin Native项目 Kotlin Native使用Gradle作为默认构建工具,想要在Xcode中编译Kotlin Native项目,需要在项目中添加相关运行脚本,该脚本调用Gradle...不过,此时程序还没有实现任何功能,为了在项目中使用Kotlin来编写iOS应用程序,可以在Kotlin Native项目的Project文件中创建一个Kotlin文件目录(如src/main/kotlin...ViewController类源码如下: import kotlinx.cinterop.ExportObjCClass import kotlinx.cinterop.ObjCAction import...kotlinx.cinterop.ObjCOutlet import platform.Foundation.NSCoder import platform.UIKit.* import kotlinx.cinterop.initBy...Kotlin Native测试 众所周知,AppCode本身就是基于IntelliJ IDEAKotlin插件,所以很多支持Kotlin功能对于Kotlin/Native也是同样支持(如代码检查、

1.9K30

Kotlin 写 Android ,难道只有环境搭建这么简单?

接着我们就用最基本写法 findViewById、类型强转拿到这个 textView 引用,然后 setText。 运行自然是没有问题。 不过,不过!...如果让大家自己实现一套机制来完成上面的功能,大家肯定会想,我首先得解析一下 XML 布局文件吧,并把里面的 View 存起来,这样方便后面的查找。我告诉大家,Kotlin 也是这么干!...注意到,这里 packageFqName 其实就是我们前面提到 kotlinx.android.synthetic.main. 不对呀,怎么创建了两个包呢?...其实第二个多了个 .view ,我们在 Activity 当中 导入包是第一个,但如果是我们用父 view 引用子 view 时,用是第二个: ... import kotlinx.android.synthetic.main.activity_main.view...XML 帮我们偷偷搞出了这么两个虚拟包,这样我们在代码当中能够引用到这个包就很容易解释了。

8K00

Kotlin 协程】协程异常处理 ④ ( Android 协程中出现异常导致应用崩溃 | Android 协程中使用协程异常处理器捕获异常 | Android 全局异常处理器 )

文件 ; ④ 创建 协程 全局异常处理器 MyCoroutineExceptionHandler 自定义类 , 需要 实现 CoroutineExceptionHandler 接口 ; 并覆盖接口中...import kotlin.coroutines.CoroutineContext class MyCoroutineExceptionHandler : CoroutineExceptionHandler...CoroutineContext, exception: Throwable) { Log.i(TAG, "在 MyCoroutineExceptionHandler 全局异常处理器 中处理捕获异常...验证协程中抛出异常 16:30:53.578 D Skia GL Pipeline 16:30:53.590 I 在 MyCoroutineExceptionHandler 全局异常处理器 中处理捕获异常...for package kim.hsl.coroutine ---------------------------- 在 MyCoroutineExceptionHandler 全局异常处理器 中处理捕获异常

1.3K10

Spring认证中国教育管理中心-Spring Data R2DBC框架教程七

Kotlin 支持 Kotlin是一种面向 JVM(和其他平台)静态类型语言,它允许编写简洁优雅代码,同时提供与用 Java 编写现有库出色互操作性。...使用 Kotlin 构建 Spring 应用程序最简单方法是利用 Spring Boot 及其专用 Kotlin 支持。...17.4.扩展 Kotlin扩展提供了使用附加功能扩展现有类能力。Spring Data Kotlin API 使用这些扩展为现有的 Spring API 添加新 Kotlin 特定便利。...Spring Data 模块在以下范围内提供对协程支持: Kotlin 扩展中延迟和流返回值支持 17.5.1.依赖关系 协同程序支持时启用kotlinx-coroutines-core, kotlinx-coroutines-reactive...在 Maven pom.xml 中添加依赖 org.jetbrains.kotlinx kotlinx-coroutines-core

1.3K40

《Kotin 极简教程》第14章 使用 Kotlin DSL第14章 使用 Kotlin DSL《Kotlin极简教程》正式上架:

内部DSL 内部DSL是指与项目中使用通用目的编程语言(Java、C#或Ruby)紧密相关一类DSL。它基于通用编程语言实现。...使用kotlinx.html DSL 写前端代码 为了加深对 Kotlin DSL 实用性上理解,我们本节再介绍一个 Kotlin 中关于 HTML DSL: kotlinx.html 。...kotlinx. html 分别提供了kotlinx-html-jvm 和 kotlinx-html-js库DSL , 用于在 JVM 和浏览器 (或其他 javascript 引擎) 中直接使用 Kotlin...提示: 更多关于kotlinx.html相关内容可以参考它 Github 地址 :https://github.com/Kotlin/kotlinx.html 要使用 kotlinx.html 首先添加依赖...现在我们把 HTML 部分代码用Kotlin DSL kotlinx.html 来重新实现一遍。

2.1K10

使用Kotlin Coroutines简单改造原有的爬虫框架

爬虫框架基本原理: 对于单个爬虫而言,从消息队列 queue 中获取 request,然后通过下载器 downloader 完成网络请求并获得 html 内容,通过解析器 parser 解析 html...比如将Response转换成Page对象,再对Page对象进行解析,Page解析完毕之后做一系列pipeline操作。 当然,在爬虫框架里还有 SpiderEngine 可以管理 Spider。...https://github.com/Kotlin/kotlinx.coroutines/tree/master/reactive 我在build.gradle中添加了 compile 'org.jetbrains.kotlinx...,协程版本号必须跟 Kotlin 版本要相符和。...之后, run、apply 等 Kotlin 标准库扩展函数替代了原先 RxJava map 操作。 Kotlin 协程是无阻塞异步编程方式。上面看似同步代码,其实是异步实现

1.3K20

Spring中国教育管理中心-Apache Cassandra Spring 数据教程十四

Kotlin 支持 Kotlin是一种面向 JVM(和其他平台)静态类型语言,它允许编写简洁优雅代码,同时提供与用 Java 编写现有库出色互操作性。...15.4.扩展 Kotlin扩展提供了使用附加功能扩展现有类能力。Spring Data Kotlin API 使用这些扩展为现有的 Spring API 添加新 Kotlin 特定便利。...但 Kotlin 巧妙类型推断允许使用更短语法。...Spring Data 模块在以下范围内提供对协程支持: Kotlin 扩展中延迟和流返回值支持 15.5.1.依赖关系 协同程序支持时启用kotlinx-coroutines-core, kotlinx-coroutines-reactive...在 Maven pom.xml 中添加依赖 org.jetbrains.kotlinx kotlinx-coroutines-core

1.6K40

干货 | 携程机票 App KMM 跨端生产实践

,因此当大型项目多人协作和自动化构建集成时,需要定制适配引用路径。...基于 Git SubModule 特性,我们先把被依赖 iOS 原生工程仓库设置为引用方 KMM 工程仓库 SubModule,然后增加一个动态获取引用路径自定义 Gradle Task,通过 Gradle...我们首先选择了两个官方库:kotlinx.coroutines 与 kotlinx.serialization,当前 Kotlin 生态中绝大部分第三方库都只能支持 Kotlin/JVM,能用于 KMM...因此,冻结通常都是冻结整颗引用树,在编译器无法提醒下层引用树中进行变更也会产生开发者无法在编译期发现潜在 crash 隐患,需要尤为小心。...Github kotlinx.coroutines 仓库关于 NoClassDefFoundError issues https://github.com/Kotlin/kotlinx.coroutines

3.2K10

kotlin--协程上下文、异常处理

:处理捕获异常 协程上下文实现了运算符重载,我们可以用+号来组合一个CoroutineContext元素 2.一般情况下,协程体内所有的子协程,都继承至根协程,协程继承关系不是我们所了解继承关系...,不能算是全新协程 等等 3.子协程继承父协程时,除了Job会自动创建新实例外,其他3不手动指定的话,都会自动继承父协程,Job对应是协程任务,每次新任务肯定都是新Job对象 有了这些概念后...at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:80) at kotlinx.coroutines.BuildersKt...2.SupervisorScope,这个我们前面已经用过了,就不重复介绍了 3.异常捕获器CoroutineExceptionHandler,协程上下文4之一,可以用CrashHandler理解,...,再启动子协程时,也会抛出异常,并且不可捕获 注意:新版本kotlin已修复这个bug,不会抛出异常了 3.Android中全局异常处理

92410
领券