发表于2024-11-26
传统桌面应用开发要求懂高级编程语言以及专门的框架。有了Electron和NW.js,你可以将现有Web开发技术运用到仅仅使用HTML、CSS和JavaScript就能开发的桌面应用中。而且,开发出来的应用还能在Windows、Mac和Linux中工作,显著减少了开发和培训的时间。
本书一步步指导你使用Electron和NW.js来进行桌面应用开发。这份指导中包含了大量的示例,教你如何开发一个属于你自己的文件浏览器,介绍使用框架提供的API来访问摄像头、剪贴板数据,制作可以用键盘控制的游戏以及构建一个Twitter桌面提醒工具。你还会学到如何测试和调试应用,以及为不同操作系统将应用打包为二进制文件。
本书包含的内容
□ 使用桌面摄像头创建一个自拍应用
□ 学习如何使用Devtron来测试Electron应用
□ 学习如何在你的应用中使用Node.js
本书是一本同时介绍 Electron和 NW.js的图书,这两者是目前流行的支持使用 HTML、CSS 和 JavaScript 进行桌面应用开发的框架。书中包含大量的编码示例,而且每个示例都是五脏俱全的实用应用,作者对示例中的关键代码都做了非常详细的解释和说明,可让读者通过实际的编码体会使用这两款框架开发桌面应用的切实感受。除此之外,在内容上,本书非常系统,分为4大部分:第1部分介绍两个框架的历史背景,并教大家编写**个桌面应用,让读者对这两个框架有一个初步的感受;第 2部分深入讲解 NW.js和 Electron 的内部工作原理,帮助大家剖析这两个框架的底层机制,让读者对它们有更深入的理解;第 3部分介绍使用框架提供的大量 API 来构建多款实用的桌面应用,全方位地让读者体会使用这两个框架开发桌面应用带来的舒适体验;第 4部分为大家讲解了,当开发完成后,如何对应用进行测试、跨平台打包和发布。可以说这 4部分结合起来将开发桌面应用的整个流程系统化地讲解得非常清楚、到位。相信结合书中大量的示例,读者一定能很快掌握并自己使用 Electron和 NW.js构建出跨平台的桌面应用。
Paul Jensen 是英国伦敦一家名为 Starcount 公司的高级售前顾问。他曾在创业公司工作过,网路代理商 New Bamboo ( 现在属于 Thoughtbot),AOL, 以及他自己的咨询公司,Anephenix Ltd。他在一些大会(伦敦 Ruby 用户组,2013 年的Cukeup 以及 伦敦用户组)上做过演讲,创建了他自己的实时仪表盘(Dashku),也曾是 web 框架 Socketstream 的项目带头人。他喜欢麦芽酒和骑行,他的推特账号是:@paulbjensen。
本书译者中英文水平都极高,且工作在编程第一线,具有丰富的理论知识和实践经验,此前翻译过图书,相信能为大家带来一本质量上乘的图书。
本书适合了解HTML、CSS和JavaScript的开发者。
——Paul Jensen就职于Starcount,生活在英国伦敦。
你会被这么容易就能开发桌面应用而感到震惊的!
——赵成,Electron的创造者
“一次编写,到处运行”,真的成真了。
——Stephen Byrne, Dell
第1部分欢迎来到.Node.js.桌面应用开发的世界
第1章Electron和NW.js入门.3
1.1为什么要用.Node.js.构建桌面应用.4
1.1.1桌面应用到.Web.应用,再回到桌面应用.4
1.1.2Node.js.桌面应用相比.Web.应用有什么优势.6
1.2NW.js.和.Electron.的起源.8
1.3NW.js.介绍.9
1.3.1使用.NW.js.构建.Hello.World.应用.10
1.3.2NW.js.有哪些特性.15
1.4Electron.介绍.18
1.4.1Electron.是如何工作的以及它和.NW.js.的区别是什么.19
1.4.2使用.Electron.开发.Hello.World.应用.19
1.4.3Electron.有哪些特性.25
1.5NW.js.和.Electron.支持创建哪类应用.25
1.5.1Slack.26
1.5.2Light.Table.26
1.5.3Game.Dev.Tycoon.27
1.5.4Gitter.28
1.5.5Macaw.29
1.5.6Hyper.30
1.6小结.31
第2章为你的首款桌面应用搭建基础架构.32
2.1我们将构建什么应用.33
2.2创建应用.34
2.2.1安装.NW.js.和.Electron.34
2.2.2为.NW.js.版本的应用创建文件和文件夹.35
2.2.3为.Electron.版本的应用创建文件和文件夹.37
2.3实现启动界面.39
2.3.1在工具条中展示用户个人文件夹信息.40
2.3.2显示用户个人文件夹中的文件和文件夹.44
2.4小结.54
第3章构建你的首款桌面应用.56
3.1浏览文件夹.57
3.1.1重构代码.57
3.1.2处理对文件夹的双击操作.61
3.2实现快速搜索.64
3.2.1在工具条中增加搜索框.65
3.2.2引入一个内存搜索库.65
3.2.3在界面上触发搜索功能.67
3.3改进应用内的导航功能.71
3.3.1实现当前文件夹路径可单击.71
3.3.2让应用随着文件夹路径的改变显示对应的文件夹内容.74
3.3.3实现使用默认应用打开对应的文件.75
3.4小结.77
第4章分发你的首款桌面应用.79
4.1对应用进行与分发相关的设置.80
4.2对要分发的应用进行打包.83
4.2.1使用一种.NW.js.的构建工具.83
4.2.2使用一种.Electron的构建工具.84
4.2.3设置应用的图标.85
4.3在多个操作系统中测试应用.91
4.3.1Windows.操作系统.91
4.3.2Linux.操作系统.92
4.3.3Mac.OS.系统.92
4.4小结.92
第2部分深度剖析
第5章在NW.js和Electron中使用Node.js.97
5.1什么是.Node.js.98
5.1.1同步与异步.98
5.1.2流是一等公民.101
5.1.3事件.105
5.1.4模块.106
5.2Node.包管理器.109
5.2.1寻找应用需要的模块.109
5.2.2使用.package.json记录安装的模块.109
5.2.3使用.npm.打包模块和应用.111
5.3小结.114
第6章探索NW.js和Electron的内部机制.115
6.1NW.js.内部是如何工作的.116
6.1.1使用同一个.V8.实例.117
6.1.2集成主事件循环.118
6.1.3桥接.Node.js.和.Chromium.的.JavaScript.上下文.119
6.2Electron.内部是如何工作的.119
6.2.1libchromiumcontent.介绍.120
6.2.2Electron.中的组件.120
6.2.3Electron.是如何将应用运行起来的.121
6.3Node.js是如何与NW.js以及Electron一起工作的.122
6.3.1Node.js.集成在.NW.js.的哪个位置.122
6.3.2在.NW.js中使用.Node.js.的缺点.123
6.3.3Electron.是怎么使用.Node.js.的.123
6.4小结.124
第3部分精通Node.js桌面应用开发
第7章自定义桌面应用的外观.127
7.1视窗的尺寸和模式.127
7.1.1配置.NW.js.应用的视窗尺寸.128
7.1.2配置.Electron.应用的视窗尺寸.129
7.1.3在.NW.js.中限制视窗的尺寸.131
7.1.4在.Electron.中限制视窗的尺寸.133
7.2无边框应用以及全屏应用.134
7.2.1NW.js.中的全屏应用.135
7.2.2Electron.中的全屏应用.138
7.2.3无边框应用.140
7.2.4kiosk.应用.145
7.3小结.149
第8章创建托盘应用.150
8.1使用.NW.js.创建简单的托盘应用.151
8.2使用.Electron.创建托盘应用.156
8.3小结.159
第9章创建应用菜单以及上下文菜单.161
9.1为应用添加菜单.162
9.1.1应用视窗菜单.162
9.1.2使用.NW.js.为.Mac.OS的应用创建菜单.162
9.1.3使用.Electron.为.Mac.OS的应用创建菜单.163
9.1.4为.Windows.和.Linux的应用创建菜单.166
9.1.5基于操作系统来选择渲染具体的菜单.173
9.2上下文菜单.174
9.2.1使用.NW.js.创建上下文菜单.174
9.2.2NW.js.中的上下文菜单是如何工作的.179
9.2.3设置菜单项图标.180
9.2.4使用.Electron.创建上下文菜单.181
9.2.5使用.Electron.添加上下文菜单.184
9.3小结.185
第10章拖曳文件以及定制界面.186
10.1在应用中拖曳文件.186
10.1.1使用.NW.js.实现在应用中拖曳文件.187
10.1.2使用.Electron.实现拖曳功能.190
10.2模拟操作系统原生样式.191
10.2.1检测用户的操作系统.191
10.2.2使用.NW.js检测操作系统.191
10.2.3使用.Electron检测操作系统.192
10.2.4使用.CSS匹配用户操作系统的样式.194
10.3小结.197
第11章在应用中使用网络摄像头.198
11.1使用.HTML5.媒体捕捉.API.来实现相片快照.198
11.1.1解读.NW.js.版的应用.199
11.1.2使用.Electron.构建.Facebomb.应用.205
11.2小结.210
第12章存储应用数据.211
12.1应该使用哪种数据存储方案.211
12.2使用.localStorage.API.存储便笺数据.212
12.2.1使用.Electron开发.Let.Me.Remember应用.213
12.2.2使用.NW.js开发.Let.Me.Remember应用.216
12.3将待办事项应用移植为桌面应用.219
12.3.1使用.NW.js.移植.TodoMVC.Web.应用.219
12.3.2使用.Electron.移植.TodoMVC.应用.220
12.4小结.222
第13章从剪贴板复制和粘贴数据.223
13.1访问剪贴板数据.223
13.1.1使用.NW.js.创建.Pearls.应用.224
13.1.2使用.Electron.创建.Pearls.应用.228
13.1.3使用.Electron.将不同类型的数据写入剪贴板.231
13.2小结.232
第14章绑定键盘快捷键.233
14.1使用.NW.js.创建贪吃蛇游戏.234
14.1.1使用.NW.js.在视窗获取焦点的时候实现键盘快捷键.242
14.1.2使用.NW.js.来创建全局键盘快捷键.243
14.2使用.Electron.为贪吃蛇游戏创建全局快捷键.245
14.3小结.247
第15章制作桌面通知.248
15.1关于你要构建的应用.249
15.2使用.Electron.构建.Watchy.应用.249
15.3使用.NW.js.构建.Watchy.应用.254
15.4小结.257
第4部分准备发布
第16章测试桌面应用.261
16.1测试应用的不同方法.262
16.1.1测试驱动开发.262
16.1.2行为驱动开发.264
16.1.3不同层面的测试.265
16.2单元测试.265
16.2.1使用.Mocha.编写测试.266
16.2.2让待完成的测试变成执行通过的测试.268
16.3功能测试.271
16.3.1功能测试实践.272
16.3.2使用.NW.js.和.ChromeDriver.进行测试.272
16.4使用Spectron测试Electron应用.273
16.5集成测试.275
16.5.1Cucumber.介绍.276
16.5.2使用.Cucumber和.Spectron对.Electron应用进行自动化测试.277
16.6小结.280
第17章调试并提升应用性能.281
17.1了解你要调试的是什么.282
17.1.1确定问题根本原因的位置.283
17.1.2使用浏览器开发者工具进行调试.284
17.2修复.bug.287
17.2.1使用.Node.js.的调试器来调试应用.288
17.2.2使用.NW.js.的开发者工具来调试应用.291
17.3解决性能问题.296
17.3.1Network选项卡.296
17.3.2Timeline选项卡.297
17.3.3Pro.les选项卡.299
17.4调试.Electron.应用.301
17.5小结.307
第18章为多平台打包应用.308
18.1为应用创建可执行文件.309
18.1.1为.Windows.系统创建.NW.js.应用的可执行文件.309
18.1.2安装虚拟机.309
18.1.3为一个.NW.js应用创建针对.Windows系统的.exe文件.310
18.1.4为一个.Electron.应用创建.Windows.系统的可执行文件.311
18.2为.Windows.的应用创建启动安装器.314
18.2.1使用.NW.js.创建.Windows.系统启动安装器.314
18.2.2使用.Electron创建.Windows系统启动安装器.321
18.3为.Mac.OS.创建.NW.js.应用的可执行文件.324
18.3.1创建.Mac.可执行应用.324
18.3.2为.Mac.OS.创建.Electron.应用的可执行文件.327
18.4为.Linux.创建可执行应用.329
18.4.1为.Linux.创建独立的.NW.js.应用文件.330
18.4.2为.Linux.创建独立的.Electron.应用文件.331
18.5小结.333
附录A安装.Node.js.335
译者序
Stack Over.ow 的联合创始人 Jeff Atwood 说过一句非常经典的话: Any application that can be written in JavaScript, will eventually be written in JavaScript,翻译过来就是:任何能使用 JavaScript 来编写的应用,最终都会用 JavaScript 来实现。这句话被誉为 Atwood 定律。事实上,这句话正在不同领域被一次一次地验证。以前 JavaScript 只是运行在浏览器沙箱环境中的脚本语言,而自从 2009 年 Node.js 问世后,JavaScript 在服务器端、物联网领域、移动原生应用开发领域,乃至桌面应用开发领域都大放异彩。
以往要开发桌面应用,针对 Windows、Linux 以及 Mac OS 三大平台要专门去学习各自平台的编程语言和框架,成本高昂而且要做一款支持兼容三种平台的桌面应用非常费时,基本都需要针对不同平台的不同团队才能实现。就我个人而言,几年前我一直想学习 Objective-C 以及 Cocoa 来开发 Mac OS X 桌面应用,但是始终没有成功。现如今, JavaScript 让这一切都变得无比简单。一名 Web 开发者就能开发出兼容三大操作系统的桌面应用。不仅大大降低了学习曲线,而且开发效率可以说呈指数级提升。这要归功于 NW.js 和 Electron 这两款目前最流行的使用 Web 技术开发桌面应用的开发框架。这两款框架将 Chromium 和 Node.js 非常好地结合起来, Chromium使得 Web 开发技术能够在桌面应用中得以施展, Node.js则提供了访问操作系统 API 的能力,两者的结合使得使用 JavaScript 开发桌面应用成为可能。
目前, NW.js 和 Electron 这两款框架在全世界各大公司被广泛使用。近几年红遍全球的 Slack就是使用 Electron 来开发他们的桌面应用的,国内阿里巴巴的企业应用—钉钉桌面应用,就是用 NW.js 来开发的,除此之外,全球范围内越来越多的桌面应用都在采用这两种框架进行开发。
本书是一本专门介绍如何使用 NW.js 和 Electron 框架来开发桌面应用的书。在国内,目前本书应该是第一本同时介绍 NW.js 和 Electron 开发桌面应用的图书。而且本书内容非常系统,从框架的背景介绍、教你开发第一款桌面应用、深入剖析框架内部原理、通过丰富的示例应用介绍框架提供的多个 API,再到应用的测试、调试、跨平台打包、构建和最终的发布,涵盖整个开发到发布流程中的所有环节。而且本书的每一章中都有大量的实用示例,通过实际的编码让你感受使用 NW.js 的 Electron 开发桌面应用的体验。书中每个示例应用都会分别介绍 NW.js 和 Electron 两个版本如何实现、过程中需要注意的地方有哪些,非常有实践价值。总的来说,本书不论是对于初学者还是有一定经验的开发者,都是一本相当好的学习使用 NW.js 和 Electron 开发桌面应用的图书。
最后,非常感谢电子工业出版社计算机出版分社的张春雨编辑对我的信任,将这本书交给我来翻译;感谢本书的责任编辑刘舫对本书的辛苦付出;还要感谢本书的原作者 Paul B. Jensen,翻译过程中遇到模棱两可的地方,通过 Twitter 联系他,他都能及时回复我,并给予详细的解释。
翻译和写书一样,都是需要花费大量精力和时间的事情,自从翻译完上一本《了不起的 跨平台桌面应用开发:基于Electron与NW.js 下载 mobi epub pdf txt 电子书 格式
跨平台桌面应用开发:基于Electron与NW.js 下载 mobi pdf epub txt 电子书 格式 2024
跨平台桌面应用开发:基于Electron与NW.js 下载 mobi epub pdf 电子书讲解的很浅显易懂,比较适合入门,有代码示例。不过也只能用做入门书籍了?
评分书没问题,是正版的,好评
评分很好很好,非常满意。
评分哈哈哈哈哈哈计划经济家
评分很好很好很好很好很好
评分书的价格是真实惠,以后买东西只能活动时候买,平时太坑了。
评分很好很好很好很好很好
评分还没有来的及看,看完再来追评吧。
评分很好很好很好很好很好
跨平台桌面应用开发:基于Electron与NW.js mobi epub pdf txt 电子书 格式下载 2024