Download - Bouw cross-platform mobiele apps met PhoneGap

Transcript
Page 1: Bouw cross-platform mobiele apps met PhoneGap

PhoneGapBouw cross-platform mobiele apps met HTML5, CSS3 en JavaScript

Dion Olsthoorn

Page 2: Bouw cross-platform mobiele apps met PhoneGap

Wat is PhoneGap?• …open source platform• …bouw cross-platform mobiele

apps• …met HTML, CSS en JavaScript• …werkt met Visual Studio, Xcode,

Eclipse

Page 3: Bouw cross-platform mobiele apps met PhoneGap

Wat doet PhoneGap?1. Het start jouw HTML+CSS+JS als native

app. Voor iOS, Android, BB, WP, Windows 8

2. Het biedt toegang tot native functies d.m.v. een cross-platform JavaScript API

Page 4: Bouw cross-platform mobiele apps met PhoneGap
Page 5: Bouw cross-platform mobiele apps met PhoneGap

?

Page 6: Bouw cross-platform mobiele apps met PhoneGap

Dit is je user interface:een web browser instantie.

100% hoogte100% breedte

JavaScript

Native

Page 7: Bouw cross-platform mobiele apps met PhoneGap

… Whatever.js

Page 8: Bouw cross-platform mobiele apps met PhoneGap

Web browser op je mobiel

Native mobiele functies

PhoneGap

Page 9: Bouw cross-platform mobiele apps met PhoneGap

PhoneGap of Cordova?• PhoneGap is een distributie van Cordova• Timeline:– 2008: Nitobi maakt PhoneGap (open source)–mid 2011: PhoneGap 1.0– eind 2011: Adobe koopt Nitobi– PhoneGap verhuist naar Apache SF

en krijgt nieuwe naam:

Page 10: Bouw cross-platform mobiele apps met PhoneGap
Page 11: Bouw cross-platform mobiele apps met PhoneGap

PhoneGap JavaScript API• Sensors– GPS, accelerometer, Kompas, Camera, Netwerk

• Data– Contacts, Media, Filesysteem, Notificaties,

Storage

• Events– deviceready, online, offline, volumedown, etc.

Page 12: Bouw cross-platform mobiele apps met PhoneGap
Page 13: Bouw cross-platform mobiele apps met PhoneGap

Native App - .xap .apk. ipa

Cordova engine (+ toegang native functies)

Mobiele web-browser

cordova.js?

PhoneGap onder de motorkap

Page 14: Bouw cross-platform mobiele apps met PhoneGap

PhoneGapis een hack!

• Windows Phone– JavaScript:

window.external.notify– Browser object:

ScriptNotify

• iOS– JavaScript:

“gap://class/method/args”– UIWebView vangt dit af

• Android– Http callback server

Page 15: Bouw cross-platform mobiele apps met PhoneGap

PhoneGap Plugins• BarcodeScanner• Text-to-Speech• System Notifications• Live Tiles (Windows Phone only)• …en nog veel meer!

Page 16: Bouw cross-platform mobiele apps met PhoneGap

Bouw je eigen PhoneGap PluginAanroep vanuit

JavaScriptWindows Phone .NET

Page 17: Bouw cross-platform mobiele apps met PhoneGap

Is PhoneGap de “Silver Bullet”?

Page 18: Bouw cross-platform mobiele apps met PhoneGap

Dezelfde HTML op alle platformen

Page 19: Bouw cross-platform mobiele apps met PhoneGap
Page 20: Bouw cross-platform mobiele apps met PhoneGap

Slechte reputatie PhoneGap?1. UI is traag; niet responsive2. Eenheidsworst; geen native UI3. Niet de “proven way” om apps te

bouwen4. Nauwelijks aansprekende apps

Page 21: Bouw cross-platform mobiele apps met PhoneGap

Mobiele browser apps niet snappy?

• Click event in mobiele browser..– …heeft 300ms vertraging– …is nodig voor bijv. dubbel-klik zoom

• Windows Phone– CSS: “-ms-touch-action: none;”

• iOS en Android– fastclick.js (“touchup” event i.p.v. “click”)

Page 22: Bouw cross-platform mobiele apps met PhoneGap

Native UI’s “rock”

Page 23: Bouw cross-platform mobiele apps met PhoneGap

NFC? Augmented Reality? Go Native!

Page 24: Bouw cross-platform mobiele apps met PhoneGap

App

PhoneGap

Page 25: Bouw cross-platform mobiele apps met PhoneGap

Debugging• Weinre– debug.phonegap.com

• Ripple– emulate.phonegap.com

• console.log(‘…’);

Page 26: Bouw cross-platform mobiele apps met PhoneGap

PhoneGap Build

Page 27: Bouw cross-platform mobiele apps met PhoneGap

Wanneer _wel_ PhoneGap?• Eenvoudige apps.

“Native” gevoel niet het belangrijkste.

• Gebruik je HTML en JavaScript kennis

• Deploy naar meerdere platformen• App store en offline data

Page 28: Bouw cross-platform mobiele apps met PhoneGap

Wanneer _niet_ PhoneGap?• Native look & feel nodig (bijv.

panorama)• Complexe UI en API’s• Maximale snelheid nodig (games!)• Als je target naar één platform

Page 29: Bouw cross-platform mobiele apps met PhoneGap

Start links• http://phonegap.com/developer• http://jquerymobile.com – NuGet JQueryMobile for Windows

Phone

Page 30: Bouw cross-platform mobiele apps met PhoneGap

http://www.macaw.nl/werkenbijmacaw/vacatures