最佳桌面和移动应用框架
跨平台框架用一套代码库为 Windows、macOS、Linux、Android 和 iOS 构建应用。框架的工具链和 SDK 会进入用它构建的每个应用,因此框架中的遥测可能成为您应用中的遥测。下列每个框架都按相同的公开标准评级:开源、跟踪器和遥测、资金来源以及独立审计。
我们推荐的技术栈是 Tauri 搭配 Svelte 和 TypeScript。Forward Email 的应用就是一个公开示例:一套 Tauri、Svelte 和 TypeScript 代码库同时提供网页邮箱以及桌面和移动应用。
1. Tauri 等级 B 编辑推荐
使用 Web 前端和 Rust 后端构建桌面和移动应用的框架,使用操作系统的 WebView。
推荐理由: 用一套 Web 代码库构建小巧、快速的桌面和移动应用,使用系统 Web 视图而不是捆绑浏览器。Rust 核心带有权限系统,没有遥测,并有公开的独立审计。与 Svelte 和 TypeScript 搭配良好,Forward Email 的应用(github.com/forwardemail/mail.forwardemail.net)就是如此,用一套 Tauri、Svelte 和 TypeScript 代码库发布到 Windows、macOS、Linux、Android 和 iOS。
总部位于荷兰 (九眼联盟)。 分数 85/100。
2. Apache Cordova 等级 B
Apache Software Foundation 推出的框架,使用 HTML、CSS 和 JavaScript 构建移动应用,打包在原生 WebView 中,并通过插件访问设备 API。
总部位于美国 (五眼联盟)。 分数 80/100。
3. BeeWare 等级 B
用于构建原生应用的 Python 工具集,包括使用各平台原生控件的 Toga GUI 工具包和 Briefcase 打包工具。
分数 80/100。
4. GTK 等级 B
用 C 编写的图形用户界面工具包,提供多种语言的绑定。由 GNOME 项目开发。
总部位于美国 (五眼联盟)。 分数 80/100。
5. Iced 等级 B
基于 Elm 架构的 Rust 跨平台 GUI 库,注重简洁性和类型安全。
分数 80/100。
6. Kivy 等级 B
支持多点触控的跨平台应用 Python 框架,自绘 GPU 加速控件,并使用 KV 设计语言。
分数 80/100。
7. NativeScript 等级 B
使用 JavaScript 或 TypeScript 构建原生 Android 和 iOS 应用的框架,可直接访问原生平台 API,可与 Angular、Vue、React、Svelte 或 Solid 配合使用。
总部位于美国 (五眼联盟)。 分数 80/100。
8. Wails 等级 B
使用 Go 和 Web 技术构建桌面应用的框架,前端使用操作系统的原生 WebView。
分数 80/100。
9. Slint 等级 C
使用声明式标记语言构建原生用户界面的 UI 工具包,提供 Rust、C++、JavaScript 和 Python API,适用于桌面、移动和嵌入式设备。
总部位于德国 (十四眼联盟)。 分数 65/100。
10. .NET MAUI 等级 D
Microsoft 推出的跨平台 UI 框架,用一套 C# 和 XAML 代码库构建原生 Android、iOS、macOS 和 Windows 应用。
总部位于美国 (五眼联盟)。 分数 50/100。
11. Avalonia UI 等级 D
适用于 .NET 的跨平台 UI 框架,使用 XAML 和 C# 自绘控件,支持 Windows、macOS、Linux、Android、iOS 和 WebAssembly。
总部位于爱沙尼亚。 分数 50/100。
12. Capacitor 等级 D
跨平台原生运行时,可在 Android 和 iOS 上以及作为渐进式 Web 应用运行网页应用,并提供用于原生设备功能的插件 API。
总部位于美国 (五眼联盟)。 分数 50/100。
13. Electrobun 等级 D
用 TypeScript 构建桌面应用的框架,原生层用 Zig、Objective-C 和 C++ 编写,打包体积小,并内置差分更新。
分数 50/100。
14. Electron 等级 D
通过捆绑 Chromium 和 Node.js,使用 JavaScript、HTML 和 CSS 构建跨平台桌面应用的框架。
总部位于美国 (五眼联盟)。 分数 50/100。
15. Expo 等级 D
基于 React Native 构建的框架和工具集,用于构建 Android、iOS 和网页应用,提供 CLI、SDK 模块、基于文件的路由和可选的云构建服务。
总部位于美国 (五眼联盟)。 分数 50/100。
16. Flutter 等级 D
Google 推出的 UI 工具包,用一套 Dart 代码库构建原生编译的移动、网页和桌面应用,使用自有渲染引擎绘制控件。
总部位于美国 (五眼联盟)。 分数 50/100。
17. Framework7 等级 D
用于构建具有 iOS 和 Material Design 外观的移动、桌面和网页应用的 HTML 和 JavaScript 框架,可与 Vue、React 或 Svelte 配合使用。
分数 50/100。
18. Fyne 等级 D
Go 的 GUI 工具包,用一套代码库构建桌面、移动和网页应用。
分数 50/100。
19. Ionic 等级 D
由 Web 组件构成的 UI 工具包,使用 HTML、CSS 和 JavaScript 构建移动、桌面和渐进式 Web 应用,可与 Angular、React 或 Vue 配合使用。
总部位于美国 (五眼联盟)。 分数 50/100。
20. Jetpack Compose 等级 D
Google 推出的 Android 应用声明式 UI 工具包,用 Kotlin 编写,界面由可组合函数构建。
总部位于美国 (五眼联盟)。 分数 50/100。
21. Kotlin Multiplatform 等级 D
JetBrains 推出的技术,可在 Android、iOS、桌面、网页和服务器之间共享 Kotlin 代码,并通过 Compose Multiplatform 共享用户界面。
总部位于捷克。 分数 50/100。
22. Lynx 等级 D
使用 CSS 和 React 等 Web 技术构建原生移动和网页界面的跨平台框架,采用多线程渲染引擎。
分数 50/100。
23. NW.js 等级 D
结合 Chromium 和 Node.js 的运行时,用 HTML 和 JavaScript 构建桌面应用,可从 DOM 调用 Node.js 模块。
分数 50/100。
24. Quasar 等级 D
基于 Vue.js 的框架,用一套代码库构建网页、移动和桌面应用,提供 Material 组件库和 CLI。
分数 50/100。
25. React Native 等级 D
Meta 推出的框架,使用 React 和 JavaScript 或 TypeScript 构建原生 Android 和 iOS 应用,渲染平台原生 UI 组件。
总部位于美国 (五眼联盟)。 分数 50/100。
本列表的编制方式
条目排序时编辑推荐在前,其余按公开标准的分数排列。每个回答都附有证据链接,托管服务会经过自动测试。 评级变化时,列表会随之更新。
问题
跨平台应用的最佳框架是什么?
Tauri 搭配 Svelte 和 TypeScript,可用一套 Web 代码库构建小巧的桌面和移动应用,使用系统 Web 视图而不是捆绑浏览器,没有遥测,并有公开的独立审计。React Native 和 Flutter 是移动开发最常见的选择,但在某些配置下其工具默认发送使用数据。
Tauri 比 Electron 更好吗?
Tauri 应用通常小得多,因为它使用系统 Web 视图而不是捆绑 Chromium,而且 Tauri 也支持 Android 和 iOS。Electron 在每个平台上提供相同的浏览器引擎。证据请参见两者的评级。
Flutter 和 Expo 会收集遥测数据吗?
Flutter 和 Expo 的命令行工具默认发送使用数据,直到将其关闭。每个评级都链接到说明如何关闭的文档。