2022-08-21 20:12:04
当前主流跨平台开发工具包括Electron、Tauri、Wails、React Native、Flutter、Kuikly和UniApp,它们在技术栈、平台支持、性能表现和适用场景上各有特点。
技术原理:内置Chromium内核,将网页与浏览器打包为跨平台程序,采用HTML/JS技术栈。
平台支持:Windows、MacOS、Linux三大桌面系统。
优势:前端开发者可直接复用现有技能,通过Node.js调用系统底层功能(如系统托盘、剪贴板),支持VSCode、Slack等知名应用开发。
局限性:程序包体积大,运行时内存占用高(需独立运行Chromium实例),且不支持移动端平台。

Tauri
技术原理:采用Rust和HTML开发,依赖系统自带的WebView组件,对系统API进行高度封装。
平台支持:三大桌面系统及iOS、安卓平台。
优势:程序成品体积极小(最小约3MB),运行内存占用低(最低约40MB)。
局限性:不支持WebView组件的平台(如Windows 7)需引导用户安装;各系统WebView渲染逻辑差异可能导致界面表现不一致,增加测试成本。
Wails
技术原理:与Tauri类似,但使用Go语言作为后端语言。
平台支持:三大桌面操作系统。
特点:通过Web前端技术栈实现跨平台,适合需要Go语言后端支持的场景。
React Native
技术原理:通过JavaScript执行引擎运行程序,利用Bridge将节点映射为原生组件;新架构采用JSI实现并发渲染,通过TurboModules按需加载。
平台支持:Windows、macOS、Android、iOS和网页平台,通过鸿蒙化项目兼容鸿蒙系统。
优势:性能接近原生应用,适合高频交互场景,支持大量现有应用开发。
局限性:旧架构存在性能瓶颈,新架构需依赖特定技术优化。

技术原理:使用Dart语言开发,自实现渲染引擎,不依赖原生组件。
平台支持:桌面端三大平台(iOS、Android和网页),通过鸿蒙化项目兼容HarmonyOS。
优势:渲染效果流畅,表现层在不同平台下统一,大幅节省测试成本。
局限性:海外工具通常不提供小程序支持,属于本土化特性缺失。

Kuikly
技术原理:采用Kotlin语言开发,基于KMP实现跨平台能力,通过原生映射方式构建应用。
平台支持:开源支持Android、iOS和HarmonyOS,未来将扩展至网页、小程序及桌面平台。
优势:对HarmonyOS和小程序深度适配,兼容性优化优于第三方方案。
局限性:目前覆盖平台较少,需关注未来扩展进度。
UniApp系列
技术原理:
标准版:采用JS开发,通过WebView技术在移动端运行,小程序端编译为JS代码。
UniAppX版:采用UTS(类TypeScript)开发,各平台编译为原生代码(如iOS端生成Swift,HarmonyOS端生成ArkTS)。
平台支持:Android、iOS、HarmonyOS、网页及全平台小程序(包括微信、支付宝、抖音、京东等)。
优势:UniAppX版性能可达原生水平,支持多端小程序兼容。
局限性:不同平台表现层可能存在差异,需花费较多时间处理兼容性问题。