前言
现在最主流的跨平台方案应该也就是Flutter了,再就是RN,不过RN已经在慢慢退出历史舞台。
中小企业目前最优先选择的还是Flutter,Flutter现在的生态也逐渐很完善。不过大型App,我还是推荐混编,一些不重要的模块使用Flutter,重要的模块还是使用原生的好。
除了Fluttet的方案,还有一种方案可以选择,那就是KMM,Kotlin跨平台方案。
在共用代码部分,Android平台会直接构建成aar,与普通Android依赖无差异;iOS平台会使用 Kotlin/native 实现Kotlin与OC/Swift的相互调用,生成framework供现成的iOS项目直接依赖使用。
可以说无论对于新建立的项目,还是旧有维护已久的项目都非常友好,入侵性不大,接入成本小。
而UI部分,KMM没有直接提供跨平台实现,需要用各自原生去实现。
就拿携程来说
携程App已有很长的历史了,在类似这样一个庞大成熟的App中要引入一套新的跨端框架,最先考虑的就是接入成本。
而历史的跨端框架以及现存的RN、Flutter等,都需要大量的基建工作,最后才能利用上这个跨平台框架。
通常对于大型的APP引用新的框架,通信本身的属性肯定是没问题的,那么最关键要解决的就是对现有依赖的处理,像RN和Flutter如果需要对iOS原生API调用,需要从RN和Flutter内部底层增加访问API,而对于现有成型的一些API或者第三方SDK的API调用,将需要在iOS的工程中写好对接的接口API才可以实现,而这个工作量是巨大的。
而KMM这个跨端框架,正好可以规避这个问题,他只需要通过简单的配置就可直接调用原有的API,甚至不需要写额外的路由代码就可以实现。
那该如何学习
由于网上的博客文章非常零散,这里小编联合携程团队花费大量时间收集和整理,将KMM方面的知识点整理成了一个专题,并借此文章无偿分享给对KMM感兴趣的朋友,扫描下方二维码即可领取!!
《KMM跨平台框架入门教程》
第一章 简介与基本环境搭建
- 什么是KMM?
- Kotlin Mutiplatform 之间的关系
- 与其他跨平台框架的简单对比
- 跑一个 KMM Demo
- KMM 工程文件结构
第二章 在现有工程中集成 KMM
- 为什么要在现有工程中集成?
- 如何在现有工程中集成 KMM
第三章 平台差异化实现
第四章 与依赖库交互
- KMM 的依赖类型
- 使用 Common 或 Android 依赖
- iOS 依赖
第五章 处理多线程
- 为什么需要在 KMM 中处理多线程?
- 可行的多线程切换方式
- KMM 多线程需要注意的问题
- 个人比较推荐的异步工作实现方案
第六章 使用 SQLDelight 操作数据库
- 数据库在 App 中的作用
- SQLDeilight 简介及特点
- 使用 SQLDelight 开发的流程
- 其他使用建议及注意事项
第七章 处理 HTTP 网络请求
- 背景
- Ktor 是什么?
- 为 KMM 模块配置 Ktor
- 创建 Ktor 的 HttpClient
- 发送一个简单的 HTTP 请求
- 自定义请求
- 处理响应
- Ktor 的其他功能
- KMM 网络能力建设
第八章 KMM跨平台实战
- 跨端的 MVI 框架 —— MVIKotlin
- 对 Jetpack 架构组件移植的失败尝试
- 使用 kotlinx.serialization 对 SQLite 数据库反序列化
- 携程机票 App KMM 跨端 KV 存储库 MMKV-Kotlin
最后
希望这份资料可以给希望了解、学习、应用Android 跨平台框架KMM的小伙伴一个参考。