大厂技术 坚持周更 精选好文本文为来自 教育-智能学习-前端团队成员的文章,已授权 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+等,可以认为是「原生技术栈」 。
跨平台技术栈Web技术栈Atwood's Law: Any application that can be written in JAVAScript, will eventually be written in JavaScript.
推荐阅读
- iOS微信更新,可将小程序放到iPhone桌面,退出群聊保留聊天记录
- originos系统下载官网?origin OS系统如何切换桌面?
- qq音乐网页版怎么开桌面歌词?
- Docker 桌面与 Rancher 桌面
- 最好用的桌面便签软件?桌面便签软件推荐
- 电脑开机后不显示桌面、电脑开机后不显示桌面怎么办?
- 昭襄王之后谁是秦王?秦昭襄王的下一代君王是谁
- 语雀桌面端技术架构实践
- 搭载12代酷睿含显示器2999元真香!战66迷你台式机成为桌面新宠
- 桌面上的回收站图标不见了怎么办 桌面的回收站不见了