最近,在跨平台开发领域得到广泛认可的框架Tauri发布了2.0版本。让我们仔细看看一些值得注意的更新。Tauri是一个构建轻量级和快速二进制文件的框架,支持所有主要的桌面平台(macOS, Linux, Windows)和移动平台(iOS, Android)。开发人员可以将任何前端框架(如HTML、JavaScript和CSS)与用Rust、Swift和Kotlin等语言编写的后端逻辑结合起来,创建具有卓越用户体验的应用程序。
在Tauri应用程序中,前端使用熟悉的web前端技术构建,并在操作系统的WebView中运行,与主要用Rust编写的主应用程序核心通信。开发人员不需要掌握Rust、Swift或Kotlin的编程技能,因为Tauri提供了丰富的JavaScript api。
什么时候应该使用Tauri?
如果符合以下任何一个要求,Tauri就可能是你的最佳选择:
1.想要一个适用于所有平台的单一UI代码库?
2.想要在Windows、macOS、Linux、Android和iOS等不同平台上获得尽可能多的用户?
3.你是一个前端web开发人员,想要编写本地应用程序吗?
4.你是一名Rust开发人员,想要编写美观的、可以用Rust实现的应用程序吗?
5.你是否拥有现有的网页开发团队,并希望以较低的前期投资扩展到本地应用市场?
6.有一个现有的Rust开发团队,并希望所有的代码都用Rust编写?
Tauri的受欢迎程度
在GitHub上,Tauri大约有4,878个拉取请求和3,570个封闭问题,以及大约1,000个讨论。Discord服务器目前有大约17,700名成员,他们相互支持,提出问题,并讨论与Tauri相关的开发主题。
官方还维护了一个与Tauri相关的项目、应用程序、插件和指南。如果你正在寻找灵感,你可以看看这里的内容,并添加到你自己的项目中。
https://github.com/tauri-apps/awesome-tauri?tab=readme-ov-file#applications
Tauri从1.0到2.0的旅程
2022年6月,Tauri1.0发布,极大地影响了桌面操作系统市场和跨平台应用程序的构建方式。到2022年底,发布了2.0的初始alpha版本,以收集反馈并测试移动交互。在接下来的两年中,Tauri的体系结构不断进行调整和优化,并于今年2月发布了beta版本,该版本由外部安全公司审核,以审查决策和体系结构的更改。今年8月,发布了2.0的候选版本,旨在解决主要错误并从实际使用中收集更多反馈。经过大量的修复和文档改进后,稳定版的Tauri 2.0正式发布。
Tauri 2.0的主要亮点
移动端支持
Tauri 2.0引入了对iOS和Android的原生支持,极大地扩展了Tauri的用例,并允许开发人员使用全新的移动插件系统将应用程序逻辑暴露给Tauri前端。这意味着开发人员不仅可以在桌面平台上享受到Tauri带来的便利,还可以在移动平台上无缝重用现有的逻辑代码。
更好的开发体验
Tauri 2.0最近启动了create-tauri-app项目,使开发人员能够从零开始快速构建一个Tauri应用程序并节省时间。
# The available commands are as follows:
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,还支持应用程序和插件开发人员实现自己的访问控制。
# 堆代码 duidaima.com
[[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'
进程间通信
Tauri 2.0完全重写了其内部通信(IPC)层,大大提高了数据传输效率。
Raw Payloads:支持大数据传输,提高前端与后端通信效率。
Raw Requests:简化内部消息传递机制,加快数据处理速度。
// Sending raw payload in Rust.
tauri::async_runtime::spawn(async {
let payload = vec![1, 2, 3, 4, 5];
tauri::api::ipc::Broadcast::emit('event_name', payload).await.unwrap();
});
支持多渠道分发
Tauri 2.0为多渠道应用分发提供官方指导和支持,包括:
1.多平台的构建
2.自托管分布
3.包管理器集成
4.提交应用商店
5.Web部署
这种多渠道的发行支持使开发者能够轻松地将他们的应用发布到主要平台,并扩大他们的用户覆盖范围。
总结
Tauri 2.0带来了新的跨平台支持、增强的开发者体验、更强大的插件系统、更安全的权限管理,并进一步提高了内部数据传输效率。通过这些改进,Tauri 2.0成为了一个更加灵活和高效的跨平台应用程序开发框架。无论是桌面应用程序开发人员还是移动应用程序开发人员,Tauri 2.0都提供了构建高性能跨平台应用程序的强大工具。