Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
How PhoneGap really works
Search
Ilya Pukhalski
February 12, 2013
Programming
5
1k
How PhoneGap really works
PhoneGap (PhoneGap API's, PhoneGap plugins, PhoneGap Build) from behind
Ilya Pukhalski
February 12, 2013
Tweet
Share
More Decks by Ilya Pukhalski
See All by Ilya Pukhalski
There's a bot for that
pukhalski
1
300
50 Shades of Flux
pukhalski
3
390
Why Mobile Web Still Sucks
pukhalski
3
530
Responsive Typography: Wrap-Up
pukhalski
8
420
Next Level SVG
pukhalski
1
1.7k
XFramework: the story so far
pukhalski
0
480
XFramework: build cross-platform responsive web apps easily
pukhalski
3
960
Mobile Cross-Platform Development
pukhalski
2
320
Rest in PS: рабочий процесс современного веб-дизайнера
pukhalski
12
1.5k
Other Decks in Programming
See All in Programming
DockerからECSへ 〜 AWSの海に出る前に知っておきたいこと 〜
ota1022
5
1.8k
Introduction to Git & GitHub
latte72
0
120
私の後悔をAWS DMSで解決した話
hiramax
4
130
モバイルアプリからWebへの横展開を加速した話_Claude_Code_実践術.pdf
kazuyasakamoto
0
260
技術的負債で信頼性が限界だったWordPress運用をShifterで完全復活させた話
rvirus0817
1
2.1k
オープンセミナー2025@広島LT技術ブログを続けるには
satoshi256kbyte
0
120
20250808_AIAgent勉強会_ClaudeCodeデータ分析の実運用〜競馬を題材に回収率100%の先を目指すメソッドとは〜
kkakeru
0
200
Understanding Ruby Grammar Through Conflicts
yui_knk
1
120
Honoアップデート 2025年夏
yusukebe
1
840
Claude Codeで実装以外の開発フロー、どこまで自動化できるか?失敗と成功
ndadayo
2
1.3k
なぜ今、Terraformの本を書いたのか? - 著者陣に聞く!『Terraformではじめる実践IaC』登壇資料
fufuhu
4
650
オープンセミナー2025@広島「君はどこで動かすか?」アンケート結果
satoshi256kbyte
0
200
Featured
See All Featured
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
7
820
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
890
Designing Experiences People Love
moore
142
24k
Rails Girls Zürich Keynote
gr2m
95
14k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.6k
Being A Developer After 40
akosma
90
590k
Speed Design
sergeychernyshev
32
1.1k
A better future with KSS
kneath
239
17k
Art, The Web, and Tiny UX
lynnandtonic
302
21k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
33
2.4k
Large-scale JavaScript Application Architecture
addyosmani
512
110k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
15
1.6k
Transcript
Ilya Pukhalski, EPAM SEC 2013 PHONEGAP How really works
@witchfinderx 2 Ilya Pukhalski, EPAM Mobile Competency Center
WHAT WILL WE DISCUSS? 3
— That mobile mobile world... — What is PhoneGap? -
A brief history of PhoneGap - How PhoneGap works - PhoneGap APIs - Plugins - Cons and limitations — PhoneGap Build — The future is closer than you think 4
THAT MOBILE MOBILE WORLD... 5
6 June, 2007
7 +
8 July 10, 2008
9 One of the main world problems today
Everything is WEB 10
11 What's in common?
12 All of them have a browser
PHONEGAP 13
PhoneGap is an open source framework that enables to build
cross-platform hybrid mobile applications using web technologies (HTML, CSS, JavaScript). 14
PhoneGap 2.3.0 15
HISTORY OF PHONEGAP 16
iPhoneDevCamp 2008 17 PhoneGap 1.0 2009 Migration to Apache Cordova
2012 IBM get involved into development late 2009 PhoneGap Build official launch late 2012
HOW PHONEGAP WORKS 18
19
20
21
22
None
24
25 PhoneGap Build Process
PHONEGAP API'S 26
27 — Accelerometer — Camera — Compass (excl. iPhone 3/3G,
BlackBerry OS 5+ and Symbian) — Contacts (excl. WebOS) — File (excl. WebOS, Symbian, Bada) — Geolocation — Media (excl. BlackBerry OS 5+, WebOS, Symbian, Bada) — Network — Notification — Storage (excl. Bada)
28
29 API call example `navigator' is a global namespace for
all API calls
HELLO WORLD 30
Including cordova.js
32 Adding listener on "deviceready"event
33 showAlert(); will display a native notification
34 Show notification as soon as device is ready
PLUGINS 35
36
37 HelloWorld.js
38 PhoneGap Bridge exec call
39 PhoneGap Bridge exec call Cordova.exec bridge CDV-HelloWorld.js
40 CLI for plugin boilerplate
41 CLI for plugin boilerplate
42 iOS native code #import <Cordova/CDVPlugin.h> @interface HelloWorld : CDVPlugin
@end #import "HelloWorld.h" @implementation HelloWorld @end HelloWorld.h HelloWorld.m Inheritance
43 Adding methods #import <Cordova/CDVPlugin.h> @interface HelloWorld : CDVPlugin -
(void)add:(CDVInvokedUrlCommand*)command; @end #import "HelloWorld.h" @implementation HelloWorld - (void)add:(CDVInvokedUrlCommand*)command { } @end HelloWorld.h HelloWorld.m Instance method Instance method
44 Retrieving arguments #import "HelloWorld.h" @implementation HelloWorld - (void)add:(CDVInvokedUrlCommand*)command {
double a = [[command.arguments objectAtIndex:0] doubleValue]; double b = [[command.arguments objectAtIndex:1] doubleValue]; double result = a + b; } @end HelloWorld.m Retrieve arguments; Addition.
45 Sending the result #import "HelloWorld.h" @implementation HelloWorld - (void)add:(CDVInvokedUrlCommand*)command
{ double a = [[command.arguments objectAtIndex:0] doubleValue]; double b = [[command.arguments objectAtIndex:1] doubleValue]; double result = a + b; CDVPluginResult* pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsDouble:result]; [self writeJavascript: [pluginResult toSuccessCallbackString:command.callbackId]]; } @end HelloWorld.m Send result back
46 Adding plugin mapping to Cordova.plist
47 Calling our plugin from JS
CONS & LIMITATIONS 48
— Fast changing inconsistent API — Lacks and inaccuracies in
documentation — Some device specific API's are still unavailable for some OS — Dealing with cross-platform web development issues 49
PHONEGAP BUILD 50
51 PhoneGap Build is a cloud based service built on
the top of PhoneGap framework.
— PhoneGap Build is a cloud service — PhoneGap Build
API can help in establishing CI — No need to have different environment OS and SDK's to build an application 52 PhoneGap Build Pros
THE FUTURE IS CLOSER THAN YOU THINK 53
Some API's are already accessible 54
55 Device Specific API's accessibility: Accelerometer
Device Specific API's accessibility: File API (incl. camera uploads)
Average support is ~70%
58 https://vimeo.com/55486684 Sencha Fastbook
QUESTIONS? 59
@witchfinderx 60
@witchfinderx 60