前言

继Compose 、 Flutter,又又又冒出来一个KMM跨平台!! !

对于 Compose 和 Flutter 大家可能并不陌生,但是对于 KMM 也许会存在疑惑,KMM 全称 Kotlin Multiplatform Mobile ,故名思义它是用 Kotlin 实现的跨平台框架,那为什么今天突然会聊到它?

KMM到底是怎样的一个跨平台呢?

继Compose 、 Flutter,又又又冒出来一个“KMM跨平台”_跨平台

跨端早已成趋势

由于手机APP的运行受不同操作系统的限制,目前大多数的移动APP应用开发仍然需要针对不同的系统环境进行单独的开发。不过,为了降低开发成本、提高代码复用率,减少开发者对多个平台差异适配的工作量一直是跨平台开发框架追求的目标。

很多开发者还不不确定应该选择哪种技术来快速且低成本的开发应用程序,跨平台技术应运而生。

▶ 不过如果你熟知跨平台的发展历史,那么2021年可供大家选择的跨平台方案主选项只有两个:Flutter或者React Native。

▶ 跨平台应用程序开发
它允许用一段代码同时为两个操作系统开发应用。它并不固定使用某一种平台的编程语言编写代码。而且,由于直接使用了系统原生控件来呈现界面,它能为用户提供近乎原生平台应用的使用体验。

现在KMM跨平台出来了,又意味着什么?

继Compose 、 Flutter,又又又冒出来一个“KMM跨平台”_跨平台_02

KMM是什么

KMM 全称:Kotlin Multiplatform Mobile,是基于 Kotlin 语言进行多平台开发的一套技术框架,

它和Kotlin Native(简称 KN)有一定联系,但 KMM 主要面相移动端开发,即:Android、iOS、Web,而
KN 则主要面相 Linux、macOS、Windows 等

当然,KMM 在 iOS 平台的实现,离不开 Kotlin Native,Kotlin 代码最终会在 iOS 工程中生成一套
Framework 库,可供 Objective-C、Swift 进行调用
KMM 宗旨是使用 Kotlin 语言和技术栈,开发一套可以在多平台之间共享的代码库,用来构建统一的代
码逻辑,而不用针对各个平台都去实现自己的一套,从而导致人力的浪费

Kotlin Multiplatform Mobile – KMM 是基于 Kotlin 并应用在 iOS 和 Android 的一种跨平台技术,它的特点是结合了跨平台和原生开发协同开发的模式,如下图所示,简单的理解就是:「从纯原生开发变成了 KMM + 原生 UI 开发」。

继Compose 、 Flutter,又又又冒出来一个“KMM跨平台”_flutter_03

国内也已经有团队开始尝试实践KMM的应用了,比如这个携程机票 App KMM 跨端生产实践,反响还是很不错的以后KMM也会是新的潮流。

继Compose 、 Flutter,又又又冒出来一个“KMM跨平台”_iOS_04


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

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

继Compose 、 Flutter,又又又冒出来一个“KMM跨平台”_android_05

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

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

继Compose 、 Flutter,又又又冒出来一个“KMM跨平台”_跨平台_06

第三章 平台差异化实现

继Compose 、 Flutter,又又又冒出来一个“KMM跨平台”_flutter_07

第四章 与依赖库交互

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

第五章 处理多线程

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

继Compose 、 Flutter,又又又冒出来一个“KMM跨平台”_跨平台_08

第六章 使用 SQLDelight 操作数据库

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

继Compose 、 Flutter,又又又冒出来一个“KMM跨平台”_flutter_09