SlideShare a Scribd company logo
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開發。
• 還是有缺點的。
• 謝謝聆聽
• 安裝有問題歡迎來信

More Related Content

What's hot

App inventor 1
App inventor 1App inventor 1
App inventor 1
Roy Wang
 
Android開發app
Android開發appAndroid開發app
Android開發app
騰昱 魏
 
Github Actions
Github ActionsGithub Actions
Github Actions
Weizhong Yang
 
CocoaPods private repo
CocoaPods private repoCocoaPods private repo
CocoaPods private repo
Weizhong Yang
 
2021 MOPCON - 行動化解決方案的技術選型, 交給 Line Bot 來搞定
2021 MOPCON - 行動化解決方案的技術選型, 交給 Line Bot 來搞定2021 MOPCON - 行動化解決方案的技術選型, 交給 Line Bot 來搞定
2021 MOPCON - 行動化解決方案的技術選型, 交給 Line Bot 來搞定
Kyle Shen
 
Android 程式設計(1)
Android 程式設計(1)Android 程式設計(1)
Android 程式設計(1)
Roy Wang
 
20150717 從網頁開發到android app行動應用開發 發佈版
20150717 從網頁開發到android app行動應用開發   發佈版20150717 從網頁開發到android app行動應用開發   發佈版
20150717 從網頁開發到android app行動應用開發 發佈版
Yung-Ting Chen
 
[VideOhya] Titanium開發經驗分享_1020
[VideOhya] Titanium開發經驗分享_1020[VideOhya] Titanium開發經驗分享_1020
[VideOhya] Titanium開發經驗分享_1020
Taiwan Titanium User Group
 
Phalcon2014 Startup
Phalcon2014 StartupPhalcon2014 Startup
Phalcon2014 Startup
Steve Luo
 
從組裝軟體中談談軟體發展管理
從組裝軟體中談談軟體發展管理從組裝軟體中談談軟體發展管理
從組裝軟體中談談軟體發展管理
Wen Liao
 
Sencha touch 2 訓練課程 3 phonegap整合
Sencha touch 2 訓練課程 3 phonegap整合Sencha touch 2 訓練課程 3 phonegap整合
Sencha touch 2 訓練課程 3 phonegap整合
My own sweet home!
 
API Token 入門
API Token 入門API Token 入門
API Token 入門
Andrew Wu
 
HTML5 生态系统和应用架构模型
HTML5 生态系统和应用架构模型HTML5 生态系统和应用架构模型
HTML5 生态系统和应用架构模型Tom Fan
 
Unity to Windows App 開發 angus
Unity to Windows App 開發  angusUnity to Windows App 開發  angus
Unity to Windows App 開發 angus
Meng-Ru (Raymond) Tsai
 
2019/7/27 先別開 Branch 了,你聽過 Feature Toggle 嗎?
2019/7/27 先別開 Branch 了,你聽過 Feature Toggle 嗎?2019/7/27 先別開 Branch 了,你聽過 Feature Toggle 嗎?
2019/7/27 先別開 Branch 了,你聽過 Feature Toggle 嗎?
Miles Chou
 
實踐 Clean Architecture(實作高可用性的軟件架構)
實踐 Clean Architecture(實作高可用性的軟件架構)實踐 Clean Architecture(實作高可用性的軟件架構)
實踐 Clean Architecture(實作高可用性的軟件架構)
Gelis Wu
 
Appium手机自动化测试 testerhome_bqcon版本
Appium手机自动化测试 testerhome_bqcon版本Appium手机自动化测试 testerhome_bqcon版本
Appium手机自动化测试 testerhome_bqcon版本
延胜 黄
 
第十一堂 學習編譯與上架
第十一堂 學習編譯與上架第十一堂 學習編譯與上架
第十一堂 學習編譯與上架
力中 柯
 

What's hot (20)

App inventor 1
App inventor 1App inventor 1
App inventor 1
 
Android開發app
Android開發appAndroid開發app
Android開發app
 
Github Actions
Github ActionsGithub Actions
Github Actions
 
CocoaPods private repo
CocoaPods private repoCocoaPods private repo
CocoaPods private repo
 
2021 MOPCON - 行動化解決方案的技術選型, 交給 Line Bot 來搞定
2021 MOPCON - 行動化解決方案的技術選型, 交給 Line Bot 來搞定2021 MOPCON - 行動化解決方案的技術選型, 交給 Line Bot 來搞定
2021 MOPCON - 行動化解決方案的技術選型, 交給 Line Bot 來搞定
 
Android 程式設計(1)
Android 程式設計(1)Android 程式設計(1)
Android 程式設計(1)
 
20150717 從網頁開發到android app行動應用開發 發佈版
20150717 從網頁開發到android app行動應用開發   發佈版20150717 從網頁開發到android app行動應用開發   發佈版
20150717 從網頁開發到android app行動應用開發 發佈版
 
[VideOhya] Titanium開發經驗分享_1020
[VideOhya] Titanium開發經驗分享_1020[VideOhya] Titanium開發經驗分享_1020
[VideOhya] Titanium開發經驗分享_1020
 
Phalcon2014 Startup
Phalcon2014 StartupPhalcon2014 Startup
Phalcon2014 Startup
 
AppleDoc 使用教學
AppleDoc 使用教學AppleDoc 使用教學
AppleDoc 使用教學
 
從組裝軟體中談談軟體發展管理
從組裝軟體中談談軟體發展管理從組裝軟體中談談軟體發展管理
從組裝軟體中談談軟體發展管理
 
Sencha touch 2 訓練課程 3 phonegap整合
Sencha touch 2 訓練課程 3 phonegap整合Sencha touch 2 訓練課程 3 phonegap整合
Sencha touch 2 訓練課程 3 phonegap整合
 
API Token 入門
API Token 入門API Token 入門
API Token 入門
 
HTML5 生态系统和应用架构模型
HTML5 生态系统和应用架构模型HTML5 生态系统和应用架构模型
HTML5 生态系统和应用架构模型
 
Android工作坊
Android工作坊Android工作坊
Android工作坊
 
Unity to Windows App 開發 angus
Unity to Windows App 開發  angusUnity to Windows App 開發  angus
Unity to Windows App 開發 angus
 
2019/7/27 先別開 Branch 了,你聽過 Feature Toggle 嗎?
2019/7/27 先別開 Branch 了,你聽過 Feature Toggle 嗎?2019/7/27 先別開 Branch 了,你聽過 Feature Toggle 嗎?
2019/7/27 先別開 Branch 了,你聽過 Feature Toggle 嗎?
 
實踐 Clean Architecture(實作高可用性的軟件架構)
實踐 Clean Architecture(實作高可用性的軟件架構)實踐 Clean Architecture(實作高可用性的軟件架構)
實踐 Clean Architecture(實作高可用性的軟件架構)
 
Appium手机自动化测试 testerhome_bqcon版本
Appium手机自动化测试 testerhome_bqcon版本Appium手机自动化测试 testerhome_bqcon版本
Appium手机自动化测试 testerhome_bqcon版本
 
第十一堂 學習編譯與上架
第十一堂 學習編譯與上架第十一堂 學習編譯與上架
第十一堂 學習編譯與上架
 

Similar to Phonegap入門

Android NFC Application Development Environment Setup
Android NFC Application Development Environment SetupAndroid NFC Application Development Environment Setup
Android NFC Application Development Environment Setup
Chun-Kai Wang
 
開放原始碼 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!
 
炎炎夏日學 Android 課程 - Part 0: 環境搭建
炎炎夏日學 Android 課程 - Part 0: 環境搭建炎炎夏日學 Android 課程 - Part 0: 環境搭建
炎炎夏日學 Android 課程 - Part 0: 環境搭建
Johnny Sung
 
行動商務 - PhoneGapBuild and Upto Market
行動商務 - PhoneGapBuild and Upto Market行動商務 - PhoneGapBuild and Upto Market
行動商務 - PhoneGapBuild and Upto MarketMy own sweet home!
 
PhoneGap 通信原理和插件系统
PhoneGap 通信原理和插件系统PhoneGap 通信原理和插件系统
PhoneGap 通信原理和插件系统Tom Fan
 
GDG Taichung - Flutter and Firebase.pdf
GDG Taichung - Flutter and Firebase.pdfGDG Taichung - Flutter and Firebase.pdf
GDG Taichung - Flutter and Firebase.pdf
Duran Hsieh
 
Android JNI
Android JNIAndroid JNI
Android JNI
艾鍗科技
 
20141212 html5 及微軟跨平台佈局 long
20141212 html5 及微軟跨平台佈局   long20141212 html5 及微軟跨平台佈局   long
20141212 html5 及微軟跨平台佈局 long
Meng-Ru (Raymond) Tsai
 
Appcan移动应用开发平台介绍120409
Appcan移动应用开发平台介绍120409Appcan移动应用开发平台介绍120409
Appcan移动应用开发平台介绍120409zhengyiwuxian
 
行動商務實務 - PhoneGap Basic
行動商務實務 - PhoneGap Basic 行動商務實務 - PhoneGap Basic
行動商務實務 - PhoneGap Basic My own sweet home!
 
Android GDB Debugging (Chinese)
Android GDB Debugging (Chinese)Android GDB Debugging (Chinese)
Android GDB Debugging (Chinese)
William Lee
 
编写跨平台的手机软件
编写跨平台的手机软件编写跨平台的手机软件
编写跨平台的手机软件
heyfluke
 
開放原始碼 Ch1.3 intro - oss - google codes (ver 2.0)
開放原始碼 Ch1.3   intro - oss - google codes (ver 2.0)開放原始碼 Ch1.3   intro - oss - google codes (ver 2.0)
開放原始碼 Ch1.3 intro - oss - google codes (ver 2.0)My own sweet home!
 
Android gradle 从入门到gg 1
Android gradle 从入门到gg 1Android gradle 从入门到gg 1
Android gradle 从入门到gg 1
Jun Liu
 
基于Android ndk的软件开发简介 放映
基于Android ndk的软件开发简介 放映基于Android ndk的软件开发简介 放映
基于Android ndk的软件开发简介 放映
heyfluke
 
基于Android ndk的软件开发简介 放映
基于Android ndk的软件开发简介 放映基于Android ndk的软件开发简介 放映
基于Android ndk的软件开发简介 放映
heyfluke
 
Google app engine安裝教學
Google app engine安裝教學Google app engine安裝教學
Google app engine安裝教學
勝億 曾
 
Flutter實作概述 | GDSC NYCU
Flutter實作概述 | GDSC NYCUFlutter實作概述 | GDSC NYCU
Flutter實作概述 | GDSC NYCU
秀吉(Hsiu-Chi) 蔡(Tsai)
 
和Android源代码一起工作 | 海豚浏览器 胡继堂
和Android源代码一起工作 | 海豚浏览器 胡继堂和Android源代码一起工作 | 海豚浏览器 胡继堂
和Android源代码一起工作 | 海豚浏览器 胡继堂
imShining @DevCamp
 

Similar to Phonegap入門 (20)

Android NFC Application Development Environment Setup
Android NFC Application Development Environment SetupAndroid NFC Application Development Environment Setup
Android NFC Application Development Environment Setup
 
開放原始碼 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)
 
炎炎夏日學 Android 課程 - Part 0: 環境搭建
炎炎夏日學 Android 課程 - Part 0: 環境搭建炎炎夏日學 Android 課程 - Part 0: 環境搭建
炎炎夏日學 Android 課程 - Part 0: 環境搭建
 
行動商務 - PhoneGapBuild and Upto Market
行動商務 - PhoneGapBuild and Upto Market行動商務 - PhoneGapBuild and Upto Market
行動商務 - PhoneGapBuild and Upto Market
 
PhoneGap 通信原理和插件系统
PhoneGap 通信原理和插件系统PhoneGap 通信原理和插件系统
PhoneGap 通信原理和插件系统
 
GDG Taichung - Flutter and Firebase.pdf
GDG Taichung - Flutter and Firebase.pdfGDG Taichung - Flutter and Firebase.pdf
GDG Taichung - Flutter and Firebase.pdf
 
Android JNI
Android JNIAndroid JNI
Android JNI
 
20141212 html5 及微軟跨平台佈局 long
20141212 html5 及微軟跨平台佈局   long20141212 html5 及微軟跨平台佈局   long
20141212 html5 及微軟跨平台佈局 long
 
行動技術開發概論
行動技術開發概論行動技術開發概論
行動技術開發概論
 
Appcan移动应用开发平台介绍120409
Appcan移动应用开发平台介绍120409Appcan移动应用开发平台介绍120409
Appcan移动应用开发平台介绍120409
 
行動商務實務 - PhoneGap Basic
行動商務實務 - PhoneGap Basic 行動商務實務 - PhoneGap Basic
行動商務實務 - PhoneGap Basic
 
Android GDB Debugging (Chinese)
Android GDB Debugging (Chinese)Android GDB Debugging (Chinese)
Android GDB Debugging (Chinese)
 
编写跨平台的手机软件
编写跨平台的手机软件编写跨平台的手机软件
编写跨平台的手机软件
 
開放原始碼 Ch1.3 intro - oss - google codes (ver 2.0)
開放原始碼 Ch1.3   intro - oss - google codes (ver 2.0)開放原始碼 Ch1.3   intro - oss - google codes (ver 2.0)
開放原始碼 Ch1.3 intro - oss - google codes (ver 2.0)
 
Android gradle 从入门到gg 1
Android gradle 从入门到gg 1Android gradle 从入门到gg 1
Android gradle 从入门到gg 1
 
基于Android ndk的软件开发简介 放映
基于Android ndk的软件开发简介 放映基于Android ndk的软件开发简介 放映
基于Android ndk的软件开发简介 放映
 
基于Android ndk的软件开发简介 放映
基于Android ndk的软件开发简介 放映基于Android ndk的软件开发简介 放映
基于Android ndk的软件开发简介 放映
 
Google app engine安裝教學
Google app engine安裝教學Google app engine安裝教學
Google app engine安裝教學
 
Flutter實作概述 | GDSC NYCU
Flutter實作概述 | GDSC NYCUFlutter實作概述 | GDSC NYCU
Flutter實作概述 | GDSC NYCU
 
和Android源代码一起工作 | 海豚浏览器 胡继堂
和Android源代码一起工作 | 海豚浏览器 胡继堂和Android源代码一起工作 | 海豚浏览器 胡继堂
和Android源代码一起工作 | 海豚浏览器 胡继堂
 

More from Roy Chen

The Power of Variable Names
The Power of Variable NamesThe Power of Variable Names
The Power of Variable Names
Roy Chen
 
培養深度工作力
培養深度工作力培養深度工作力
培養深度工作力
Roy Chen
 
Svm and libsvm
Svm  and libsvmSvm  and libsvm
Svm and libsvm
Roy Chen
 
WiFi direct
WiFi directWiFi direct
WiFi direct
Roy Chen
 
Nfc tutorial
Nfc tutorialNfc tutorial
Nfc tutorial
Roy Chen
 
Gwt rpc
Gwt rpcGwt rpc
Gwt rpc
Roy Chen
 
Cloud service and gae for java(gae:j)
Cloud service and gae for java(gae:j)Cloud service and gae for java(gae:j)
Cloud service and gae for java(gae:j)
Roy Chen
 
Processing for fun
Processing for funProcessing for fun
Processing for fun
Roy Chen
 
聽障朋友科技應用
聽障朋友科技應用聽障朋友科技應用
聽障朋友科技應用Roy Chen
 
Phonegap tricky
Phonegap trickyPhonegap tricky
Phonegap trickyRoy Chen
 

More from Roy Chen (11)

The Power of Variable Names
The Power of Variable NamesThe Power of Variable Names
The Power of Variable Names
 
培養深度工作力
培養深度工作力培養深度工作力
培養深度工作力
 
Svm and libsvm
Svm  and libsvmSvm  and libsvm
Svm and libsvm
 
WiFi direct
WiFi directWiFi direct
WiFi direct
 
Nfc tutorial
Nfc tutorialNfc tutorial
Nfc tutorial
 
Gwt rpc
Gwt rpcGwt rpc
Gwt rpc
 
Cloud service and gae for java(gae:j)
Cloud service and gae for java(gae:j)Cloud service and gae for java(gae:j)
Cloud service and gae for java(gae:j)
 
Processing for fun
Processing for funProcessing for fun
Processing for fun
 
個資法
個資法個資法
個資法
 
聽障朋友科技應用
聽障朋友科技應用聽障朋友科技應用
聽障朋友科技應用
 
Phonegap tricky
Phonegap trickyPhonegap tricky
Phonegap tricky
 

Phonegap入門

Editor's Notes

  1. 以大公司來說,針對每個平台都編制一組團隊寫專屬的CODE,這沒有問題,但對於中小型公司,甚至是新創公司,或是散戶來說,不管是時間或金錢都很難Handle好這麼多平台,那該怎麼辦呢?
  2. 隨著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。 但是有一好沒兩好,她有缺點,等等會提到。
  3. Phonegap原本是某一家公司的產品,Adobe再買下這家公司之後,將Phonegap捐給Apacha software Foundation(ASF)作為open source,並命名為Apache Cordova; 所以現在的狀況是,phonegap已經變成了 Apache Cordova所發行的其中一個版本了,可以想像成Phonegap的核心是Cordova,Phonegap從Cordova擴增了一些功能。 所以再等一下講到安裝環境的時候,會看到一堆cordova的指令…就不需要太困惑了。
  4. Node.js 是由V8引擎所延伸出來的javascript執行環境,V8是被用於Google chrome上面,它是在程式執行之前,將javascript編譯成machine code,藉此提高效能。 Npm(node package manager): npm很類似於linux中 apt-get這個套件管理工具,它可以做到安裝、刪除、更新等動作。Phonegap則是將專案託管於npm上,所以開發者可以透過npm安裝它。
  5. 單然安裝phonegap有很多方法,像是直接去抓她的sourcs code來用,但用cli她會自動幫你建置好專案的階層和價購。
  6. Hooks http://devgirl.org/2013/11/12/three-hooks-your-cordovaphonegap-project-needs/ http://rocsheh.azurewebsites.net/
  7. 可以上架!
  8. 缺點 記憶體: canvas , 照相 會閃退 跨瀏覽器有問題 開發時間短,但debug時間長,