前言
KMM 这些年来一直“不温不火”,可以说很多使用 Kotlin 开发的 “Androider” 对它都很陌生,只有不多的大公司使用过。那为什么现在开始出现不少人对它追捧。
起因来自 去年10 月初 Android 官方宣布 Jetpack 开始要支持 KMM 了,目前 Collections 和 DataStore 已经可以通过依赖 -dev01 版本在多平台上使用,同时 KMM 进入 Beta 版本阶段。
而且在官方的介绍里 KMM 的早期使用者有百度、Netflix、VMWare、Philips 等,目前收到的反馈都挺不错,而 Beta 版本也意味着现在 KMM 已经具备了使用的基础。那就意味着有人先帮你吃螃蟹了。
螃蟹味道真不错(_)
跨平台技术的选择
▶ Kotlin Multiplatform Mobile ?
▶ jetpack 中的 Compose Multiplatform ?
▶ 还是使用Dart 的 flutter ?
▶ 还是选择html的方式 RN/Cordova /等……??
还在纠结Dart 这和原生 Java,swift “不兼容”的语法,还在为 dart 各种轮子发愁,学不会 flutter 不要紧。
其实 kotlin 就可以写跨平台,这就是 KMM(Kotlin Multiplatform Mobile),而且现在Android 官方宣布 Jetpack 开始要支持 KMM 了当然这种跨平台方式,当然Android 和 iOS 工程师还是少不了,但是我们可以把一些共用的模块放到Multiplatform共享模块,在核心数据逻辑处理等,可以共用一套,从而可以减少开发和维护的成本。
为什么选择KMM
❝
上手简单
❞
从可用性方面来说,在 KMM 上可以使用开源框架进行网络请求、数据缓存等,常见的数据格式都已经支持,并且这些开源库都已经提供稳定版本;从易用性方面来说,作为 Androider,几乎是0成本上手,且开源框架的使用都非常简单,甚至比 Android 原生的开源框架(OkHttp、Room 等)使用更简单,iOSer 可能需要一定的学习成本。
综上,我认为 KMM 在功能上已经可以满足基础的逻辑层跨平台诉求,在使用上也非常简单。
同样可以实现的技术我为什么不选上手简单的呢?
第一章 简介与基本环境搭建
- 什么是KMM?
- Kotlin Mutiplatform 之间的关系
- 与其他跨平台框架的简单对比
- 跑一个 KMM Demo
- KMM 工程文件结构
第二章 在现有工程中集成 KMM
- 为什么要在现有工程中集成?
- 如何在现有工程中集成 KMM
第三章 平台差异化实现
第四章 与依赖库交互
- KMM 的依赖类型
- 使用 Common 或 Android 依赖
- iOS 依赖
第五章 处理多线程
- 为什么需要在 KMM 中处理多线程?
- 可行的多线程切换方式
- KMM 多线程需要注意的问题
- 个人比较推荐的异步工作实现方案
第六章 使用 SQLDelight 操作数据库
- 数据库在 App 中的作用
- SQLDeilight 简介及特点
- 使用 SQLDelight 开发的流程
- 其他使用建议及注意事项