当前由于移动互联网技术的日益发展,人们对移动互联网程序的要求也是越来越高,以往的互联网程序已经不能满足人们日益增长的需求,对此相关的工作技术人员要不断努力,研发出与时俱进的移动互联网程序。
近些年来由于平板电脑、智能手机、数字电视等多种智能设备的普及,推进了移动互联网爆炸式的增长,面对移动互联网一片大好的市场,很多的互联网巨头已经开始逐渐的构建自己的互联网生态圈。
随着我国的移动互联网市场的不断发展,用户对于移动互联网的服务要求也是越来越高,如何降低应用软件开发运行的成本,如何对移动互联网的应用软件进行有效管理成了我国很多互联网公司关进的焦点。
本文从实际出发,盘点下跨平台桌面应用开发的5大主流框架:Electron、wxPython、Tauri、FinClip、Flutter。
Electron
相信这个框架大家都不陌生。Electron是一个跨平台的、基于Web前端技术的桌面GUI应用程序开发框架。
使用Web前端技术来开发一个桌面GUI程序是一件很炫酷的事情,你可以使用HTML、CSS来绘制界面和控制布局,使用JavaScript来控制用户行为和业务逻辑,使用Node.js来通信、处理音频视频等,几乎所有的Web前端技术和框架(jQuery、Vue、React、Angular等)都可以应用到桌面GUI开发中。
至此,JavaScript这门神奇的语言除了能开发Web前端、Web后台(基于Node.js)、手机APP(基于React),也能开发桌面GUI程序了。
经济学中的“有需求就有市场”在技术领域也适用,Electron就是应需求而生的。
wxPython
wxPython和pyqt两者类似,都是用python语言开发。
前者是对wxWidgets的封装,后者是对大名鼎鼎的qt的封装。
wxWidgets是基于操作系统的API来做桌面应用的,也就是说,在Windows下开发一个桌面应用时,看起来就像是传统的Windows桌面软件的风格,在Mac下则是Mac的风格。
Tauri
“Build an optimized, secure, and frontend-independent application for multi-platform deployment.”
从Tauri官网的宣传语可以看出Tauri主打的几个卖点:
optimized:性能高、体积小 secure:安全性强
frontend-independent:前端独立 multiplatform:跨平台
Tauri框架是由Rust语言实现的,同时Tauri应用的后端也是由Rust来编写的。Rust是由Mozilla主导开发的通用、编译型的系统编程语言。Rust语言自身有如下的一些特性:
安全性强(secure):Rust设计了一个所有权系统,其中所有值都有一个唯一的所有者,并且值的作用域与所有者的作用域相同。值可以通过不可变引用(&T)、可变引用(&mut T)或者通过值本身(T)传递。 性能高(optimized):Rust的性能和C/C 的性能不相上下,由于Rust的「所有权」机制,Rust不需要GC,同时也能避免如C/C 之类需要手动管理内存的语言忘记释放内存导致的内存泄露的问题; FFI编译友好(multiplatform):FFI是可以用一种编程语言写的程序能调用另一种编程语言写的代码的机制,使用Rust可以方便地提供接口给其他语言调用;
Rust语言的一些特性,也增强了Tauri框架的可靠性和框架价值。此外,hello word打包后果然只有10m,而且开发还是能用html css技术,效率非常高。
Finclip
Finclip是凡泰极客研发的一套小程序容器技术,也可以说其实就是小程序SDK,可以兼容通过 vue 或 react 导出的小程序代码。
与Flutter、Reactive-Native等跨端语言不同的是,Finclip严格意义上讲是一项容器技术。
与上述的跨端技术不仅不冲突,还可以完美融合。不管是通过Flutter、Taro、 kbone等开发出来的小程序均可在FinClip当中运行。
这种小程序容器技术也带来了许多好处:
1、因为 JS 在Service 层执行,所以JS 里面操作的DOM 将不会View 层产生影响,所以小程序不能操作 DOM 结构的,这也使得小程序的性能比传统的H5 更好。 2、方便多个小程序页面之间的数据共享和交互。在小程序的生命周期中具有相同的上下文可以为具备原生应用程序开发背景的开发人员提供熟悉的编码体验; 3、Service 和 View 的分离和并行实现可以防止JS 执行影响或减慢页面渲染,这有助于提高渲染性能;
而且 FinClip SDK 极其轻量,应用在集成后安装包的体积仅仅增大了不到 3MB。
FinClip 还自研了一个 小程序 IDE 开发工具,界面与微信小程序的开发工具类似,自带调试和真机预览,简单易上手。
你可以在这个 FIDE 里面,对现有项目进行二次开发,扩展功能和接口。
同时,它还支持 小程序一键转换成 App,可以将已有小程序代码导出为 IOS 与 Android 中可用的工程文件,并上架至各应用市场 。
由于导出的工程文件自动集成了 FinClip SDK ,所以直接拥有小程序的运行能力,后续可在这个 APP 上继续上架更多小程序,自建自己的小程序生态。
并且 FIDE 中还包含各类扩展插件和接口(支付、人脸识别、音视频、OCR 等),开发者可自主勾选所需的支持插件,从而增强所生成 App 原生能力。
Flutter
Flutter由Google开发,它是一个牛逼的开源平台,可用于跨平台应用程序开发。
它具有吸引力的原因是:快速的开发,富有表现力的精美UI和类似本机的性能。
使用Flutter的一些公司是Google,eBay,宝马等。
选择Flutter框架进行跨平台应用程序开发的主要原因:
高度稳定 平稳的开发周期 强大的热加载功能 DART,AOT编译语言 满足各种需求的UI套件
Flutter 是最新的跨平台应用程序框架之一,由 Google 开发并于 2017 年发布。
Flutter是一个免费的开源跨平台框架,它允许你用一组代码创建一个移动应用程序。
它的独特之处在于它使用Dart编程语言,不同于其他跨平台应用框架,Flutter根本不使用JavaScript。
你可以改变你的代码并实时看到结果,只需片刻就可以升级应用程序。
您可以使用Flutter为iOS、Android和其他不太流行的移动平台创建跨平台的移动应用程序。
平心而论,就目前而言,这是为 Fuchsia OS 开发应用程序的唯一途径。
结语
随着移动互联网技术的不断发展,用户对跨平台应用的需求也是不断增多,为了满足用户的需求,相关的工作技术人员要不断加大对应用软件的开发力度,让移动应用设备能够与时俱进,更好的为客户服务。
相信随着互联网浪潮的不断向前,会有越来越多的解决方案、框架会被提出,让我们拭目以待!