node.js 進攻桌面開發
DESCRIPTION
You can enjoy desktop development with Node.js and HTML5/CSS/WebGL right now. Here we also to announce that Stem project which is a JavaScript operating system, it makes developers be able to make things on embedded system with JavaScript only. There is no need to understand that difficult knowledge about embedded system when you work on Stem OS.TRANSCRIPT
Node.js進攻桌面開發
用 HTML5 開發跨平台的單機版應用程式!
錢逢祥
Fred Chien
錢逢祥
Fred Chien
fred-zone.blogspot.com
cfsghost At gmail.com
Mandice
How many people know
有多少人知道
JavaScript 開發年資大調查
JavaScript 辛酸血淚史
奇怪的運作原理
沿街叫罵喊打
語法設計差
醜不拉嘰
效能不彰
動作緩慢
會 Copy & Paste 就可以自稱會寫
開發者都不開發者了
還記得首頁製作百寶箱這個可怕的箱子嗎?
Nobody knows
殊不知
Lovely
鐘樓怪人也有可人的一面
史瑞克 仍可把到正妹
V8 + APIs
Node.js
百年修得同船渡
Enough !?
你這樣就滿足了嗎?
泡麵科技產業
當泡麵師父都可以來賣電腦
我們怎麼可以止步不前?
最少也應該吃泡麵洩恨
然後努力搞點新花樣
JavaScript 已經征服三大洲
前端、後端、雲端
What's Next?
桌面應用程式
JavaScript
Think About It
瀏覽器
性感的存在
HTML5CSS
WebGL
HTML5CSS
WebGL
HTML5CSS
WebGL
My Application
HTML5CSS
WebGL
window.open('page.html', *=no);
喔。不過就是沒邊框。
誰都會
把瀏覽器扒光而已嘛
看到全裸的美女無動於衷?
My Application
HTML5CSS
WebGL
My Application
Node.js Inside
node-webkit at github
node-webkit
這意味著我不想要.....
HTTP ServerNode.js
HTTP ServerNode.js
GET/POST/...
RESTful APIsAjax....etc
HTTP ServerNode.js
GET/POST/...
RESTful APIsAjax....etc
<html><head><title>Hey</title><script> var fs = require('fs'); fs.unlinkSync('/home/fred/聊天記錄');</script></head></html>
我希望這樣寫一支程式 killsecret.html
node-webkit +
killsecret.html
立即殺光我的小秘密
沒有用到 HTTP 方法
瀏覽器本身內建 Node.js
node-webkit
絕對比 IE 支援更多 Web 標準
追隨著 Chromium 的腳步
HTML5/CSS3/WebGL... etc
追隨著 Chromium 的腳步
還可以跨平台 Windows/Linux/Mac
追隨著 Chromium 的腳步
數以萬計的第三方模組
用 Node.js 熬七七四十九天
經過後端考驗的穩定度
用 Node.js 熬七七四十九天
將 JS 程式 Compile 成 Binary 檔
其他更多功能
將 JS 程式打包進執行檔內
其他更多功能
Usage
如何打造桌面應用程式
index.htmljs/img/css/
Your Application
index.htmljs/img/css/
Your Applicationpackage.json
{"name": "hello world","main": "index.html"
}
package.json
Run
執行
./nw /home/fred/myapp
nw [App Path]
myapp.nw
你也可以打包成 ZIP 檔
執行包成 ZIP 檔的程式
./nw /home/fred/myapp.nw
nw [zip file]
myapp.exe (standalone)
做成獨立執行檔
Windows
copy /b nw.exe+app.nw myapp.exe
Linux
$ cat /usr/bin/nw app.nw > myapp $ chmod +x myapp
node-webkit
node-webkit
myapp.nw
node-webkit
myapp.nw
Live Demo
更多實例
Markdown Editor
Tool for Web Developer
Reddit Client
附帶一提
Node.js可以開發桌面應用
舊電腦
Raspberry PiARM Board
...
甚至使用 node-webit 跑 GUI 程式?
跑 Node.js 應用?
純 JavaScript開發嵌入式系統?
買了很多 ARM 板丟一邊的舉手?
不是每個人都搞 Porting
Stem
讓你無痛跑 Node.js 應用的嵌入式 OS
Stem
Support x86 and ARM
Stem
千萬別用中文單唸這個名字,感謝。
Stem
當然也別用 Google Translate
Stem
stem.mandice.org
Download
懂 Node.js + Web 就可以 DIY 嵌入式應用
硬體這麼便宜
懂 Node.js + Web 就可以 DIY 嵌入式應用
HW + Stem OS + Your App
Enjoy It
Question ?
Thanks !