Tauri 2.0 终于支持 iOS 和 Android 了!

科技   2024-10-12 08:43   福建  

最近,在跨平台开发领域备受关注的框架 Tauri 发布了 2.0 版本,我们一起来看看都有哪些值得关注的更新吧。

Tauri 是一个用于构建轻量级、快速二进制文件的框架,支持所有主流的桌面平台(macOS、Linux、Windows)和移动平台(iOS、Android)。开发者可以将任意前端框架(如 HTML、JavaScript 和 CSS)与 Rust、Swift 和 Kotlin 等语言编写的后台逻辑结合起来,创建用户体验出色的应用程序。

Tauri 应用中,前端部分使用我们最熟悉的 Web 前端技术栈,运行在操作系统的 WebView 中,并与主要用 Rust 编写的应用核心进行通信。开发者无需具备 Rust、SwiftKotlin 的编程技能,因为 Tauri 已经提供了丰富的 JavaScript API。

超强 AI 背景移除:在线批量处理,支持 WebGPU 加速,无需登录,可无限次免费使用!

你应该在什么时候使用 Tauri

如果你符合以下任何一项需求,那么 Tauri 可能就是你的最佳选择:

  • 希望拥有一个适用于所有平台的单一 UI 代码库?
  • 希望在不同平台(如 Windows、macOS、Linux、Android、iOS)上尽可能多地接触用户?
  • 是一名前端 Web 开发者并希望编写原生应用?
  • 是一名 Rust 开发者并希望编写外观漂亮、且可以用 Rust 实现的应用?
  • 拥有一个现有的 Web 开发团队并希望以低前期投资扩展到原生应用市场?
  • 拥有一个现有的 Rust 开发团队并希望所有代码都用 Rust 编写?

Tauri 的受欢迎程度

截至写作时,Tauri 在 GitHub 上有约 4878 个 Pull Request 和 3570 个已关闭 Issues,还有大约 1000 次讨论。我们的 Discord 服务器目前有约 17700 名成员,大家在这里互相支持、提出问题或者讨论 Tauri 相关的开发话题。我们对社区的积极和支持表示由衷的感谢。

我们还维护了一个 Tauri 相关项目、应用、插件和指南的精选列表——awesome-tauri,如果你想获得灵感,可以查看这里的内容,并添加自己的项目。

https://github.com/tauri-apps/awesome-tauri?tab=readme-ov-file#applications

Tauri 1.02.0 的历程

在 2022 年 6 月,我们发布了 Tauri 1.0,极大地影响了桌面操作系统市场以及跨平台应用的构建方式。到了 2022 年底,我们发布了 2.0 的初始 alpha 版本以获得初步反馈,并测试移动交互的定义方式。在接下来的两年中,我们不断地公开调整和优化 Tauri 的架构,最终在今年二月发布了 beta 版本,并与外部安全审计公司合作,检查我们的决策和架构变化。

今年八月,我们发布了 2.0 的候选版本,目的是解决重大 bug 并从实际使用中获得更多反馈。最终,在大量修复和文档改进后,我们在今天正式发布了 Tauri 2.0 的稳定版本。

Tauri 的成功得益于众多贡献者,尤其是 Lucas,多年来他持续不断地提供代码更改。此外,还有 Amr、Fabian-Lars、Tony、Chip、Jason、YuWei、icb、Simon、Oliver Lemasle 以及许多其他贡献者。

下面我们来看看 Tauri 2.0 的主要亮点。

移动端支持

Tauri 2.0 引入了对 iOS 和 Android 的原生支持。这一新增功能大大扩展了 Tauri 的应用场景,使开发者可以使用全新的移动端插件系统,将应用逻辑暴露给 Tauri 前端。这意味着开发者不仅可以在桌面平台上享受 Tauri 带来的便利,还可以在移动平台上无缝重用已有的逻辑代码。

更好的入门体验

Tauri 2.0 新推出了 create-tauri-app 项目,让开发者可以快速从零开始构建一个 Tauri 应用,从而节省时间。

# 可用的命令如下:
sh <( curl https://create.tauri.app/sh )
npm create tauri-app@latest
yarn create tauri-app
pnpm create tauri-app
bun create tauri-app
cargo install create-tauri-app --locked
cargo create-tauri-app

热模块替换(HMR

Tauri 2.0 扩展了热模块替换功能,使其支持移动设备和仿真器,开发者可以在不需重新构建整个应用的情况下立即预览更改。

高级插件系统

Tauri 2.0 的插件系统完全重构,提供更强的扩展性和灵活性。将许多原有功能转移到官方插件中,使社区更容易上手,同时加速新功能的实现。插件系统支持开发者自行编写或复用用 Swift 或 Kotlin 编写的原生代码,并通过注解直接暴露给 Tauri 前端。以下是一些重要插件示例:

新的权限系统

Tauri 2.0 引入了一个全新的权限系统,取代了之前的允许列表系统。新系统使用权限、范围和能力来创建灵活且易于使用的访问控制系统。这不仅覆盖 Tauri 的核心 API,还支持应用和插件开发者实现自己的访问控制。

[[permission]]
identifier = "my-identifier"
description = "This describes the impact and more."
commands.allow = [
    "read_file"
]

[[scope.allow]]
my-scope = "$HOME/*"

[[scope.deny]]
my-scope = "$HOME/secret"

内部通信(IPC)重写

Tauri 2.0 完全重写了内部通信(IPC)层,大大提升了数据传输效率:

  • 原始负载(Raw Payloads):支持大数据传输,使得前端与后端的通信更加高效。
  • 原始请求(Raw Requests):简化了内部消息传递机制,加快了数据处理速度。
// Rust 端发送原始负载
tauri::async_runtime::spawn(async {
  let payload = vec![12345];
  tauri::api::ipc::Broadcast::emit("event_name", payload).await.unwrap();
});

多渠道分发支持

Tauri 2.0 为应用分发提供了多渠道的官方指南和支持,包括:

  • Apple Appstore
  • Google Play
  • Microsoft Store
  • CrabNebula Cloud
  • Flathub
  • Snapcraft
  • AUR

这种多渠道分发支持,使得开发者可以更轻松地将应用发布到各大平台,扩大用户覆盖面。

迁移工具

如果你从 1.x 版本迁移,可以查看迁移指南。Tauri 2.0 CLI 也提供了 migrate 命令,以自动化大部分迁移过程:

npm install @tauri-apps/cli@next
npm run tauri migrate

https://v2.tauri.app/migration/

最后

Tauri 2.0 带来了全新的跨平台支持、增强的开发者体验、更强大的插件系统以及更安全的权限管理,并进一步提升了内部通信效率。通过这些改进,Tauri 2.0 成为了一个更加灵活、高效的跨平台应用开发框架。无论你是桌面应用开发者,还是移动应用开发者,Tauri 2.0 都为你提供了一个强大的工具,助力你构建高性能的跨平台应用。

如需了解更多信息和详细更新日志,请访问 Tauri 官方博客。

https://v2.tauri.app/blog/tauri-20/

全栈修仙之路
专注分享 TS、Vue3、前端架构和源码解析等技术干货。
 最新文章