Hybridapp
&Phonegap
陳柏伸
Outline
• Native app
• Hybrid app
• 開發環境設置
• 實作Build、deploy專案
• 結論
Native app
Objective-C / Swift
Java
C#
…
…
.
Hybrid app - Phonegap
Cordova and Phonegap?
• 如果你去看Phonegap官方網站,也許你會
有點混淆。
• http://phonegap.com/
• 到底是在開發Cordova還是Phonegap…
官方表示:
Phonegap iOS debugger
直接對UI除錯、直接對JS除錯,還能下中斷點。
•開發環境設置
• Phonegap官方- Overview
• Phonegap官方 - Command-Line Interface
• Phonegap官方 - Android Platform Guide
• develop-machine: win7
• Target: android
Install the Android SDK
下載之後,Unpack the ZIP file
(named adt-bundle-<os_platform>.zip)
至任意目錄。
開啟adt-bundle裡的eclipse,去
Android SDK Manager 下載你需要的
SDK和tools;安裝後可用模擬器或
實機測試按看是否成功。
設置環境變數
• 為了讓 Cordova command-line tools幫你做編
譯專案、deploy到實體手機、在模擬器測試,
你必須要設置一些環境變數。
;{{任一目錄}}adt-bundlesdkplatform-tools;
;{{任一目錄}}adt-bundlesdktools;
設置環境變數 (cont.)
• Ant – Java自動化編譯工具,在phonegap
workflow中它讓CLI(Command Line Interface)
可以成功運作。
• http://ant.apache.org/bindownload.cgi
• 下載 .zip archive,在任一目錄unpack之後,
去設定環境變數。
• 在cmd.exe(Terminal)中輸入 ant –v測試是否
安裝成功。
;{{任一目錄}}apache-ant-1.9.4bin;
•Installing the Cordova
CLI
Install node.js and npm
• 什麼是Node.js?
• 什麼是 npm ?
• http://nodejs.org/download/
• 安裝好node.js時,npm會一併被安裝。
Install git
• Git – 版本控制系統,即便你在開發
phonegap時不會用到git,但使用Cordova CLI
時它需要,所以還是要裝。
• http://git-scm.com/
Install Cordova
C:>npm install -g cordova
•Create the App
•& build or run ur app
•Using Command line
為什麼用CLI
• CLI除了打指令方便快速之外,
• 它還支援api update
• 而且它是官方推薦
• 方便跨平台管理(分類出共用的code跟專屬
的code)
Create cordova專案
$ cordova create first com.roy.test firstPhonegap
$ cordova create
first: folder name
com.roy.test: package
firstPhonegap: app name
Add platform
加入跨平台,可以add各種OS。
$ cordova platform add “platform name”
Check current platform
$ cordova platform ls
可以顯示你的專案目前加入了那些平台,
下面則是我這台機器可以加入的平台,
因為不是mac所以沒有ios。
刪除某一平台
• 你的專案決定放棄某一平台時,你可以
$ cordova platform remove blackberry10
$ cordova platform rm amazon-fireos
$ cordova platform rm android
整合eclipse
整合eclipse (cont.)
整合eclipse (cont.)
即便你不懂java、android,
但你只需要專注在
www這個folder就可以開始
工作了,在phonegap你需
要的是js,html,css.
Build the project
$ cordova build
$ cordova build android
Test the App on an Emulator
$ cordova emulate android
跑實機也是可以的
$ cordova run android
•實作
熟悉的html
“cordova run android”
Conclusion
• 也就是說寫phonegap app基本上就是在寫
web。
• HTML5對於拍照、聲音、影片、衛星定位都
有支援;真的必須要用到native api時也可
以投過phonegap api去間接呼叫。
• Demo的作品可以直接build到ios上,這也就
是俗稱的跨平台app開發。
• 還是有缺點的。
• 謝謝聆聽
• 安裝有問題歡迎來信

Phonegap入門

Editor's Notes

  • #4 以大公司來說,針對每個平台都編制一組團隊寫專屬的CODE,這沒有問題,但對於中小型公司,甚至是新創公司,或是散戶來說,不管是時間或金錢都很難Handle好這麼多平台,那該怎麼辦呢?
  • #5 隨著HTML5開始支援Canvas(用來合成圖片),也有video跟audio的支援,也有地理資訊系統、browser的規格也朝向統一的願景邁進,於是Hybrid app的開發型態應運而生,他也解決了app要支援多平台的窘境。 來看一下它的運作原理,最右邊用紅線圈起來的部分,就是典型的web project,js libraries指的則是像jquery, sencha touch,或是angular等等一堆的,IDE的部分就隨意,這個組合就是非常一般寫網頁的組合。 但網頁好像不能存取到機器的電量,通訊錄,或是去控制實體案件等等,於是透過phonegap plugin去跟手機底層做溝通,phonegap plugin會用js寫成api的形式讓開法者使用。 最後再透過phonegap一些機制轉換成各個平台可以執行的app。 結論就是,用phonegap的話,只需要用html css js就能做出可以上架賣錢的app。 但是有一好沒兩好,她有缺點,等等會提到。
  • #6 Phonegap原本是某一家公司的產品,Adobe再買下這家公司之後,將Phonegap捐給Apacha software Foundation(ASF)作為open source,並命名為Apache Cordova; 所以現在的狀況是,phonegap已經變成了 Apache Cordova所發行的其中一個版本了,可以想像成Phonegap的核心是Cordova,Phonegap從Cordova擴增了一些功能。 所以再等一下講到安裝環境的時候,會看到一堆cordova的指令…就不需要太困惑了。
  • #13 Node.js 是由V8引擎所延伸出來的javascript執行環境,V8是被用於Google chrome上面,它是在程式執行之前,將javascript編譯成machine code,藉此提高效能。 Npm(node package manager): npm很類似於linux中 apt-get這個套件管理工具,它可以做到安裝、刪除、更新等動作。Phonegap則是將專案託管於npm上,所以開發者可以透過npm安裝它。
  • #17 單然安裝phonegap有很多方法,像是直接去抓她的sourcs code來用,但用cli她會自動幫你建置好專案的階層和價購。
  • #18 Hooks http://devgirl.org/2013/11/12/three-hooks-your-cordovaphonegap-project-needs/ http://rocsheh.azurewebsites.net/
  • #31 可以上架!
  • #32 缺點 記憶體: canvas , 照相 會閃退 跨瀏覽器有問題 開發時間短,但debug時間長,