超越浏览器:从 web 应用到桌面应用

本文讲的是超越浏览器:从 web 应用到桌面应用,

一开始我是个 web 开发者,现在我是个全栈开发者,但从未想过在桌面上有所作为。我热爱 web 技术,热爱这个无私的社区,热爱它对于开源的友好,尝试挑战极限。我热爱探索好看的网站和强大的应用。当我被指派做桌面应用任务的时候,我非常忧虑和害怕,因为那看起来很难,或者至少不一样。

这并不吸引人,对吧?你需要学一门新的语言,甚至三门?想象一下过时的工作流,古旧的工具,没有任何你喜欢的有关 web 的一切。你的职业发展会被怎样影响呢?

别慌,深呼吸,现实情况是,作为 web 开发者,你已经拥有开发现代桌面应用所需的一切技能,得益于新的强大的 API,你甚至可以在桌面应用中发挥你最大的潜能。

本文将会介绍使用 NW.js 和 Electron 开发桌面应用,包括它们的优劣,以及如何使用同一套代码库来开发桌面、web 应用,甚至更多。

为什么?

首先,为什么会有人开发桌面应用?任何现有的 web 应用(不同于网站,如果你认为它们是不同的)都可能适合变成一个桌面应用。你可以围绕任何可以从与用户系统集成中获益的 web 应用构建桌面应用;例如本地通知、开机启动、与文件的交互等。有些用户单纯更喜欢在自己的电脑中永久保存一些 app,无论是否联网都可以访问。

也许你有个想法,但只能用作桌面应用,有些事情只是在 web 应用中不可能实现(至少还有一点,但更多的是这一点)。你可能想要为公司内部创建一个独立的功能性应用程序,而不需要任何人安装除了你的 app 之外的任何内容(因为内置 Node.js )。也许你有个有关 Mac 应用商店的想法,也许只是你的一个个人兴趣的小项目。

很难总结为什么你应该考虑开发桌面应用,因为真的有很多类型的应用你可以创建。这非常取决于你想要达到什么目的,API 是否足够有利于开发,离线使用将多大程度上增强用户体验。在我的团队,这些都是毋庸置疑的,因为我们在开发一个聊天应用程序。另一方面来说,一个依赖于网络而没有任何与系统集成的桌面应用应该做成一个 web 应用,并且只做 web 应用。当用户并不能从桌面应用中获得比在浏览器中访问一个网址更多的价值的时候,期待用户下载你的应用(其中自带浏览器以及 Node.js)是不公平的。

比起描述你个人应该建造的桌面应用及其原因,我更希望的是激发一个想法,或者只是激发你对这篇文章的兴趣。继续往下读来看看用 web 技术构造一个强大的桌面应用是多么简单,以及在创建过程中你应该付出什么。

NW.js

桌面应用已经有很长一段时间了,我知道你没有很多时间,所以我们跳过一些历史,从 2011 年的上海开始。来自 Intel 开源技术中心的 Roger Wang 开发了 node-webkit,一个概念验证的 Node.js 模块,这个模块可以让用户创建一个 WebKit 内核的浏览器窗口并直接在 

你可能感兴趣的:(超越浏览器:从 web 应用到桌面应用)