KMM以前不温不火,为何近期这么多人开始追捧_android

前言

KMM 这些年来一直“不温不火”,可以说很多使用 Kotlin 开发的 “Androider” 对它都很陌生,只有不多的大公司使用过。那为什么现在开始出现不少人对它追捧。

起因来自 去年10 月初 Android 官方宣布 Jetpack 开始要支持 KMM 了,目前 Collections 和 DataStore 已经可以通过依赖 -dev01 版本在多平台上使用,同时 KMM 进入 Beta 版本阶段。

而且在官方的介绍里 KMM 的早期使用者有百度、Netflix、VMWare、Philips 等,目前收到的反馈都挺不错,而 Beta 版本也意味着现在 KMM 已经具备了使用的基础。那就意味着有人先帮你吃螃蟹了。

螃蟹味道真不错(_)

KMM以前不温不火,为何近期这么多人开始追捧_Android_02

跨平台技术的选择

▶ 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以前不温不火,为何近期这么多人开始追捧_kotlin_03

为什么选择KMM

上手简单

从可用性方面来说,在 KMM 上可以使用开源框架进行网络请求、数据缓存等,常见的数据格式都已经支持,并且这些开源库都已经提供稳定版本;从易用性方面来说,作为 Androider,几乎是0成本上手,且开源框架的使用都非常简单,甚至比 Android 原生的开源框架(OkHttp、Room 等)使用更简单,iOSer 可能需要一定的学习成本。

综上,我认为 KMM 在功能上已经可以满足基础的逻辑层跨平台诉求,在使用上也非常简单。

同样可以实现的技术我为什么不选上手简单的呢?

第一章 简介与基本环境搭建

  • 什么是KMM?
  • Kotlin Mutiplatform 之间的关系
  • 与其他跨平台框架的简单对比
  • 跑一个 KMM Demo
  • KMM 工程文件结构

KMM以前不温不火,为何近期这么多人开始追捧_开发语言_04

第二章 在现有工程中集成 KMM

  • 为什么要在现有工程中集成?
  • 如何在现有工程中集成 KMM

KMM以前不温不火,为何近期这么多人开始追捧_kotlin_05

第三章 平台差异化实现

KMM以前不温不火,为何近期这么多人开始追捧_跨平台_06

第四章 与依赖库交互

  • KMM 的依赖类型
  • 使用 Common 或 Android 依赖
  • iOS 依赖

第五章 处理多线程

  • 为什么需要在 KMM 中处理多线程?
  • 可行的多线程切换方式
  • KMM 多线程需要注意的问题
  • 个人比较推荐的异步工作实现方案

KMM以前不温不火,为何近期这么多人开始追捧_kotlin_07

第六章 使用 SQLDelight 操作数据库

  • 数据库在 App 中的作用
  • SQLDeilight 简介及特点
  • 使用 SQLDelight 开发的流程
  • 其他使用建议及注意事项

KMM以前不温不火,为何近期这么多人开始追捧_Android_08