NW.js、括号-壳体和电子之间的功能区别是什么?

现在 TideSDK 实际上已经死了,我一直在寻找替代的“包装器”,将 HTML/CSS/JS 应用程序作为独立的桌面应用程序运行。到目前为止,我遇到的三个可行的选项是 NW.js(以前的 node-webkit)、 括号-外壳电子(以前的 atom-shell)。

问题是这三者之间似乎没有在特性集、兼容性等方面进行足够完整的比较。我希望把这个问题变成一个或多或少关于三者之间(客观)差异的标准线索,特别是关于:

  • 平台支持; 操作系统、依赖关系等。
  • 就 HTML5、 CSS3和 JavaScript 而言,语言特性支持 。考虑一下像 < em > “ HTML5视频可以工作吗? 如果可以,有哪些编解码器可用?”
  • 非标准的额外特性 ,比如托盘图标、弹出通知和 OS 渲染的菜单栏。
  • 可扩展性 ; 例如“插入”本机代码、与 Node.js 交谈等功能。
  • 架构 ; 特别是影响开发人员日常使用的架构差异。
  • 调试 ; 包括开发工具,与常用工具(如 node-inspector)的兼容性等。
  • 诸如此类。

作为应用程序开发人员,在做出选择时,客观的、技术上的差异是什么?

28883 次浏览

大约两个月前,我做了类似的研究,最后我选择了 node-webkit。Node-webkit 最大的优点是 node.js 和 npm。Npm 的包管理非常好,并且节点完成了很好的文件系统访问。

Brackets-shell 看起来很有趣,但是除了一个不错的 IDE 之外,我并没有真正理解是什么使得这个 IDE 与其他 IDE 一样好或者更好。他们非常清楚,“括号-shell 仅供括号项目使用”,这种尖叫对我来说是不可避免的。

Https://github.com/adobe/brackets-shell#overview

Atom-shell 最近似乎很活跃,但是它看起来更像是括号,因为它们实际上是编写和编辑器/IDE,只是碰巧附加到 webkit 运行时。它也是构建在 node.js 之上的。这种方法有一个缺点,那就是很难在网上搜索东西,而不会让人想起你中学时的化学反应。

我真的不想要一个新的编辑器,而且大多数程序员已经有了自己喜欢的编辑器。对于实际的应用程序开发,它们的工作原理基本相同,而且应该相同,因为它们都使用 webkit。基本上90-95% 的内容都是像网站一样编写的,然后处理原生部分和一些配置。

这三件事都是真的 平台-运行在 Windows,Mac 和 Linux 上 语言支持-HTML5,CSS3和 Javascript: 因为它们运行 Javascript,所以你可以下载并运行几乎任何你想要的库/框架。

Webkit 最大的警告是对 codec 的支持。通常,除非重新构建 dll/so 以支持非免费视频编解码器,否则会遇到问题。例如,发布的 node-webkit 不会播放 mp4视频。

在过去的几天里,我一直在使用 Atom-Shell ,到目前为止,我非常喜欢它。

最棒的是它有 GitHub 的支持。.这样你就可以长期定居在这个平台上,特别是如果它获得了大量的追随者。由于与 < a href = “ https://github.com/atom/atom-shell”> StrongLoop 的合同,Node.js 的直接改进也成为可能,< a href = “ https://github.com/atom/atom-shell”> StrongLoop 是 Node.js 的主要贡献者(他们声称雇佣的 Node.js 核心开发人员比任何其他公司都多,甚至 Joyent 也是如此)。

我也发现开始工作是相当舒服的。我花了大约一天的时间来学习这个结构,并得到了我的第一个概念运行证明。非常酷。


要点:

  • 平台支持: Windows,Linux,Mac OSX (更多资讯请浏览此处)
  • 语言特性支持: HTML5,CSS3,JS via Chromium-到目前为止,没有任何问题,但我还没有具体测试视频。
  • 原生特性: 原生应用程序菜单,任务托盘支持,全局热键,协议处理程序支持(这是我目前看到的)
  • 扩展性: 优秀的 Node.js 集成,客户端和服务器都可以“需要”Node.js 模块和原生模块。我还成功地测试了 鲍尔库(包括 jQuery) ,没有出现问题。
  • 建筑: 覆盖在其他地方,但总的来说它很光滑。

更新(11/25/14) : 我还没有找到 Atom-Shell 的任何官方用例,但是我已经用它为我自己开发了一些小的应用程序,最复杂的是一个应用程序,它可以从我的 PM 软件中提取我的时间记录并创建 Paypal 发票。

我对这个平台的看法仍然是积极的,它非常棒。

在我的时间发票应用程序,我成功地带来了 Bootstrap 3的 仪表板示例模板和一些节点模块(蓝鸟,贝宝 SDK,团队 PM 客户端) ,以创建一个轻度复杂的应用程序。这花了我几天时间,而且效果很好。

我真的想不出任何关于 Atom-Shell 的负面评价,它坚固、稳定、快速、易于编码。我希望这能帮到别人。

我已经使用括号 -shell 有一段时间了,下面是我的一些发现:

  • Shell 主要是在方括号 IDE 项目下开发的一个 shell,但是该项目可以运行任何 Web 应用程序。您只需将它指向您自己的 html 页面。Clint Berry 写了一个很棒的教程: http://clintberry.com/2013/html5-desktop-apps-with-brackets-shell/
  • 该项目得到了 Adobe 的支持,并且有很多活动
  • 文档可能会更好

  • 他们支持 Windows,Mac 和 Linux。还可以创建安装程序包。我只在 Win 和 Mac 上测试过,效果很好。

  • 特性支持 html5,css3,js。Html5视频不能开箱即用,但是非常容易启用(默认情况下,ffmpegsumo.dll 不会复制到安装程序中,如果您更改脚本来复制它,它就会工作)。
  • 本地特性 菜单栏,‘ open file with’,文件系统访问。我没有使用任何这些,因为我所需要的只是与节点进程的通信。
  • 可扩展性 内置了一个 nodejs,您可以通过 Web 应用程序与 node 进行通信。通过这种方式,您可以使用节点访问文件系统等。
  • Architecture 这个项目设置得很好,在 shell 项目和运行在其中的 Web 应用程序之间保持了良好的分离。在您自己的应用程序中,可以使用一个全局 appshell 对象来访问括号功能(文件系统访问、与节点进程的通信...)。

需要注意的一点是(如果你关心的话) ,电子系统官方并不支持 WindowsVista。Vista 的市场份额大约是 在 OSX 10.9和10.10之间(两者都得到了 Electron 的全力支持)。微软在2017年之前仍然支持 Vista。

NW.js 在 Vista 和 OSX 10.9 + 中运行良好。NW.js 可以在 Ubuntu,Debian,Zorin,Manjaro,Arch 和其他大多数基于 Debian 的 Linux 操作系统上运行。电子已经拒绝公关修复 Ubuntu 特定的错误在他们的平台上,这是令人担忧的。

NW.js 也适用于 XP。目前18% 的市场仍然使用 XP。因此,如果你的桌面应用程序是更一般的目的,或者希望访问仍然在 XP 上的后期采用者,你可能更好地与 NW.js (0.14.7) ,因为电子只支持 Win 7和以上。

如果你使用 NW.js 0.12.3,你也可以支持 OSX 10.6 + 和非常老的基于 Debian 的 Linux 操作系统版本,比如 Ubuntu 和 Win XP + 。建议您只针对那些遗留系统进行特殊构建,并在较新的操作系统中使用较新版本的 NW.js。

除了完全支持 Web 标准,NW.js 还支持一系列本地应用开发的非标准特性,包括:

在维基中可以看到更多的东西,包括菜单、托盘等等。