Phonegap
Martin de KeijzeriOSOnRailsConf2013 13-14 April, Alushta Ukraine
Native Javascript apps with
Sunday, 14 April 13
Introduction
2
Sunday, 14 April 13
About me
Martin de KeijzerDutch web developer
3
@Martin1982
PHPBenelux Board Member
Working for Ibuildings
http://www.martindekeijzer.nl
Sunday, 14 April 13
SubtitelWhat is PhoneGap?
4
Sunday, 14 April 13
What is PhoneGap
5
A way to wrap you HTML app as a native application.
Sunday, 14 April 13
What is PhoneGap
6
A way to bridge ‘Native’ functionality to a Javascript API
Sunday, 14 April 13
Mission
7
PhoneGap’s mission is for PhoneGap to cease to exist!
Sunday, 14 April 13
WTF?!?!?Cordova, PhoneGap
8
Sunday, 14 April 13
PhoneGap Pre-Adobe
9
by
Sunday, 14 April 13
PhoneGap acquisistion by Adobe
10
Acquired byDonated to
Sunday, 14 April 13
Acquisition by Adobe
11
“PhoneGap” “Callback”“Cordova”
Sunday, 14 April 13
PhoneGap now
12
Where changes get committed
Sunday, 14 April 13
PhoneGap now
13
PhoneGap releases, still identical to Apache Cordova
Sunday, 14 April 13
In conclusion
14
You’ll use PhoneGap!
Sunday, 14 April 13
Getting ready for lift-offInstalling PhoneGap
15
Sunday, 14 April 13
Getting PhoneGap
16
http://phonegap.com/download/
Sunday, 14 April 13
Lib is where the magic lives
17
“lib” contains all supported platforms.... and a
♥ ♥ ♥ ♥ CLI tool ♥ ♥ ♥ ♥
Sunday, 14 April 13
XCode Command Line Tools
18
Sunday, 14 April 13
Creating your first project
19
$ ./path/to/cordova-ios/bin/create
/path/to/my_new_cordova_project
com.example.cordova_project_name
CordovaProjectName
Sunday, 14 April 13
Creating your first project
20
XCode Project
Sunday, 14 April 13
The app
21
Sunday, 14 April 13
First Run
22
Sunday, 14 April 13
Ready for action
23
Always use the “www” folder & always assume yourapp is running from a filesystem instead of a web server!
Sunday, 14 April 13
Let’s take it easyPhoneGap build
24
Sunday, 14 April 13
Creating builds using XCode
25
The pain:Running updates and checking requirements over
and over again!
Sunday, 14 April 13
Creating builds using XCode
26
Sunday, 14 April 13
PhoneGap build to the rescue!
27
http://build.phonegap.com
Sunday, 14 April 13
PhoneGap build in a nutshell
28
Sunday, 14 April 13
Getting started
29
OR
Sunday, 14 April 13
Getting started
30
Sunday, 14 April 13
Getting started
31
OR
Repository that represents“www”
Zip-file that represents“www”
Sunday, 14 April 13
Getting started
32
Sunday, 14 April 13
The power of PhoneGap Build
33
Title
Code
Metadata Test
Sunday, 14 April 13
Build statusses
34
Grey: Still building, be patientBlue-ish: Build succeeded, click to downloadRed: Build error, action required
Sunday, 14 April 13
Build errors
35
Sunday, 14 April 13
Working in teams
36
Sunday, 14 April 13
Building like a pro
37
config.xmlW3C Widget Specification
https://gist.github.com/Martin1982/5063962
Sunday, 14 April 13
When the web just doesn’t sufficePlug-ins
38
Sunday, 14 April 13
Accelerometer
39
Get device movement in an X, Y, Z space.
Sunday, 14 April 13
Camera & Capture & Media
40
Use the device’s library, camera and microphone to work with local audio, video
and images.
<input type="file" accept="image/*" capture="camera">
Don’t forget iOS 6 supports:
Sunday, 14 April 13
Compass
41
API to detect which way a device user is pointing
Sunday, 14 April 13
Connection
42
See if a user is connected and inspect the type of connection:
Wifi, xG, Ethernet
Caution navigator.isOnline is your close friend
Sunday, 14 April 13
Contacts
43
Access the user’s contact list
Sunday, 14 April 13
Device
44
•Name•Cordova version•Platform•UUID•Version•Model
Sunday, 14 April 13
Events
45
Handles application state(deviceready, paused etc)
Sunday, 14 April 13
File
46
Filesystem bridging, based on the W3C File API
Sunday, 14 April 13
Geolocation
47
Caution: Already supported by browsers!
API to get the latitudes and longitudes of the device.
Sunday, 14 April 13
Globalization
48
Currency, language, date time
Sunday, 14 April 13
InAppBrowser
49
The browser opened by window.open()
Sunday, 14 April 13
Notification
50
•Alert•Confirmation•Beep•Vibrate
Sunday, 14 April 13
Splashscreen
51
No matter how beautiful your splash screen is, eventually you’ll need to show and hide it
Sunday, 14 April 13
Storage
52
SQL storage based on the W3C WebSQL specification.
Caution; WebSQL is no longer maintained IndexedDB is the new superhero!
Sunday, 14 April 13
Why reinvent the wheelUser plugins
53
Sunday, 14 April 13
Pick what you want
54https://github.com/phonegap/phonegap-plugins
Sunday, 14 April 13
QUESTIONS
55
Sunday, 14 April 13
Top Related