Tauri:下一代桌面应用开发框架?

发表于:2022-10-19 09:53

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:ELab.duanjing    来源:ELab团队

  桌面应用开发
  在处于移动互联网的当下,虽然桌面应用的重要性已经不能同往日而语,但在我们平常的日常工作和生活中,还是扮演着非常重要的角色和地位。在我们的日常工作中,离不开Lark、VSCode等桌面应用。
  相比较于移动端而言,桌面端应用的生态多种多样,因此也诞生了各种各样的桌面应用开发技术栈。本次分享将会对相关常用的一些桌面应用开发框架进行介绍和分析,同时对当下比较流行(GitHub 50k star)的跨平台桌面应用开发框架Tauri进行介绍。
  原生技术栈
  原生技术栈是指通过操作系统相关API或者操作系统厂家(如Apple/Microsoft)提供的SDK/工具来开发桌面应用的方式。使用原生技术开发的应用,通常能够在性能、体积以及系统的交互等方面做到非常不错的效果。
  优点:
  ·构建产物体积小
  · 性能好
  · 系统API调用方便
  · 兼容性好
  · 和系统应用的交互融合度高,如要实现如下的一些系统原生UI组件非常方便
  缺点:
  无法做到跨平台,所开发的应用只能在对应的平台上运行,如果需要跨平台运行,则需要在不同的操作系统上分别开发,开发成本高
  对于使用的技术栈有限制(Windows使用C#,macOS使用ObjC/Swift)
  Windows平台
  作为目前使用率最高的操作系统,Windows平台的GUI程序开发经历了漫长的迭代和演化的过程:Win32 API作为Windows GUI开发的鼻祖,通过C语言调用Windows底层的绘图函数来进行开发;在Win32 API之后出现了MFC(Microsoft Fundation Class),MFC通过C++语法将原有的Win32 API封装成了控件类(对话框控件、按钮控件等);在MFC之后,微软推出了Windows Form(2002年),Windows Form依赖于.NET的运行时,提供了组件化的开发能力;在此之后,微软推出了WPF(Windows Presentation Fundation,2006年),WPF提供了基于XML的语言XAML来描述UI;在Windows8的时代,微软又推出了UWP(Universal Windows Platform,2015年),UWP支持在各种平台上运行(PC/Windows Phone/Xbox),API也支持多种语言(C++/VB/C#/JS)。
  从Windows平台应用的开发技术迭代来看,也可以大致看出GUI程序的技术发展史:
  · Win32API时代:函数调用,指令式,Windows系统处理
  · MFC时代:面向对象,把一些指令式调用封装成类,由来自UI的消息驱动程序处理数据
  · Windows Form时代:组件化,在类的基础上封装成组件,消息被封装成事件,事件驱动
  · WPF时代:使用类XML语言来描述UI,引入数据驱动UI的理念
  · UWP时代:跨平台、多语言
  macOS平台
  现有的macOS原生应用主要基于Cocoa框架开发,Cocoa是从1980年代由NeXT(macOS的前身)开发的编程环境NeXTSTEP和OPENSTEP演变而来,是面向对象的API。
  在2020年的WWDC上,苹果推出了新一代的UI框架SwiftUI,和Flutter/React等现代GUI框架类似,支持声明式的方式使用Swift语言作为DSL来编写UI,同时也支持跨平台的特性,可以在macOS/iOS/tvOS等多平台运行。
  Linux平台
  Linux其源码只包含了操作系统内核的部分,桌面并不属于Linux源码的一部分,因此严格意义上来说,从「使用系统API和操作系统厂商提供的SDK开发的应用为原生应用」的定义上来说,并无所谓「原生技术栈」的概念。我们日常使用的发行版提供了桌面环境如KDE、Gnome等,Linux发行版的这些桌面环境也提供了相关的一些库或者API来帮助绘制GUI程序,如gtk+等,可以认为是「原生技术栈」。
  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号