跨平台桌面应用开发:基于Electron与NW.js

跨平台桌面应用开发:基于Electron与NW.js pdf epub mobi txt 电子书 下载 2025

[丹麦] Paul B.Jensen(保罗·B.詹森) 著,Goddy Zhao 译
图书标签:
  • Electron
  • NW
  • js
  • 桌面应用
  • 跨平台
  • 前端开发
  • JavaScript
  • HTML
  • CSS
  • Node
  • js
  • 开发教程
想要找书就要到 静思书屋
立刻按 ctrl+D收藏本页
你会得到大惊喜!!
出版社: 电子工业出版社
ISBN:9787121334740
版次:1
商品编码:12334806
包装:平装
开本:16开
出版时间:2018-03-01
用纸:胶版纸
页数:360
字数:403000
正文语种:中文

具体描述

产品特色

编辑推荐

适读人群 :需要在Windows、OS X和Linux上应用NW.js 和 Electron构建桌面程序系统的开发人员。

传统桌面应用开发要求懂高级编程语言以及专门的框架。有了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 联系他,他都能及时回复我,并给予详细的解释。

翻译和写书一样,都是需要花费大量精力和时间的事情,自从翻译完上一本《了不起的 Node.js》后,我就对自己说我再也不会干翻译图书的事情了,实在是太累了。但是,当出版社编辑找到我,给我看了原版样书后,我还是没忍住,因为虽然过程很累很苦,但是在书出版的那一刻,除了自己小小的虚荣心能够得到一点满足,更多的是一想到可以帮助到很多学习使用 NW.js 和 Electron 开发桌面应用的开发者,就觉得非常自豪,再累再苦都是值得的!当然,翻译过程中难免会有错误的地方,也希望大家能够多多指正!

谨以此书献给在背后默默支持我的家人,特别是我的两个孩子 —木木和一一,希望你们能够健康快乐地成长,爸爸爱你们!

Goddy Zhao 2017 年 12 月 12 日于上海


推荐序

Electron 框架诞生于 2013 年,那个时候 Node.js 才刚刚流行起来。整个社区因 JavaScript 能够在客户端和服务器端运行而兴奋不已,并且也在尝试使用 JavaScript 来开发桌面应用。

我个人也对 JavaScript 技术很热衷,而且 GUI 编程是我比较喜欢的领域。我自己写过一些 Node.js 的模块,这些模块对主流的 GUI 工具提供了 JavaScript 的绑定,不过都做得一般,也没有引起太多关注。

之后我发现了一个非常有趣的 Node.js模块,叫作 node-webkit:这个简单的模块可以实现在 WebKit 浏览器中插入执行 Node.js 代码。于是我有了一个点子,可以用它来开发一个具备完整功能的客户端开发框架:我可以用 Chromium 来显示 Web 页面,就像桌面窗口一样,然后其他的都用 Node.js 来控制!

当时 node-webkit 的开发并不活跃,于是我接手了这个项目并进行重写,将它打造成一个完善的用于桌面应用开发的框架。当我完成第一版的时候,它可以用于开发小型的跨平台应用,效果奇好!

与此同时, GitHub正在秘密开发一款基于 Web技术的 Atom编辑器,而且他们非常希望可以有一个更好的工具来替代目前 Atom不尽如人意的 Web运行时。 GitHub曾尝试将 Atom迁移到 node-webkit,但是遇到了很多问题。我和他们的开发者碰了面并且最终我们达成一致:由我来开发一款新的框架,让开发者使用 Node.js

技术和浏览器相关技术就可以开发桌面程序,然后再帮他们把 Atom迁移过来。

这款新的框架起初命名为 atom-shell;一年后,在正式开源的时候将其改名为 Electron。Electron是从零开始开发的,并且使用了和 node-webkit完全不同的底层架构,它可以让开发者开发大型且复杂的桌面端应用。(如今, node-webkit交由其他开发者在维护开发,项目状态也比较活跃。它现在叫 NW.js,使用也很广泛。)

因为使用 Electron可以既简单又快速地构建出复杂的跨平台应用,所以它得到了许多开发者的关注,发展也很迅速。现如今,许多大公司都基于 Electron 开发了他们的桌面端产品,除此之外,小型创业公司也围绕这个平台在构建他们的业务。

使用 Electron 和 NW.js 开发桌面应用要求开发者掌握一些新的概念。桌面应用开发和前端程序开发截然不同,对于初学者来说也更难。不过本书可以帮助到大家。

本书将带你一览 Electron 和 NW.js 丰富的 API、教你如何开发桌面应用。你会学到许多使用 JavaScript 开发桌面应用的技术细节,包括如何构建和分发应用,以及如何将现有应用集成到桌面应用中的一些深度小技巧。本书还涵盖了一些高级话题,如调试、分析以及在不同平台发布应用,哪怕是有经验的开发者也可以从中学到不少东西。

我建议所有想要开发桌面应用的读者都来阅读本书。读完后你会惊讶于使用 JavaScript 和 Web 技术来进行跨平台的桌面应用开发是一件多么简单的事情。

Cheng Zhao Electron框架开发者


序言

几年前我在一家叫 Axisto Media 的公司工作时,我们需要为一个健康行业大会开发一款桌面应用,用来展示大会的视频、议题信息以及海报。当时这款应用是用 Adobe AIR 开发的。但是开发过程并不容易,而且客户需要进行一些操作才能让应用在他们的计算机中运行起来。好在我们后来找到了更好的解决方案。

我大概从 2013 年年底开始学习 NW.js(那个时候它叫 node-webkit)。我发现使用 NW.js 开发的桌面应用客户用起来更方便,因为他们不再需要安装 Adobe Flash 播放器,也不用把应用文件放到 U 盘里来加载。他们只需双击应用就可以运行了。不仅如此,我们还能提供 Linux版本,而且其技术栈和我们的业务本身的技术栈很契合,因为我们在其他地方也都使用 Node.js 技术。

我抓住了机会,使用 NW.js 去重新构建这款桌面应用并且摒弃一切,勇往直前。 NW.js 让一切都变得更加简单,这得益于它可以从大会网站的 Web 应用重用 HTML、 CSS和 JS代码,我们可以让桌面应用看上去样式更加统一。这是一个巨大的好处。

我当时对这个框架非常满意,于是决定在 2014 年 6 月的伦敦 Node.js 用户组聚会上进行分享。后来我就把演示稿放到了网上。几个月后,我发现这个演示稿在 SlideShare 网站上很快被查看了 20 000次。这太棒了,我以为这事就这样了。

然而并没有。

2014 年 12 月,我收到了一封来自 Manning 出版社 Erin Twohey 的电子邮件,他问我是否有兴趣写一本关于 node-webkit 的书。这简直太棒了,我立刻就投入到这本书的写作中。

那段时间发生了很多事情。Node.js 社区 fork 了 Node.js 项目并命名为 IO.js,他们加快了平台新特性的开发,后来 IO.js 项目又合并回了 Node.js项目。 node-webkit 框架切换到了 IO.js,并且由于它使用了 Blink 而非 WebKit,因此改名为 NW.js。一年过去了,本书的写作也临近尾声,就在这个时候,我们发现了另外一个可以用 Node.js 开发桌面应用的框架,叫 Electron。仔细一看,我发现 Electron 和 NW.js 很像,而且它的作者以前就是开发 NW.js 的。于是我们决定将 Electron 也写到本书中。

写一本书同时涵盖两种 Node.js 桌面应用开发框架是一个挑战,不过最终还是完成了。本书涵盖了使用 NW.js 和 Electron 开发桌面应用的基础知识。尽管本书没有面面俱到地介绍这两个框架,但是足够让你了解它们的大部分特性以及如何使用的知识,这样你就可以根据你的需求,选择其中一个框架来构建桌面应用。

对于开发者来说这是一个很好的时代,有了像 NW.js 和 Electron 这样的工具,构建桌面应用变得再简单不过。我希望你喜欢这本书,如果对于这两个框架有问题想问我的话,可以通过我的电子邮箱 paulbjensen@gmail.com 或者通过我的 Twitter账号 @paulbjensen联系我。

Paul B. Jensen



致谢

写书是非常艰难的项目之一,它需要投入大量的时间和精力。同时,还需要不少人的协助。我要感谢的人很多,他们都或多或少帮助过我。首先我要感谢 Manning 出版社负责本书的团队: Erin Twohey、Ana Romac、 Candace Gillhoolhey、Rebecca Rinehart、Aleksandar Dragosavljevic、Toni Bowers、

ˊMehmed Pasic、Karen Gulliver、Katie Tennant、Janet Vail 以及 Lynn Beighley。促成本书的工作量之大是你难以想象的,在此过程中他们都极力帮助我完善本书。我还要感谢技术审校 Clive Harber 和以下这些审校人员: Angelo Costa、Daniel Baktiar、 Darko Bozhinovski、Deepak Karanth、Fernando Monteiro Kobayashi、Jeff Smith、 Matt Borack、Nicolas Boulet-Lavoie、Olivier Ducatteeuw、Patrick Regan、Patrick Rein、Robert Walsh、Rocio Chongtay、Stephen Byrne、Toni La.. hdekorpi、William Wheeler、Yogesh Poojari 以及 Marcelo Pires;同时感谢 Natko Stipanicˇ ev 在图片方面提供的帮助。

感谢 Marjan Bace 给我写作本书的机会。能为 Manning写书是一种荣誉;我的书架上有不少 Manning出版社的书,现在他们的书架上多了一本我的书。还要感谢 Michael Stephens 在写书之初帮助我制订了本书的大纲、感谢他在面对我各种拖稿的时候能够妥善处理、感谢他当我遇到个人困难的时候给予理解。

感谢我的开发编辑—Cynthia Kane。她完成了最困难的工作—激励我完成每一个章节的内容。这是我的第一本书,你可以想象这个过程有多么痛苦。我有一份电子邮件归档,里面包含超过 150封邮件,这些都是她在我写书阶段发给我的,那个时候我在伦敦、阿姆斯特丹、爱尔兰、意大利、纽约,然后又到阿姆斯特丹,最后又回到伦敦。在非常困难的 2016 年,Cynthia 始终耐心地激励我将本书完成,而且尽管有时区问题,她都能及时地提供支持和帮助。万分感激,谢谢 Cynthia。

感谢 Roger Wang和 Cheng Zhao开发了 NW.js 和 Electron—没有他们的努力,这本书压根就不可能存在。

感谢在伦敦 Starcount 的 Edwina Dunn 和 Clive Humby,很荣幸可以和他们共事,非常感激他们给予我的支持。

感谢 Purple Seven 的 Stuart Nicolle。Stuart 当年带我入职并带我领略了如何从艺术和戏剧分析世界中收集有用的信息。

感谢我的家人:我的母亲 Jette、妹妹 Maria 和她的伙伴 Mark,已故的 Gran Lis 以及 Brenda 和 Jim。他们抚育我成人、在我人生道路上为我披荆斩棘。

我还想特别感谢 Fiona。她容忍了我写书过程中的一切,甚至更多。本书能够成功出版和她对我的支持和爱是分不开的。

最后我还想提一下我的父亲 Wily,他是一名硬件和软件工程师,非常聪明却又不好相处。虽然我们从未正眼看过对方,但还是要感谢有这样一位父亲。


关于代码

本书包含诸多示例代码,有标明序号的多行代码,也有直接在正文中的单行代码。不论是哪种形式,代码都是以等宽字体的形式来表示的,以此来和正文进行区分。大多数情况下,源代码都是格式化过的;为了适应书页的空间添加了必要的换行和缩进。除此之外,当有专门解释源代码的文字时,代码注释通常就被去掉了。一般在多行代码以及高亮显示的重要概念时会有代码注解。

本书中的示例代码可以通过出版社网站 www.manning.com/books/cross-platform-desktop-applications或 GitHub的 http://github.com/paulbjensen/cross-platform-desktop-applications 下载得到。


作者在线

购买本书之后,读者可以免费访问 Manning 出版社的私有论坛,在那里,可以对本书进行评论、提问技术问题,作者和论坛中的其他用户都会给予解答。要访问和订阅该论坛,请访问 www.manning.com/books/cross-platform-desktop-applications。


读者服务

轻松注册成为博文视点社区用户(www.broadview.com.cn),扫码直达本书页面。

提交勘误:对书中内容的修改意见可在提交勘误处提交,若被采纳,将获赠博文视点社区积分(在你购买电子书时,积分可用来抵扣相应金额)。

与我们交流:在页面下方读者评论处留下疑问或观点,与我们和其他读者一同学习交流。

页面入口: http://www.broadview.com.cn/33474



《跨平台桌面应用开发:从零到精通》 概述 在这个数字化浪潮席卷全球的时代,桌面应用依然扮演着至关重要的角色。无论是功能强大的专业软件,还是便捷实用的工具类应用,它们都为用户提供了深度、稳定且高效的交互体验。然而,传统的桌面应用开发往往面临着跨平台兼容性的挑战,开发者需要为不同的操作系统(Windows, macOS, Linux)编写和维护各自的代码库,这不仅耗时耗力,也大大增加了开发成本。 《跨平台桌面应用开发:从零到精通》旨在解决这一痛点,它将引领读者深入探索一种革新性的桌面应用开发模式——使用Web技术构建高性能、跨平台的桌面应用程序。本书并非仅仅介绍某个特定框架的使用,而是从更宏观的角度,系统地讲解跨平台桌面应用开发的原理、核心技术以及最佳实践。我们将带领您全面理解如何利用前端的HTML、CSS和JavaScript,结合强大的后端能力,打造出媲美原生应用的桌面软件,并且一次开发,多处部署,极大地提高开发效率和产品迭代速度。 本书特色与亮点 1. 原理深度剖析,而非浅尝辄止: 本书将深入浅出地讲解跨平台桌面应用的核心原理,例如:Web技术如何在桌面环境中运行、沙箱机制如何保障安全、进程通信是如何实现的、以及如何与操作系统原生API进行交互等。我们不会仅仅停留在API的调用上,而是会探究其背后的运行机制,帮助您构建出真正理解并能灵活运用的应用。 2. 技术栈的灵活选择与整合: 跨平台桌面应用开发并非只有一条路。本书将为您梳理主流的解决方案,并详细讲解它们的优势、劣势以及适用场景。您将学会如何根据项目需求,选择最适合的技术栈,并有效地整合各种工具和库,例如:高效的打包工具、热更新机制、性能优化策略等。 3. 丰富的实战案例,循序渐进: 理论结合实践是学习任何技术最有效的方式。本书精心设计了多个具有代表性的实战案例,涵盖从简单的文件工具到复杂的编辑器,乃至集成数据库和网络通信的应用。每个案例都将从需求分析、架构设计、代码实现到最终的打包发布,进行详细的步骤分解和代码演示,让您能够边学边练,快速上手。 4. 性能优化与安全性考量: 随着应用功能的日益复杂,性能和安全性成为桌面应用不可忽视的环节。本书将专门辟出章节,讲解如何进行性能分析和优化,包括代码层面的优化、内存管理、异步处理以及UI渲染优化等。同时,我们还将深入探讨桌面应用的安全性问题,包括数据加密、用户权限管理、防止恶意攻击等,帮助您构建出安全可靠的应用。 5. 生态与工具链的掌握: 现代软件开发离不开完善的生态和强大的工具链。本书将带领您熟悉跨平台桌面应用开发中常用的各种工具,例如:代码编辑器、调试工具、包管理器、构建工具、打包工具等,并讲解如何有效地利用它们来提升开发效率。此外,还将介绍一些流行的第三方库和框架,帮助您快速实现各种功能。 6. 从入门到进阶,全面覆盖: 无论您是刚接触跨平台桌面应用开发的初学者,还是希望深化理解的资深开发者,本书都能为您提供有价值的内容。我们将从基础概念讲起,逐步深入到高级主题,确保您能够构建出功能强大、性能优异且用户体验出色的桌面应用程序。 内容前瞻(不包含任何特定框架名称,仅描述内容方向) 本书将围绕以下几个核心主题展开,为您构建一站式的跨平台桌面应用开发知识体系: 第一部分:跨平台桌面应用开发基础 何为跨平台桌面应用? 深入理解跨平台开发的优势与挑战,以及其在现代软件开发生态中的地位。 技术选型概览: 介绍不同的技术路线及其核心原理,帮助读者理解不同方案的权衡。 核心架构解析: 讲解典型的跨平台桌面应用架构,包括如何分离UI层与业务逻辑层,以及如何实现与操作系统底层的交互。 环境搭建与开发流程: 详细指导读者搭建开发环境,并熟悉从编码、调试到测试的完整开发流程。 第二部分:构建用户界面与交互 利用Web技术构建UI: 详细讲解如何使用HTML、CSS以及现代前端框架(如React, Vue, Angular等,此处仅为说明技术方向,不直接提及框架名)来设计美观、响应式的用户界面。 响应式设计与布局: 掌握在不同屏幕尺寸和分辨率下,保持应用良好显示效果的技巧。 丰富的UI组件与交互: 学习如何实现各种常见的UI组件,如菜单、对话框、表格、图表等,并设计流畅的用户交互体验。 原生UI元素的集成: 探索如何在Web视图中集成部分原生UI元素,以获得更佳的系统集成感和性能。 第三部分:核心功能实现与系统集成 文件系统操作: 学习如何安全、高效地读写文件,管理本地数据,以及如何处理文件拖拽等操作。 进程通信机制: 深入理解主进程与渲染进程之间的通信原理,掌握IPC(Inter-Process Communication)的各种实现方式,实现数据和功能的传递。 系统级特性集成: 学习如何访问和利用操作系统的特性,如托盘图标、全局快捷键、通知系统、窗口管理等,使应用更贴近原生体验。 网络通信与数据管理: 讲解如何在桌面应用中进行网络请求,与后端服务器进行数据交互,以及如何实现本地数据缓存和离线支持。 数据库集成: 探索在桌面应用中集成嵌入式数据库或连接远程数据库的方案,管理复杂的数据结构。 第四部分:性能优化与安全加固 性能分析工具与方法: 学习如何使用各种工具定位应用的性能瓶颈,并掌握代码优化、内存管理、异步编程等核心优化技巧。 UI渲染优化: 探讨如何提升UI的渲染效率,减少卡顿,确保流畅的用户体验。 资源管理与打包优化: 学习如何精简应用体积,优化启动速度,以及如何选择合适的打包策略。 安全编码实践: 深入理解桌面应用的安全风险,学习如何进行输入验证、数据加密、防止跨站脚本攻击(XSS)等,构建安全可靠的应用。 权限管理与沙箱机制: 讲解如何合理地管理应用权限,以及沙箱机制如何保障应用的安全性。 第五部分:打包、发布与持续集成 应用打包与分发: 学习如何将开发完成的应用打包成可执行文件,支持Windows、macOS和Linux等主流操作系统。 更新机制的实现: 探讨如何为应用实现自动更新功能,提供 seamless 的用户体验。 构建与部署流程: 介绍如何利用CI/CD(持续集成/持续部署)工具,自动化应用的构建、测试和发布过程。 第三方库与生态的应用: 熟悉常用的第三方库和工具,了解如何利用社区资源加速开发。 学习本书,您将获得: 一套完整的跨平台桌面应用开发技能: 从基础概念到高级技巧,您将全面掌握使用Web技术构建桌面应用的方方面面。 独立解决问题的能力: 理解技术原理,您将不再局限于简单的API调用,而是能够分析问题、找到解决方案,并进行创新。 高效的开发模式: 掌握跨平台开发的核心理念,大幅提高开发效率,降低维护成本。 构建用户喜爱应用的信心: 通过大量的实战案例,您将有能力打造出功能丰富、性能卓越、体验出色的桌面应用程序,满足不同用户的需求。 无论您是希望快速构建跨平台桌面应用的开发者,还是对现代软件开发技术感兴趣的学习者,《跨平台桌面应用开发:从零到精通》都将是您不可或缺的参考指南。让我们一起踏上这场令人兴奋的跨平台开发之旅,用Web的力量颠覆传统桌面应用的开发模式!

用户评价

评分

这本书的实战案例部分设计得非常贴近工业界的真实需求。我翻阅了几个章节,发现它们并不是那种为了演示技术而堆砌的“玩具项目”,而是考虑了性能优化、跨平台兼容性以及错误处理等实际开发中会遇到的痛点。作者在构建这些案例时,展现出了对不同操作系统环境下特有问题的深刻理解,并在代码中体现了相应的解决方案。这对于那些希望将所学知识快速应用到工作中去的读者来说,无疑是最大的价值所在。它提供的不仅仅是代码,更是一套完整的、经过实战检验的开发方法论,让人感觉手中的知识是“活的”,随时可以投入生产环境使用。

评分

我尤其欣赏作者在讲解复杂技术原理时的那种“庖丁解牛”般的叙事方式。书中没有急于展示复杂的代码片段,而是先构建起一个清晰的理论框架,循序渐进地剖析底层逻辑。比如,在介绍某个框架的核心机制时,作者并非简单地罗列API,而是深入到其设计哲学和取舍,这种高度的洞察力让读者不仅知道“怎么做”,更明白了“为什么这样做”。文字的组织逻辑紧密而流畅,仿佛一位经验丰富的导师在耳边耐心指导,每一个转折点都处理得恰到好处,避免了技术文档常见的晦涩难懂。这种深度解读,让这本书超越了一般的“操作手册”的范畴,更像是一本提升思维层次的工具书。

评分

这本书的语言风格显得十分稳健且充满自信,没有丝毫浮夸的辞藻,一切以事实和技术逻辑为准绳。作者的语气不卑不亢,既不故作高深,也不流于浅薄,恰当地在专业性和可读性之间找到了平衡点。我特别喜欢它在总结部分的处理,往往能用几句话精准地概括本章节的核心收获和注意事项,这对于记忆和快速回顾知识点极为有效。总而言之,阅读这本书的过程,是一种高效且令人愉悦的学习体验,它体现了作者对技术的热爱和对读者的尊重,是一本值得反复研读的佳作。

评分

从内容广度和深度来看,这本书的编辑工作做得非常到位。它在保持核心技术讲解深入的同时,也兼顾到了对相关生态系统的介绍。例如,在涉及构建工具链的部分,作者并没有局限于最主流的配置,而是对几种主流方案的优缺点进行了横向对比,帮助读者建立起宏观的视野。这种“面面俱到”却又不失重点的特点,使得这本书既适合作为入门读物,也适合作为进阶工程师的案头参考。每一次重读,似乎都能在原有的认知基础上,发现新的知识点或更优的实践路径,这种持续的价值产出,是衡量一本技术书籍优劣的关键标准之一。

评分

这本书的排版和装帧设计非常用心,光是拿到手里就能感受到作者和出版团队的诚意。封面设计简洁大气,书脊的字体选择也十分考究,让人在书架上瞥一眼就能被吸引。内页的纸张质感也令人惊喜,阅读体验非常舒适,即使长时间阅读也不会感到眼睛疲劳。更值得称赞的是,书中对于代码示例的呈现方式,清晰的缩进和恰当的注释,使得复杂的概念也能一目了然。对于初学者来说,这种对细节的关注无疑是巨大的福音,它让学习过程本身也变成了一种享受,而不是枯燥的文字堆砌。这种对阅读体验的重视,在技术书籍中是难能可贵的。

评分

讲解的很浅显易懂,比较适合入门,有代码示例。不过也只能用做入门书籍了?

评分

书挺好的,物流很快,第一本讲electron的书

评分

很好很好,非常满意。

评分

书挺好的,物流很快,第一本讲electron的书

评分

。。,。。。。。。。。。。。。。

评分

读书节买了一大筐,这是其中一本,有些人啊,一买书手就得剁……

评分

这是一个有趣的技术

评分

讲解的很浅显易懂,比较适合入门,有代码示例。不过也只能用做入门书籍了?

评分

非常好,优惠多多!

相关图书

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 book.idnshop.cc All Rights Reserved. 静思书屋 版权所有