electron(跨平台)

    跨平台开发一般是Java(基于java虚拟机,一次编译到处运行)和Qt【以及qt的竞品:GTK+之类其它/Qt的商业版是需要收费的,免费版需要开源设计源码,存在版权问题】(基于兼容的开发框架,使用适用于不同平台的编译器(比如MinGW,可以将linux源码程序编译在windows下运行)针对各个平台单独编译达到跨平台效果),还有一种方案就是基于html/js利用浏览器作为跨平台的虚拟机【和游戏开发中的引擎方案类似】(Electron的方案我觉得类似)。【跨平台界面开发无外乎这三种方案,实际只有两种浏览器和Java方案都属于虚拟机方式,不过浏览器方案使用的解释脚本方式】

  对于一个应用程序来说:

  驱动部分:不可避免需要针对各个平台单独移植编译(驱动部分严重依赖于系统/内核支持)

  核心数据处理:使用高级标准通用语言C/C++/...,不同平台的编译器都可以支持,只需要少量修改重新编译成库,供界面调用

  界面交互部分:需要跨平台工具支持来降低工作量(没用统一一的界面标准语言/html算吗?)

  哪一种更适合,这些方案各有什么优劣?我想每一种方案都各有优劣吧/

  不使用跨平台又怎么样呢?一般专用的应用程序都会支持windows和linux,linux在服务器上用的比较多。

       如果使用平台系统的原生开发工具,至少有一个好处就是,编译出来的文件可以很小,资源占用,运行效率较高。比如windows下用vs。


Electron 是 GitHub 发布的跨平台桌面应用开发工具,支持 Web 技术开发桌面应用,其本身是基于 C++ 开发的,GUI 核心来自于Chrome,而 JavaScript 引擎使用 v8。

npm:  nodejs 下的包管理器

https://nodejs.org/en/ 

输入命令npm config set registry=http://registry.npm.taobao.org 配置镜像站

vue:

https://cn.vuejs.org/index.html

Vue.js是一款流行的JavaScript前端框架,旨在更好地组织与简化Web开发。Vue所关注的核心是MVC模式中的视图层,同时,它也能方便地获取数据更新,并通过组件内部特定的方法实现视图与模型的交互。

https://www.jianshu.com/p/3092b382ee80


其它:

wxWidgets:

wxWidgets是一个开源的跨平台的C++构架库(framework),它可以提供GUI(图形用户界面)和其它工具。目前的2.x版本支持所有版本的Windows、带GTK+或Motif的Unix和MacOS。一个支持OS/2的版本正在开发中。

wxwidgets提供的gui是大量使用宏的,这就意味着它是在尽可能的使用目标系统native的gui样式

wxWidgets vs Qt

https://www.zhihu.com/question/22524236/answer/97529754

GTK+:

    最初,GTK+ 是作为另一个著名的开放源码项目 —— GNU Image Manipulation Program (GIMP) —— 的副产品而创建的。在开发早期的 GIMP 版本时,Peter Mattis 和 Spencer Kimball 创建了 GTK(它代表 GIMP Toolkit),作为 Motif 工具包的替代,后者在那个时候不是免费的。

GNOME:简言之:是linux下受早期qt版权问题基于GTK+对qt的替代,它是linux系统的图形桌面环境

GNOME是一套纯粹自由的计算机软件,运行在操作系统上,提供图形桌面环境。

发展过程
GNOME属于GNU计划中的一部份。GNU计划开始于1984年,专注于发展类似UNIX且完全免费的操作系统。
GNOME计划是1997年8月由Miguel de Icaza和Federico Mena发起,作为KDE的替代品,使用孟加拉国语的GNOMEKDE是一个基于Qt部件工具箱自由的桌面环境,而QT是由Trolltech开发,当时并未使用自由软件许可。GNU项目的成员关注于使用像这样的一种工具箱构造自由的软件桌面和应用软件,从而发起两个项目:一个是作为纯粹Qt库替代品的“Harmony”;还有就是目的在于使用完全与Qt无关的自由软件构造桌面系统的GNOME项目。 [4]
在GNOME变得实用和普及之后,2000年9月Trolltech在GNU GPL和QPL双重许可证下发布了GNU/Linux版的Qt库。但是Qt的许可证还是在许多人中间有争议,因为GPL用于库时对与之链接的代码-例如的KDE框架和任何为其编写的程序-都施加了许可证限制。 [5]
GIMP Toolkit(GTK+)被选中做为Qt toolkit的替代,担当GNOME桌面的基础。GTK+使用GNU宽通用公共许可证(LGPL,一个自由软件许可证),允许链接到它的软件,例如GNOME的应用程序:使用任意的许可证。GNOME桌面的库使用LGPL,而GNOME计划内的应用程序使用GPL许可证。
GNOME桌面系统使用C语言编程,但也存在一些其它语言的绑定使得能够使用其它语言编写GNOME应用程序,例如C++,Java,Ruby,C#,Python,Perl等等。 [6]
2000年8月成立了GNOME基金会,为了处理管理工作、施加影响以及于同对开发GNOME软件有兴趣的公司联系。基金会并不直接参与技术决策,而是协调发布和决定哪些对象应该成为GNOME的组成部分。基金会网站将其成员资格定义为: “按照GNOME基金会章程,任何对GNOME有贡献者都可能是合格的成员。尽管很难精确定义,贡献者一般必须对GNOME计划有不小帮助。其贡献形式包括代码、文档、翻译、计划范围的资源维护或者其它对GNOME计划有意义的重要活动 。” 基金会成员每年11月选举董事会,其候选人必须也是贡献者。

参考:

在桌面Linux环境下开发图形界面程序的方案对比

https://blog.csdn.net/fengjunwang1980/article/details/78193975

是什么让 Ubuntu 选用 Qt 而不是 GTK?

https://www.zhihu.com/question/20153991/answer/1268229143

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值