SlideShare ist ein Scribd-Unternehmen logo
1 von 51
Downloaden Sie, um offline zu lesen
 XULRunner	
  +	
  JS	
  開發跨平台且
具擴充性應⽤用程式	
  
	
  
	
  
Rack	
  Lin	
  阿土伯 	
  @JSDCTW2013
about:me
•  ViViPOS	
  Co.,	
  Ltd	
  	
  技術總監	
  
–  利用 JavaScript	
  寫 〞收銀機〞(傳統產業,全新感受)	
  
•  CoCo	
  都可、50嵐、歇腳亭、Yamaha	
  、星聚點KTV……	
  
	
  
•  PHP	
  /	
  JavaScript	
  /	
  Java	
  Programmer	
  (目前移情於
Scala	
  )	
  
	
  
•  racklin@gmail.com	
  
•  hRps://twiRer.com/racklin	
  
•  hRp://www.plurk.com/racklin	
  
•  hRps://www.facebook.com/racklin1002	
  
•  hRp://racklin.blogspot.tw/	
  	
  	
  (生小孩後就變癈墟)	
  
about:me	
  
•  我是坐在電腦前端的工程師。	
  
跨平台程式開發
•  工程師的浪漫?寫跨平台程式是我的夢想。	
  
跨平台定義	
  
•  下忍時以為跨平台程式就是:	
  
	
  
跨 	
  
	
  	
  	
  	
  	
  Windows	
  95	
  /	
  Windows	
  98	
  /	
  Windows	
  NT	
  	
  
	
  	
  	
  	
  	
  Windows	
  XP	
  …………	
  	
  
跨平台定義	
  
•  中忍時跨平台程式是:	
  
	
  
跨 	
  
	
  	
  	
  	
  	
  Windows	
  /	
  Linux	
  /	
  Mac	
  OSX	
  	
  
	
  
跨平台定義	
  
•  上忍時跨平台程式是:	
  
	
  
跨 	
  
	
  	
  	
  	
  	
  Windows	
  /	
  Linux	
  /	
  Mac	
  OSX	
  	
  
	
  
Mobile	
  
	
  	
  	
  	
  	
  Android	
  /	
  iOS	
  /	
  Firefox	
  OS	
  
跨平台定義	
  
•  只有火影能:	
  
	
  
跨 	
  
	
  	
  	
  	
  	
  Windows	
  8	
  /	
  Windows	
  8	
  RT	
  
	
  
跨平台的挑戰	
  
•  GUI	
  ToolKits	
  	
  
•  Binding	
  Languages	
  	
  
•  …	
  
•  …	
  
•  …	
  
•  因為	
  JSDC	
  +	
  時間關係	
  
– 總之選定 XULRunner	
  +	
  JS	
  
在開始談 XULRunner	
  前
你聽過 Rich	
  Client	
  Pla`orm	
  嗎?	
  
Rich Client Platform	
  (wiki)	
  
• A standard bundling framework	
  
• User interface management 
	
  
• User settings management 	
  
• Storage management 	
  
• Window management	
  
• Update manager	
  
- Eclipse RCP	
  
- Netbeans Platform	
  
- Spring Framework RCP	
  
Netbeans	
  Pla`orm
•  Empty	
  app1	
  (30MB)
WHY	
  RCP
•  寫完一支程式很容易,完成一個產品是很
困難的。	
  
– 經常 Branch	
  /	
  Code	
  Generator	
  	
  
Customer	
  A
Customer	
  B
Customer	
  C
是做產品還是代工?	
  
•  你希望再代工多少個, 讓我們數到十。	
  
WHY	
  RCP
•  Upstream	
  Core	
  Components	
  	
  
•  Customizadon	
  
– Customer	
  A	
  (	
  Core	
  +	
  A1	
  +	
  B1	
  +	
  C1	
  ….)	
  
– Customer	
  B	
  (	
  Core	
  +	
  A1	
  +	
  C1	
  +	
  D1	
  …)	
  
– Customer	
  C	
  (	
  Core	
  +	
  A1	
  +	
  E1	
  +	
  F1	
  …)	
  
XULRunner	
  /	
  Applicadon	
  Launcher
Core	
  (Main	
  UI	
  /	
  API)
將專案拆成小模組
•  這裡的模組化,並不是程式中的套件或模組,
而是彼此獨立的應用程式。	
  
•  小模組易於開發及測試	
  
•  小模組昇級容易且快速	
  
•  小模組各思其職	
  
•  想想 eclipse	
  /	
  netbeans	
  IDE	
  .	
  
•  想想 firefox	
  /	
  google	
  chrome	
  	
  
一堆小模組
產品
Javascript	
  界的 RCP	
  
XULRunner	
  
Firefox	
  
•  Firefox	
  是基於 XULRunner	
  下開發。	
  
– 在 URL	
  中輸入 	
  
– chrome://browser/content/	
  
Incepdon?	
  
XULApp	
  StarterKit
•  hRps://github.com/racklin/xulapp-­‐starterkit	
  
	
  
•  Build	
  Scripts	
  (MacOSX	
  /	
  Linux	
  /	
  Windows)	
  
•  Skeleton	
  UI	
  Sehngs	
  
–  Window	
  /	
  Menubar	
  /	
  Statusbar	
  
•  Javascript	
  Libraries	
  
–  jQuery	
  
–  GREUdls	
  
–  Lodash	
  
•  Embedded	
  Develop	
  Tools	
  
–  SQLite	
  Manager	
  
–  DOM	
  Inspector	
  
–  JSConsole	
  
XULApp	
  StarterKit
•  MacOSX	
  DMG	
  (34MB)
XULRunner 基本特色
•  Cross-­‐Pla`orm	
  
•  I18n	
  /	
  l10n	
  	
  
•  Gecko	
  rendering	
  engine	
  
– HTML5	
  *	
  
– CSS3	
  
– JavaScript	
  
– XML	
  (XSLT,	
  XMLHRpRequest,	
  DOMParser)	
  
	
  
當成 PhoneGap	
  用
XULApp	
  StarterKit	
  Demo	
  
HTML5	
  /	
  CSS3	
  /	
  JS
hRps://github.com/racklin/xulapp-­‐starterkit-­‐app-­‐webapp-­‐wrapper	
  
hRps://github.com/racklin/xulapp-­‐starterkit-­‐app-­‐todomvc	
  
萌典 Windows/Linux/MacOSX	
  
Preferences	
  System	
  
萌典 Windows/Linux/MacOSX	
  
Preferences	
  System	
  
XULRunner	
  神兵
•  XUL	
  
– XUL	
  
– XUL	
  Overlays	
  
•  Preferences	
  System	
  
•  XPCOM(Cross-­‐Pla`orm	
  Component	
  Object	
  Model)	
  
– C++	
  /	
  Python	
  /	
  Java	
  /	
  Javascript	
  
– Low	
  Level	
  API	
  
•  Ex.	
  File	
  Systems	
  /	
  Databases	
  /	
  Thread	
  
XULRunner	
  利器
•  Installadon	
  and	
  upgrade	
  mechanism	
  
– XPInstall	
  
•  Extension	
  Manager	
  
•  XBL	
  
– reusable	
  components	
  
 XULRunner	
  +	
  JS	
  開發跨平台且
具擴充性應⽤用程式	
  
XUL	
  
•  XML	
  User	
  Interface	
  Language。 	
  
– 啥?	
  
– 它提供了⼀一套跨平台的widget定義。	
  
•  BuRon	
  /	
  List	
  /	
  Tree	
  /	
  Tab	
  /	
  Menubar.	
  
– Why	
  ??	
  我們已經有 HTML5	
  	
  了?	
  
•  如同 Java	
  中的 Swing	
  /	
  SWT	
  	
  
•  XUL	
  使用的是 Nadve	
  Pla`orm	
  UI.	
  	
  
HTML	
  則是由 CSS	
  中定義,各平台一致。	
  
Mac	
  OSX	
  XUL	
  DEMO	
  
Linux	
  XUL	
  DEMO	
  
大家看出差異了嗎?	
  
沒有是正常的!	
  
Linux	
  裝了	
  mac4lin	
  -	
  
	
  Mac	
  OS/X	
  主題	
  
XUL	
  Overlays	
  
•  	
  由 chrome.manifest	
  中以 URI	
  定義	
  
–  overlay	
  chrome://a/content/a.xul	
  chrome://b/
content/b.xul	
  
•  UI	
  overlays	
  
–  Like:	
  $(‘#id’).arer(<html>)	
  ,	
  $(‘#id’).before(<html>)	
  
–  發生在 DOMContentLoaded	
  Event	
  Trigger	
  之前	
  
•  Scripts	
  Hook	
  
–  Javascript	
  Script	
  tag	
  也能 overlay	
  ,	
  所以我們可以於
Extensions	
  插入 js	
  至現有程式中。	
  
XUL	
  Overlays	
  
	
  
•  還有一個兄弟 override	
  
– 用另一個 URI	
  內容 取代原 URI	
  內容。	
  
– overide	
  chrome://a/content/a.xul	
  chrome://b/
content/b.xul	
  
Live	
  Coding	
  Demo	
  
XUL	
  Overlays	
  /	
  Override	
  
XUL	
  Overlays	
  /	
  override	
  
•  它解決了程式設計師在實作 Plugin	
  的困苦	
  
– 在即有程式中,感知擴充程式的存在並溝通	
  
– 在即有畫面中,提供擴充程式描繪 UI	
  /	
  佈局	
  
•  Override	
  它解決了	
  
– Live	
  Patch	
  bugs	
  
– Template	
  /	
  Reports	
  
Preferences	
  System	
  
•  about:config	
  看到的東西	
  
•  App	
  or	
  Extensions	
  目錄下的 defaults
preferences*.js	
  as	
  system	
  preferences.	
  
•  Profile	
  目錄下的 prefs.js	
  as	
  user	
  preferences.	
  
•  Merge	
  system	
  and	
  user	
  preferences	
  when	
  
startup	
  .	
  
Preferences	
  System	
  
•  Key-­‐Value	
  Databases	
  (	
  JSON)	
  
•  User	
  Preferences	
  
•  Registry	
  System	
  
•  Inter-­‐Process-­‐Communicadon	
  (別這麼用)	
  
XPCOM	
  
•  提供 Driver	
  /	
  Adaptor	
  
– DBUS	
  /	
  OSD	
  /	
  VKB	
  /	
  ZeroMQ	
  
•  利用 C++	
  實作高效能	
  
•  mozIJSSubScriptLoader	
  	
  
– 強大邪惡的存在	
  
– Extend	
  DSL	
  -­‐>	
  JS	
  
– Encode	
  JS	
  
– Trial	
  Expire	
  Date	
  
	
  
Ready	
  for	
  Producdon	
  ?	
  
工程師都怕將來被釘在牆上	
  
XULRunner	
  Hall	
  of	
  Fame	
  
•  Firefox	
  
•  Komodo	
  Edit	
  
•  Flickr	
  Uploader	
  
•  VIVIPOS	
  
– 全球超過 6000 台收銀機日以繼夜的當白老鼠	
  
LIVE	
  DEMO
VIVIPOS	
  
HDM9	
  
•  在眾設計師面前, VIVIPOS	
  太醜。	
  
向業界可
敬的對手	
  
	
  
CASIO	
  POS	
  
	
  
山寨 致敬	
  
剩下十秒鐘了	
  
買房子最重要的三件事:	
  
LOCATION	
  	
  	
  	
  LOCATION	
  	
  	
  LOCATION	
  
	
  
寫軟體最重要的三件事:	
  
EXTENSION	
  EXTENSION	
  EXTENSION
工商服務	
  
歡迎提案合作	
  
Resources
•  Slide:	
  	
  
hRp://goo.gl/w1WIh	
  
•  XULApp	
  StarterKit:	
  
hRps://github.com/racklin/xulapp-­‐starterkit	
  
•  XULRunner	
  –	
  MDN	
  
hRps://developer.mozilla.org/en-­‐US/docs/
XULRunner	
  

Weitere ähnliche Inhalte

Was ist angesagt?

成為全能 php 攻城獅
成為全能 php 攻城獅成為全能 php 攻城獅
成為全能 php 攻城獅Shengyou Fan
 
TypeScript 開發實戰:開發即時互動的 html5 websocket 聊天室應用程式
TypeScript 開發實戰:開發即時互動的 html5 websocket 聊天室應用程式TypeScript 開發實戰:開發即時互動的 html5 websocket 聊天室應用程式
TypeScript 開發實戰:開發即時互動的 html5 websocket 聊天室應用程式Will Huang
 
應用程式部署
應用程式部署應用程式部署
應用程式部署Shengyou Fan
 
使用 laravel 的前與後
使用 laravel 的前與後使用 laravel 的前與後
使用 laravel 的前與後Shengyou Fan
 
Rails talk-5
Rails talk-5Rails talk-5
Rails talk-5Eddie Lee
 
Class 20170126
Class 20170126Class 20170126
Class 20170126Ivan Wei
 
Visual Studio 2017 新功能探索 (Study4.TW)
Visual Studio 2017 新功能探索 (Study4.TW)Visual Studio 2017 新功能探索 (Study4.TW)
Visual Studio 2017 新功能探索 (Study4.TW)Will Huang
 
COSCUP 2016 Laravel 部署工作坊 - 部署指南
COSCUP 2016 Laravel 部署工作坊 - 部署指南COSCUP 2016 Laravel 部署工作坊 - 部署指南
COSCUP 2016 Laravel 部署工作坊 - 部署指南Shengyou Fan
 
凌波微步:wagon + VS Code 的輕功哲學
凌波微步:wagon + VS Code 的輕功哲學凌波微步:wagon + VS Code 的輕功哲學
凌波微步:wagon + VS Code 的輕功哲學Shengyou Fan
 
ASP.NET MVC 6 新功能探索
ASP.NET MVC 6 新功能探索ASP.NET MVC 6 新功能探索
ASP.NET MVC 6 新功能探索Will Huang
 
Visual Studio Code 快速上手指南
Visual Studio Code 快速上手指南Visual Studio Code 快速上手指南
Visual Studio Code 快速上手指南Shengyou Fan
 
[PHPConf Taiwan 2015] 跟著 Laravel 5.1 一起成為更好的 PHP 開發者
[PHPConf Taiwan 2015] 跟著 Laravel 5.1 一起成為更好的 PHP 開發者[PHPConf Taiwan 2015] 跟著 Laravel 5.1 一起成為更好的 PHP 開發者
[PHPConf Taiwan 2015] 跟著 Laravel 5.1 一起成為更好的 PHP 開發者Shengyou Fan
 
Daniel's objective c coding style guidelines
Daniel's objective c coding style guidelinesDaniel's objective c coding style guidelines
Daniel's objective c coding style guidelinesAVking
 
開發環境建置
開發環境建置開發環境建置
開發環境建置Shengyou Fan
 
How to choose web framework
How to choose web frameworkHow to choose web framework
How to choose web frameworkBo-Yi Wu
 
Angular 4 新手入門攻略完全制霸
Angular 4 新手入門攻略完全制霸Angular 4 新手入門攻略完全制霸
Angular 4 新手入門攻略完全制霸Will Huang
 
Model 設定與 Seeding
Model 設定與 SeedingModel 設定與 Seeding
Model 設定與 SeedingShengyou Fan
 
View 與 Blade 樣板引擎
View 與 Blade 樣板引擎View 與 Blade 樣板引擎
View 與 Blade 樣板引擎Shengyou Fan
 

Was ist angesagt? (20)

成為全能 php 攻城獅
成為全能 php 攻城獅成為全能 php 攻城獅
成為全能 php 攻城獅
 
TypeScript 開發實戰:開發即時互動的 html5 websocket 聊天室應用程式
TypeScript 開發實戰:開發即時互動的 html5 websocket 聊天室應用程式TypeScript 開發實戰:開發即時互動的 html5 websocket 聊天室應用程式
TypeScript 開發實戰:開發即時互動的 html5 websocket 聊天室應用程式
 
應用程式部署
應用程式部署應用程式部署
應用程式部署
 
使用 laravel 的前與後
使用 laravel 的前與後使用 laravel 的前與後
使用 laravel 的前與後
 
Rails talk-5
Rails talk-5Rails talk-5
Rails talk-5
 
Class 20170126
Class 20170126Class 20170126
Class 20170126
 
Vagrant教學
Vagrant教學Vagrant教學
Vagrant教學
 
Visual Studio 2017 新功能探索 (Study4.TW)
Visual Studio 2017 新功能探索 (Study4.TW)Visual Studio 2017 新功能探索 (Study4.TW)
Visual Studio 2017 新功能探索 (Study4.TW)
 
COSCUP 2016 Laravel 部署工作坊 - 部署指南
COSCUP 2016 Laravel 部署工作坊 - 部署指南COSCUP 2016 Laravel 部署工作坊 - 部署指南
COSCUP 2016 Laravel 部署工作坊 - 部署指南
 
凌波微步:wagon + VS Code 的輕功哲學
凌波微步:wagon + VS Code 的輕功哲學凌波微步:wagon + VS Code 的輕功哲學
凌波微步:wagon + VS Code 的輕功哲學
 
ASP.NET MVC 6 新功能探索
ASP.NET MVC 6 新功能探索ASP.NET MVC 6 新功能探索
ASP.NET MVC 6 新功能探索
 
Visual Studio Code 快速上手指南
Visual Studio Code 快速上手指南Visual Studio Code 快速上手指南
Visual Studio Code 快速上手指南
 
[PHPConf Taiwan 2015] 跟著 Laravel 5.1 一起成為更好的 PHP 開發者
[PHPConf Taiwan 2015] 跟著 Laravel 5.1 一起成為更好的 PHP 開發者[PHPConf Taiwan 2015] 跟著 Laravel 5.1 一起成為更好的 PHP 開發者
[PHPConf Taiwan 2015] 跟著 Laravel 5.1 一起成為更好的 PHP 開發者
 
Daniel's objective c coding style guidelines
Daniel's objective c coding style guidelinesDaniel's objective c coding style guidelines
Daniel's objective c coding style guidelines
 
開發環境建置
開發環境建置開發環境建置
開發環境建置
 
How to choose web framework
How to choose web frameworkHow to choose web framework
How to choose web framework
 
Angular 4 新手入門攻略完全制霸
Angular 4 新手入門攻略完全制霸Angular 4 新手入門攻略完全制霸
Angular 4 新手入門攻略完全制霸
 
Model 設定與 Seeding
Model 設定與 SeedingModel 設定與 Seeding
Model 設定與 Seeding
 
CRUD 綜合應用
CRUD 綜合應用CRUD 綜合應用
CRUD 綜合應用
 
View 與 Blade 樣板引擎
View 與 Blade 樣板引擎View 與 Blade 樣板引擎
View 與 Blade 樣板引擎
 

Ähnlich wie Build desktop app_by_xulrunner

2012 java two-desktop-appliction-using-j-ruby-with-swt
2012 java two-desktop-appliction-using-j-ruby-with-swt2012 java two-desktop-appliction-using-j-ruby-with-swt
2012 java two-desktop-appliction-using-j-ruby-with-swttka
 
Javascript primer plus
Javascript primer plusJavascript primer plus
Javascript primer plusDongxu Yao
 
美团前端架构简介
美团前端架构简介美团前端架构简介
美团前端架构简介pan weizeng
 
基于Symfony框架下的快速企业级应用开发
基于Symfony框架下的快速企业级应用开发基于Symfony框架下的快速企业级应用开发
基于Symfony框架下的快速企业级应用开发mysqlops
 
20120516 axure rp prototype design outline
20120516 axure rp prototype design outline20120516 axure rp prototype design outline
20120516 axure rp prototype design outlineturtleknight
 
讓軟體開發與應用更自由 - 使用 Docker 技術
讓軟體開發與應用更自由 - 使用 Docker 技術讓軟體開發與應用更自由 - 使用 Docker 技術
讓軟體開發與應用更自由 - 使用 Docker 技術Yu Lung Shao
 
Flutter 踩雷心得
Flutter 踩雷心得Flutter 踩雷心得
Flutter 踩雷心得Weizhong Yang
 
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型Jackson Tian
 
開放原始碼 Ch3.1 mobile - oss - oss行動領域-1 (ver1.0)
開放原始碼 Ch3.1  mobile - oss - oss行動領域-1 (ver1.0) 開放原始碼 Ch3.1  mobile - oss - oss行動領域-1 (ver1.0)
開放原始碼 Ch3.1 mobile - oss - oss行動領域-1 (ver1.0) My own sweet home!
 
一步一步开发Html5 mobile apps
一步一步开发Html5 mobile apps一步一步开发Html5 mobile apps
一步一步开发Html5 mobile appsAdam Lu
 
DRBL-live-hadoop at TSLC
DRBL-live-hadoop at TSLCDRBL-live-hadoop at TSLC
DRBL-live-hadoop at TSLCYu-Chin Tsai
 
開放原始碼 Ch2.1 app - oss - oss ide (ver1.2)
開放原始碼 Ch2.1   app - oss - oss ide (ver1.2)開放原始碼 Ch2.1   app - oss - oss ide (ver1.2)
開放原始碼 Ch2.1 app - oss - oss ide (ver1.2)My own sweet home!
 
Axure RP Prototyping Tool
Axure RP Prototyping ToolAxure RP Prototyping Tool
Axure RP Prototyping ToolSouyi Yang
 
[MOPCON 2022] 以 Kotlin Multiplatform 制霸全平台
[MOPCON 2022] 以 Kotlin Multiplatform 制霸全平台[MOPCON 2022] 以 Kotlin Multiplatform 制霸全平台
[MOPCON 2022] 以 Kotlin Multiplatform 制霸全平台Shengyou Fan
 
Hyper: 让Pod以VM为边界
Hyper: 让Pod以VM为边界Hyper: 让Pod以VM为边界
Hyper: 让Pod以VM为边界Xu Wang
 
GDC Taipei Summit review 2012
GDC Taipei Summit review 2012GDC Taipei Summit review 2012
GDC Taipei Summit review 2012Victor Lee
 
給 iOS 工程師的 Flutter 開發
給 iOS 工程師的 Flutter 開發給 iOS 工程師的 Flutter 開發
給 iOS 工程師的 Flutter 開發Weizhong Yang
 
Dreaming Infrastructure
Dreaming InfrastructureDreaming Infrastructure
Dreaming Infrastructurekyhpudding
 
A brief introduction to Vagrant – 原來 VirtualBox 可以這樣玩
A brief introduction to Vagrant – 原來 VirtualBox 可以這樣玩A brief introduction to Vagrant – 原來 VirtualBox 可以這樣玩
A brief introduction to Vagrant – 原來 VirtualBox 可以這樣玩Wen-Tien Chang
 

Ähnlich wie Build desktop app_by_xulrunner (20)

2012 java two-desktop-appliction-using-j-ruby-with-swt
2012 java two-desktop-appliction-using-j-ruby-with-swt2012 java two-desktop-appliction-using-j-ruby-with-swt
2012 java two-desktop-appliction-using-j-ruby-with-swt
 
Javascript primer plus
Javascript primer plusJavascript primer plus
Javascript primer plus
 
美团前端架构简介
美团前端架构简介美团前端架构简介
美团前端架构简介
 
基于Symfony框架下的快速企业级应用开发
基于Symfony框架下的快速企业级应用开发基于Symfony框架下的快速企业级应用开发
基于Symfony框架下的快速企业级应用开发
 
20120516 axure rp prototype design outline
20120516 axure rp prototype design outline20120516 axure rp prototype design outline
20120516 axure rp prototype design outline
 
讓軟體開發與應用更自由 - 使用 Docker 技術
讓軟體開發與應用更自由 - 使用 Docker 技術讓軟體開發與應用更自由 - 使用 Docker 技術
讓軟體開發與應用更自由 - 使用 Docker 技術
 
Flutter 踩雷心得
Flutter 踩雷心得Flutter 踩雷心得
Flutter 踩雷心得
 
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
 
開放原始碼 Ch3.1 mobile - oss - oss行動領域-1 (ver1.0)
開放原始碼 Ch3.1  mobile - oss - oss行動領域-1 (ver1.0) 開放原始碼 Ch3.1  mobile - oss - oss行動領域-1 (ver1.0)
開放原始碼 Ch3.1 mobile - oss - oss行動領域-1 (ver1.0)
 
一步一步开发Html5 mobile apps
一步一步开发Html5 mobile apps一步一步开发Html5 mobile apps
一步一步开发Html5 mobile apps
 
Html5
Html5Html5
Html5
 
DRBL-live-hadoop at TSLC
DRBL-live-hadoop at TSLCDRBL-live-hadoop at TSLC
DRBL-live-hadoop at TSLC
 
開放原始碼 Ch2.1 app - oss - oss ide (ver1.2)
開放原始碼 Ch2.1   app - oss - oss ide (ver1.2)開放原始碼 Ch2.1   app - oss - oss ide (ver1.2)
開放原始碼 Ch2.1 app - oss - oss ide (ver1.2)
 
Axure RP Prototyping Tool
Axure RP Prototyping ToolAxure RP Prototyping Tool
Axure RP Prototyping Tool
 
[MOPCON 2022] 以 Kotlin Multiplatform 制霸全平台
[MOPCON 2022] 以 Kotlin Multiplatform 制霸全平台[MOPCON 2022] 以 Kotlin Multiplatform 制霸全平台
[MOPCON 2022] 以 Kotlin Multiplatform 制霸全平台
 
Hyper: 让Pod以VM为边界
Hyper: 让Pod以VM为边界Hyper: 让Pod以VM为边界
Hyper: 让Pod以VM为边界
 
GDC Taipei Summit review 2012
GDC Taipei Summit review 2012GDC Taipei Summit review 2012
GDC Taipei Summit review 2012
 
給 iOS 工程師的 Flutter 開發
給 iOS 工程師的 Flutter 開發給 iOS 工程師的 Flutter 開發
給 iOS 工程師的 Flutter 開發
 
Dreaming Infrastructure
Dreaming InfrastructureDreaming Infrastructure
Dreaming Infrastructure
 
A brief introduction to Vagrant – 原來 VirtualBox 可以這樣玩
A brief introduction to Vagrant – 原來 VirtualBox 可以這樣玩A brief introduction to Vagrant – 原來 VirtualBox 可以這樣玩
A brief introduction to Vagrant – 原來 VirtualBox 可以這樣玩
 

Build desktop app_by_xulrunner