發表於2024-11-23
傳統桌麵應用開發要求懂高級編程語言以及專門的框架。有瞭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的書
評分內容不錯,看瞭受益匪淺。
評分還可以。。。。
評分appgetapppathappgetapppath
評分此用戶未填寫評價內容
評分哈哈哈哈哈哈計劃經濟傢
評分不錯。。。
評分。。,。。。。。。。。。。。。。
跨平颱桌麵應用開發:基於Electron與NW.js mobi epub pdf txt 電子書 格式下載 2024