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

KotlinNative KMM项目架构

[项目架构.png] 原生系统层:这里提下原生系统层的目的是,有些平台特性需要分开实现,比如读取文件、打印日志、摄像头等。...这样就可以使用已有的SDK,后续也可以保持接口不变,直接使用KMM实现SDK,alog、PlatformMMKV。...当然如果依赖了一些ktor网络,包也会变大,避免这个问题也可以不用依赖ktor,直接依赖现有的网络来实现一个KMM SDK。...[项目结构.png] 三、使用expect/actual编写平台特定的代码 以打印日志为例,打造一个alog日志SDK 在commonMain定义IALog接口,声明fun v函数,其他函数忽略。...有2种方式构建:1、本地构建,写一个sdkframework项目依赖其他模块的klib包,来构建sdkframework。

3.1K00

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

第16章 使用 Kotlin Native 非常感谢您亲爱的读者,大家请支持!!!...在前面的所有章节,我们使用Kotlin 都是基于 JVM 的运行环境。本章我们将从 JVM 的运行环境离开,走向直接编译生成原生机器码的系统编程的生态系统:Kotlin Native 。...Kotlin Native 的设计初衷是为了支持在非JVM虚拟机平台环境的编程, ios、嵌入式平台等。同时支持与 C 互操作。...目录 klib 目录下是 Kotlin 的标准的关联元数据文件以及 Kotlin Native 针对各个目标平台的 bc 文件 kotlin-native-macos-0.3$ tree klib...,Kotlin Native 使用的是 mingw 来实现的。

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

Kotlin Native凭什么吸引你

阅读字数:2615 | 7分钟阅读 摘要 Kotlin 作为一门跨平台的语言,不仅可以支持 Android 、JVM、前端的开发,今年 Kotlin 发起了 Native 的项目,让 Kotlin 可以实现原生侧的跨平台开发...另外Java 和 Kotlin 是可以进行互操作的,在使用 Kotlin 开发的过程随时都可以切换到Java 继续开发,这对于还不熟悉Kotlin 的开发者来说会相当便利的。...通过上面的.def 文件就可以去生成需要的。 基本类型 在正式开发的过程,所处理的更多是类型之间的映射。....klib 前面提到的都是Kotlin 与C 语言交互,而要能够应用就需要进行编译,对于文件的编译要使用 -p library参数。...上图中编译出来的是一个.klib文件,可以被其他的Kotlin 程序复用。 Kotlin 还提供了klib的管理工具,可以进行第三方的安装以及管理,并且还能查看的内部情况。

1.4K40

Android数据高手秘籍(十),如何在Kotlin更好地使用LitePal

为了更好地兼容Kotlin语言,LitePal现在不再只是一个了,而是变成了两个,根据你使用的语言不同,需要引入的也不同。...这样的话也就不存在什么泛型擦除的问题了,因为Kotlin在编译之后会直接使用实参替代内联方法泛型部分的代码。 简单点来说,就是Kotlin是允许将内联方法的泛型进行实化的。...T.class这样的语法在Java是不可能的,而在Kotlin借助泛型实化功能就可以使用T::class.java这样的语法了。...关于Kotlin泛型实化这部分的讲解就到这里,现在我们重新回到LitePal上面。讲了这么泛型实化方面的内容,那么LitePal到底如何才能利用这个特性进行优化呢?...注意,这里我使用的是扩展方法,而不是修改了原有方法,这样的话两种写法你都可以使用,全凭自己的喜好,如果是直接修改原有方法,那么项目升级之后就可能会造成大面积报错了,这是谁都不想看到的。

3.1K30

开源|携程机票 App KMM 跨端 KV 存储 MMKV-Kotlin

由于目前 Kotlin Multiplatform 生态尚处于起步阶段,大部分 Kotlin 开源都是 JVM only 的,因此在我们团队的日常开发过程迫切需要一些能够支持 KMM(Kotlin...携程的基础框架团队经过一系列评估后决定使用腾讯的开源 MMKV (参考链接 2)用于满足携程 App 的 KV 存储需求。...它们的核心都是 klib 文件,klib 是纯 Kotlin 工程间互相引用的专用格式,例如 target 为 iOS 系统的纯 Kotlin/Native 工程可以单独添加对这几个 iOS klib...但考虑到 Kotlin/Native 在 iOS 单平台开发好像并不存在实际使用场景和需求,因此 MMKV-Kotlin 的文档并没有将这几个 klib 的依赖代码列出。...MMKV-Kotlin 也尽量完整保留了 MMKV 平台特有的特性,可以方便 Kotlin Multiplatform 开发者在平台相关的 source set 中使用

1.7K20

Kotlin 1.4-M1 现已发布!

☞标准的渐进式变更:完成弃用周期并弃用一些额外的部分。 您可以在变更日志中找到完整的变更列表。我们要一既往地感谢外部贡献者。...现在,它仅包含可以在所有三个目标平台(JVM、JS、Native)上使用的成员,这样您就可以确保同一代码可以用于任何一个平台。 use() 和时间测量函数的新协定 我们将在标准扩大协定的使用。...在以下示例,可以将 String 类型上的 @Foo 注解发出到字节码,然后由代码使用: 有关如何在字节码中发出类型注解的详细信息,请参阅 Kotlin 1.3.70 版本博文的相关部分。...会在 build/libs 文件夹中生成一个 klib 文件,此文件可以在其他 Kotlin/JS 项目使用,或在同一项目中用作依赖项。...请注意,一些 kotlin-wrappers)在使用新的 IR 编译器后端时会出问题,因为它们依赖于默认后端的特定特性。我们已经意识到这一点,以后将改进此功能。

3.4K20

Kotlin Native实战开发

,它主要包含一个基于LLVM的后端编译器的和一个Kotlin本地运行时。...由于Kotlin Native本身是一个gradle构建的项目,所以可以使用idea直接打开Kotlin Native目录下的samples文件,idea会自动识别该项目。...其中,bin目录包含众多的与Kotlin Native相关的执行命令,klib目录则主要包含Kotlin的标准的关联元数据文件以及针对各个目标平台的bc文件,konan主要包含编译器依赖的一些jar包和一些已经编译好的项目实例...图16-5 使用Gradle工具栏编译项目 然后,在命令行执行KotlinorApp.kexe命令,即可看到输出结果,对应的命令如下。...16.2.6 命令行方式编译Kotlin Native 对于Kotlin Native项目来说,除了允许Gradle方式构建编译外,还可以使用命令行的方式来编译项目

1.2K20

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

下面是一些最近使用 Kotlin 开发的优秀软件示例: 服务器端:Atlassian、Adobe、ING Bank; Android:Google Home、Duolingo、Zomato; 平台移动端...这个新向导为您提供了一个创建和配置不同类型的 Kotlin 项目的地方,即使使用更复杂的结构(例如平台项目),也可以轻松上手。...无论您是针对单一平台还是在平台项目中工作,在任何 Gradle Kotlin 项目中,都不再需要声明与 stdlib 的依赖关系。从 Kotlin 1.4.0 开始,此依赖关系默认添加。...您可以使用在多个原生目标之间共享的通用代码平台相关的。 您可以在共享源集中仅指定一次依赖项,而不是在共享和平台专用源集中同一的不同变体上指定依赖项。...我们继续开发 Kotlin 格式 Klib,这种格式在后台用于共享平台

1.8K30

Kotlin Multiplatform 实战记 | QCon

Android 平台产物 aar,iOS 平台使用 Kotlin Native 编译,产物 framework 与平台无关的 common 逻辑可以跨更多的平台 Mac、Linux、Windows、...Web 等 2 Kotlin 是如何实现跨平台的?...,然后会执行对应的 cinterop task,执行成功以后会生成上图里的 klib 文件,里面包含了导出的头文件函数(knm 文件),最后代码里 import 进来就可以直接使用了。...不可变不只是 val ,必须是 frozen 状态) 使用协程 使用 @ThreadLocal 或 @SharedImmutable 封装平台特性的线程方法(线程池、Handler、GCD) 使用原子类...如果有多端业务开发的场景(常见于 B 端业务),逻辑层可以用 Kotlin 跨更多的平台,饿了么商家端和美团商家端就有在这个场景下使用

1.5K10

5个Python自动化EDA

在Alerts选项卡的简单文本中高亮显示数据质量问题,高相关性,类不平衡等。 在variables 选项卡给出了所有变量的单变量分析。有助于了解该变量的分布和统计特性。...如果在Jupyter或Kaggle工作,可以使用show_notebook()来呈现报告,在本地可以使用show_html()在新的浏览器窗口中打开报告。...Klib Klib是一个有趣的小,非常容易使并且创建了非常有用的视觉效果。它还包含清理和预处理数据的功能。...由于变量的数量非常,因此很难看到相关性,但默认的配色方案可以让我们看到相关性较高的地方聚集在一起,用深蓝色标记。 图表的配色方案很好,信息也很清晰。...但是ChatGPT也直接支持了Jupyter,可以集成到开发环境,这使得这个变得多余,但是如果你希望通过使用OpenAIs API密钥来避免复杂性,简单地使用Sketch作为python包是最简单的方法

19210

JetBrains 发布了 Kotlin Multiplatform 的首个稳定版本

Kotlin Multiplatform 的 Expect 和 Actual,解决了调用本机平台 API 的需求 本机 API 问题是通过预期声明和实际声明的机制来解决的。...JetBrains 建议仅对平台 API 使用 expect/actual,其他情况使用普通接口。...2022 年的一项调查显示,Kotlin Multiplatform 应用程序的代码共享率高达 63% Kotlin Multiplatform 适用于非 GUI 代码,但有一个相关项目 Compose...去年,谷歌通过 引入 其他一些 Jetpack 的“实验预览”,表达了对 Kotlin Multiplatform 的一些支持,这些不是用于生产的,而是用于“在针对 Android 和 iOS 应用程序的平台项目使用这些...今日好文推荐 “谷歌有谷歌的规矩” 丢掉 LangChain、像 Docker一样编排大模型应用程序:这支十余人的年轻创业团队如何在2个月做出一个LLMOps平台

19120

Kotlin Symbol Processing (KSP) Alpha 版现已发布

Kotlin 构建轻量级编译器插件的全新工具。...KSP 提供的功能类似于 KAPT,但速度提高了 2 倍,可以直接访问 Kotlin 编译器功能,并且开发时充分考虑到了平台兼容性。 KSP 兼容 Kotlin 1.4.30 及更高版本。...诸如 Room 等注释处理器在 Android 平台无处不在,它们依赖于通过 Kotlin 注释处理工具 (KAPT) 实现的 Java 注释处理兼容性。...开始使用 要查看 KSP 的实际运行情况,请从 GitHub 下载 KSP Playground 项目。...您可以从中获得: : 将构建器模式作为 KSP 处理器实现的小型 test-processor 使用项目: 显示如何在实际 Kotlin 项目使用构建器处理器的 workload 目录 实现构建器的所有逻辑全部位于

1K20

使用Kotlin Native技术开发iOS应用

创建Kotlin Native项目 Kotlin Native使用Gradle作为默认构建工具,想要在Xcode编译Kotlin Native项目,需要在项目中添加相关的运行脚本,该脚本调用Gradle...相比使用Xcode创建的原生iOS项目而言,使用Kotlin/Native方式创建的iOS项目显然一些配置文件(Frameworks和KotlinNativeFramework)。...不过,此时的程序还没有实现任何的功能,为了在项目使用Kotlin来编写iOS应用程序,可以在Kotlin Native项目的Project文件创建一个Kotlin的文件目录(src/main/kotlin...需要注意的是,使用AppCode创建的Kotlin Native项目默认是没有引入iOS的UIKit.framework系统的,所以在使用iOS的相关之前需要先导入相应的。...当然,除了上面介绍的功能外,Kotlin Native还支持调用Objective-C标准 API,而且也为此提供了非常便捷的阅读API文档的方法,可以说Kotlin Native是Kotlin平台的真正魅力之所在

1.9K30

使用 Kotlin Symbol Processing 1.0 缩短 Kotlin 构建时间

其与 Kotlin 注解处理工具 (KAPT) 的功能相似,但速度提高了 2 倍,同时还可以直接访问 Kotlin 语言结构并支持多个平台目标。...此举大幅提升了构建速度 (对于 Room 的 Kotlin 测试应用 而言速度提高了 2 倍),同时也意味着 KSP 可以在非 Android 以及非 JVM 环境 ( Kotlin/Native 和...开始使用 KSP 要开始使用 KSP,您可以从 GitHub 下载 KSP Playground 项目,从中您将了解如何将 KSP 用作注释处理器以及使用应用/: 注释处理器: 将构建器模式作为 KSP...处理器实现的小型 test-processor 使用: 显示如何在实际 Kotlin 项目使用构建器处理器的 workload 目录 如果您是应用开发者,请查看 支持列表 以及 快速入门 指南...最后 通过使用 KSP 1.0 版,您可以发现 Kotlin 项目的构建速度得到了提升,因为您将不再使用基于 KAPT 的

3.7K10

今天Kotlin 1.3正式发布:支持协程和平台组件Kotlin 开发者社区

,此外,Kotlin 的跨平台功能将为 Android 和 iOS 应用程序等组件之间共享业务逻辑,服务器也可以与 Web 和移动客户端共享逻辑,而且平台让日常的开发变得便捷。...,Coroutines 语法和标准 API 都已稳定,你可以开始使用它了。...详情请阅读:https://kotlinlang.org/docs/reference/native-overview.html 平台项目和工具 Kotlin 团队称,能在所有平台上运行是 Kotlin...虽然 Kotlin平台功能仍处于试验阶段,但 1.3 版本算是向前迈出了一大步。 Kotlin 1.3 还附带了一组平台,涵盖了 HTTP、序列化和协同管理等日常任务。...编写平台代码最简单的方法是依赖这些,你还可以创建自己的平台,将特定平台的依赖项包装到通用 API

1.3K20

一起看 IO | Jetpack 组件的新特性

在 Room 2.4 ,对 Kotlin Symbol Processing (KSP) 的支持已经稳定。在我们针对 Kotlin 代码的基准测试,KSP 相对 KAPT 有两倍的速度提升。...Room 2.4 还内建了对枚举和 RxJava3 的支持,同时也全面支持 Kotlin 1.6。 我们从 Room 2.5 开始使用 Kotlin 对整个进行重写。...如果想要了解如何在各种 SharedPreferences 的应用场景中使用这一强大的替代方案,您可以查看 MAD Skills: DataStore 系列文章和视频,其中包含了如何测试应用 DataStore...如需了解有关 Paging 3 的更多信息,请参阅 Android 开发者网站全新简化版的教程: Paging Basics Codelab,它描述了如何在包含列表的应用中集成 Paging 。...架构指南 针对我们的核心架构如何协同使用这一问题,您想要了解更多信息,可以观看我们的视频与 文章 合集,这其中涵盖了现代 Android 开发最佳实践系列内容——MAD Skills: 架构。

3.1K20

Jetpack Compose Beta 版现已发布!

时机正好,不妨趁现在开始学习 Compose,并着手规划今年 1.0 版发布之后,您将如何在接下来的项目或功能中使用该工具包。...Compose 完全使用 Kotlin 构建,可利用其优秀的 语言特性 提供功能强大、简洁且直观的 API。例如,借助 协程,我们可以编写更简单的异步 API,描述手势、动画或滚动。...欢迎您持续关注 "谷歌开发者" 公众账号,及时了解 最新一周 的挑战内容,积极参与,赢取包括 Google Pixel 5 在内的 1,000 份奖品吧!第二周挑战正在进行,点击此处 了解详情。...现在时机正好,不妨开始学习 Jetpack Compose,并规划如何在接下来的项目使用该工具包。...我们期待收到您对在应用采用 Compose 的 反馈,您也可以在 Kotlin Slack 的 #compose 频道参与讨论或在下方留言区和我们分享。

5.6K10

Kotlin 推出新功能:无需同时了解 Kotlin 和 JavaScript

如今,JetBrains 提供了多个支持平台 kotlinx.coroutines、kotlinx.serialization、kotlinx-datetime。...而 Kotlin 社区也紧跟着这样的趋势发展,出现了愈来愈多的、框架来支持平台 Arrow、Okio、Apollo 等在新版本中都支持了平台开发。...如果 Compose for Web(Android 上使用平台版 Jetpack Compose)能够用 Kotlin/Wasm 代替 Kotlin/JS 来完美执行基于 Canvas 的像素渲染...有趣的是,只需要提供 WASI 平台中的特定部分,就能使用 Kotlin平台(例如 kotlinx-datetime 或 Okio)。.../Wasm 示例的 GitHub 存储 要运行 Kotlin/Wasm 项目,您需要更新目标环境的设置: Chrome,对于版本 109 或更高版本: 1.

1.5K20

Android 9 Pie 现已面向全球正式发布!

借助配套的 UI 模板,Slices 能够将应用内容以高动态、富交互的形式插入到多个使用场景,比如 Google Search 和 Assistant。请进一步了解如何在应用构建 Slices。...我们调高了检查器在以下两类的优先级:1) 存在历史漏洞,2) 需要处理复杂且不受信任的输入, libui、libnl 和 libmediaplayerservice 一类的都在调整范围内。...您亦可使用 AndroidX 的 HeifWriter从 YUV 字节缓冲区、Surface以及位图中写入 HEIF 静态图像。...我们在 Kotlin 性能方面进行了长期资源投入,同时持续加大对 Kotlin 的支持,优化 Kotlin 代码性能。...此外,适用于 Pixel 设备的系统映像现可供下载 请前往 Android 开源项目资源的 Android 9 板块,获取更多 Android 9 的相关资源。

9.1K10
领券