BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... ·...

97
1

Transcript of BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... ·...

Page 1: BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... · SQLite File System BROWSER ENGINE What Can a WebWorks App Do? ... • Adobe AIR SDK

1

Page 2: BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... · SQLite File System BROWSER ENGINE What Can a WebWorks App Do? ... • Adobe AIR SDK

2

BlackBerry WebWorks Application Platform Overview

Page 3: BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... · SQLite File System BROWSER ENGINE What Can a WebWorks App Do? ... • Adobe AIR SDK

BlackBerry WebWorks is an application platform that enables developers to create standalone applications using modern and standardized web technologies.

WebWorks applications can be fully-featured “Super Apps” through their ability to integrate with native BlackBerry and PlayBook features.

What is BlackBerry WebWorks?

Page 4: BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... · SQLite File System BROWSER ENGINE What Can a WebWorks App Do? ... • Adobe AIR SDK

Applicationpower

Simplicity of developmentand maintenance

• Hitting the sweet spot means• The richness of device access and reuse of assets

• The simplicity of the browser programming model

BlackBerry Programming Models

Page 5: BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... · SQLite File System BROWSER ENGINE What Can a WebWorks App Do? ... • Adobe AIR SDK

5

Native Application BlackBerry Browser

Native-based UI Browser-based UI

Functionality provided by BlackBerry OS Functionality provided by Browser Engine

WebWorks Platform

• Where in the spectrum do developers gravitate to?• Do they create a Native application (Highly functional)?

• Do they create Web content for the Browser (Flexible UI and low cost)?

• Or a mix of the two?

Developer Spectrum

Page 6: BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... · SQLite File System BROWSER ENGINE What Can a WebWorks App Do? ... • Adobe AIR SDK

• It’s a diverse world out there for developers!

• Strong Web standards offer support across multiple platforms

• Reuse Web assets and developer skills to create BlackBerry apps

• Each platform seeing growth in access to native functionality

• Access the richness and differentiators of each platform

BlackBerry Smartphone BlackBerry PlayBook

Web = Platform Plurality

Page 7: BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... · SQLite File System BROWSER ENGINE What Can a WebWorks App Do? ... • Adobe AIR SDK

Superheroes Alliance

(Uken Games)Campus Party

(Contento Media)

Guitar Chords

(My App Catalog)

Hollywood Bowl

(LA Philharmonic)

Sea-Web

(Nitobi)

Loca FM

(Vanatur World Mobile)

Real World Examples

Page 8: BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... · SQLite File System BROWSER ENGINE What Can a WebWorks App Do? ... • Adobe AIR SDK

8

Features and Capabilities

Page 9: BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... · SQLite File System BROWSER ENGINE What Can a WebWorks App Do? ... • Adobe AIR SDK

Services &Content

GPS

WEBSERVICES

PUSH

MENUS

APPLICATIONINTEGRATION

STORAGE

SYSTEM EVENTS

SQLite

FileSystem

BROWSER ENGINE

What Can a WebWorks App Do?

Page 10: BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... · SQLite File System BROWSER ENGINE What Can a WebWorks App Do? ... • Adobe AIR SDK

• WebKit rendering engine added to BlackBerry® 6 and BlackBerry Tablet OS

• BlackBerry WebWorks applications benefit from strengths of WebKit

• Combine the power of HTML5 and CSS3 with JavaScript APIs

http://entanglement.gopherwoodstudios.com/light

Web Platform Powered by WebKit

Page 11: BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... · SQLite File System BROWSER ENGINE What Can a WebWorks App Do? ... • Adobe AIR SDK

• Improved high fidelity WebKit browser engine• Better support of HTML5 and CSS3 standards

• Package existing Flash content into a PlayBook application• Full support of Adobe Flash 10.1

• Faster hardware• 1Ghz dual core processor

• 1Gb Ram

PlayBook Web Platform

Page 12: BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... · SQLite File System BROWSER ENGINE What Can a WebWorks App Do? ... • Adobe AIR SDK

12

Architecture

Page 13: BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... · SQLite File System BROWSER ENGINE What Can a WebWorks App Do? ... • Adobe AIR SDK

Architecture: How Does it Work?

WebKit Engine

WebWorks Platform

Security

PIM

Storage

Push

Media

Hardware

BBM

Monetization

Compression

Background

Multi-Tasking

BlackBerry Platform

Your app

• User interface

– Powered by Web

– HTML and CSS

• Application logic

– JavaScript®

– WebWorks APIs

– Access to Platform OS

Page 14: BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... · SQLite File System BROWSER ENGINE What Can a WebWorks App Do? ... • Adobe AIR SDK

• BlackBerry WebWorks applications are supported on

– BlackBerry PlayBook

– BlackBerry 6

– BlackBerry Device Software version 5.0

http://us.blackberry.com/developers/choosingtargetos.jsp

Market for WebWorks Applications

Page 15: BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... · SQLite File System BROWSER ENGINE What Can a WebWorks App Do? ... • Adobe AIR SDK

15

Development Tools

Page 16: BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... · SQLite File System BROWSER ENGINE What Can a WebWorks App Do? ... • Adobe AIR SDK

1. Setup Development Environment

2. Write application content (HTML, CSS, JavaScript files)

3. Create a ZIP archive containing these Web assets

4. Package your application using the WebWorks SDK

How do you build BlackBerry WebWorks Applications?

Page 17: BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... · SQLite File System BROWSER ENGINE What Can a WebWorks App Do? ... • Adobe AIR SDK

Java SDK

BlackBerry

WebWorks SDK

BlackBerry WebWorks

SDK for PlayBook

Adobe AIR SDK

BlackBerry Smartphone

BlackBerry PlayBook

Deploy*.bar

WebWorks

Application

Archive (ZIP)

PlayBook

Development

Smartphone

Development

BlackBerry WebWorks SDK Development Tools

Deploy*.cod

Page 18: BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... · SQLite File System BROWSER ENGINE What Can a WebWorks App Do? ... • Adobe AIR SDK

• Adobe AIR SDK• http://www.adobe.com/products/air/sdk/

• BlackBerry WebWorks SDK for Tablet OS• http://us.blackberry.com/developers/tablet/webworks.jsp

• VMware Player• http://www.vmware.com/products/player/

• BlackBerry PlayBook Simulator• http://us.blackberry.com/developers/tablet/webworks.jsp

Required Development Tools

Page 19: BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... · SQLite File System BROWSER ENGINE What Can a WebWorks App Do? ... • Adobe AIR SDK

19

Installing the Adobe AIR SDK

Page 20: BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... · SQLite File System BROWSER ENGINE What Can a WebWorks App Do? ... • Adobe AIR SDK

• Download the AIR SDK from Adobe’s website:

• http://www.adobe.com/products/air/sdk/

Step 1: Installing the Adobe AIR SDK

Page 21: BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... · SQLite File System BROWSER ENGINE What Can a WebWorks App Do? ... • Adobe AIR SDK

Step 1: Installing the Adobe AIR SDK

Page 22: BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... · SQLite File System BROWSER ENGINE What Can a WebWorks App Do? ... • Adobe AIR SDK

22

Setting Up The WebWorks SDK For PlayBook

Page 23: BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... · SQLite File System BROWSER ENGINE What Can a WebWorks App Do? ... • Adobe AIR SDK

• Download the BlackBerry WebWorks SDK for Tablet OS:• http://us.blackberry.com/developers/tablet/webworks.jsp

Step 2: Setting up the SDK

Page 24: BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... · SQLite File System BROWSER ENGINE What Can a WebWorks App Do? ... • Adobe AIR SDK

Step 2: Setting up the SDK

Page 25: BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... · SQLite File System BROWSER ENGINE What Can a WebWorks App Do? ... • Adobe AIR SDK

• Enter the location of where you extracted the contents of the AIR SDK in Step 1

Step 2: Setting up the SDK

Page 26: BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... · SQLite File System BROWSER ENGINE What Can a WebWorks App Do? ... • Adobe AIR SDK

Step 2: Setting up the SDK

Page 27: BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... · SQLite File System BROWSER ENGINE What Can a WebWorks App Do? ... • Adobe AIR SDK

27

Installing VMware Player

Page 28: BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... · SQLite File System BROWSER ENGINE What Can a WebWorks App Do? ... • Adobe AIR SDK

• Download the VMware player from VMware's website:• http://www.vmware.com/products/player/

Step 3: Installing VMware Player

Page 29: BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... · SQLite File System BROWSER ENGINE What Can a WebWorks App Do? ... • Adobe AIR SDK

Step 3: Installing VMware Player

Page 30: BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... · SQLite File System BROWSER ENGINE What Can a WebWorks App Do? ... • Adobe AIR SDK

• VMware installation requires a system restart

• Coffee break …

Step 3: Installing VMware Player

Page 31: BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... · SQLite File System BROWSER ENGINE What Can a WebWorks App Do? ... • Adobe AIR SDK

31

BlackBerry PlayBook Simulator

Page 32: BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... · SQLite File System BROWSER ENGINE What Can a WebWorks App Do? ... • Adobe AIR SDK

Step 4: Setting Up The Simulator

Page 33: BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... · SQLite File System BROWSER ENGINE What Can a WebWorks App Do? ... • Adobe AIR SDK

Step 4: Setting Up The Simulator

Page 34: BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... · SQLite File System BROWSER ENGINE What Can a WebWorks App Do? ... • Adobe AIR SDK

Step 4: Setting Up The Simulator

Page 35: BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... · SQLite File System BROWSER ENGINE What Can a WebWorks App Do? ... • Adobe AIR SDK

• Browse to location where you installed simulator ISO file• C:\device simulators\<simulator name>\<ISO file>

Step 4: Setting Up The Simulator

Page 36: BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... · SQLite File System BROWSER ENGINE What Can a WebWorks App Do? ... • Adobe AIR SDK

Step 4: Setting Up The Simulator

Page 37: BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... · SQLite File System BROWSER ENGINE What Can a WebWorks App Do? ... • Adobe AIR SDK

Step 4: Setting Up The Simulator

Page 38: BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... · SQLite File System BROWSER ENGINE What Can a WebWorks App Do? ... • Adobe AIR SDK

Step 4: Setting Up The Simulator

Page 39: BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... · SQLite File System BROWSER ENGINE What Can a WebWorks App Do? ... • Adobe AIR SDK

Step 4: Setting Up The Simulator

Page 40: BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... · SQLite File System BROWSER ENGINE What Can a WebWorks App Do? ... • Adobe AIR SDK

Step 4: Setting Up The Simulator

Page 41: BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... · SQLite File System BROWSER ENGINE What Can a WebWorks App Do? ... • Adobe AIR SDK

Step 4: Setting Up The Simulator

Page 42: BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... · SQLite File System BROWSER ENGINE What Can a WebWorks App Do? ... • Adobe AIR SDK

To direct input to virtual machine, press CTRL + G

To return to your computer, press CTRL + ALT

Step 4: Setting Up The Simulator

Page 43: BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... · SQLite File System BROWSER ENGINE What Can a WebWorks App Do? ... • Adobe AIR SDK

Step 4: Setting Up The Simulator

Page 44: BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... · SQLite File System BROWSER ENGINE What Can a WebWorks App Do? ... • Adobe AIR SDK

Step 4: Setting Up The Simulator

Page 45: BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... · SQLite File System BROWSER ENGINE What Can a WebWorks App Do? ... • Adobe AIR SDK

45

Writing An App“Hello World”

Page 46: BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... · SQLite File System BROWSER ENGINE What Can a WebWorks App Do? ... • Adobe AIR SDK

• Open your favorite text editor

• Create a new file named index.html

• Add the following HTML content to this file:

<html>

<head>

<style type="text/css">

body { font-size: 5em; }

</style>

</head>

<body>

<p> Hello World </p>

</body>

</html>

Start Writing Code

Page 47: BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... · SQLite File System BROWSER ENGINE What Can a WebWorks App Do? ... • Adobe AIR SDK

• Create a second file named config.xml

• Add the following XML content to this file:

<?xml version="1.0" encoding="UTF-8"?>

<widget xmlns="http://www.w3.org/ns/widgets"

xmlns:rim="http://www.blackberry.com/ns/widgets"

version="1.0.0.0">

<name>helloWorld</name>

<content src="index.html"/>

</widget>

Start Writing Code

Page 48: BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... · SQLite File System BROWSER ENGINE What Can a WebWorks App Do? ... • Adobe AIR SDK

• Create an archive (ZIP) named helloWorld.zip containing the index.html and config.xml files

Start Writing Code

Page 49: BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... · SQLite File System BROWSER ENGINE What Can a WebWorks App Do? ... • Adobe AIR SDK

C:\Program Files\Research In Motion\BlackBerry WebWorks Pack

ager for PlayBook\bbwp>bbwp "c:\sandbox\web apps\helloWorld\

helloWorld.zip"

[INFO] Parsing command line options

[INFO] Parsing bbwp.properties

[INFO] Validating WebWorks archive

[INFO] Parsing config.xml

[WARNING] Failed to find a <feature> element

[WARNING] Failed to find the <author> element

[INFO] Populating application source

[INFO] Compiling WebWorks application

[INFO] Packaging the bar file

[INFO] Bar packaging complete

[INFO] WebWorks application packaging complete

• Run the BlackBerry WebWorks Packager (bbwp.exe)• Packages the helloWorld.zip file into a helloWorld.bar PlayBook application

Start Writing Code

Page 50: BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... · SQLite File System BROWSER ENGINE What Can a WebWorks App Do? ... • Adobe AIR SDK

Start Writing Code

Page 51: BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... · SQLite File System BROWSER ENGINE What Can a WebWorks App Do? ... • Adobe AIR SDK

51

Deploying An Application

Page 52: BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... · SQLite File System BROWSER ENGINE What Can a WebWorks App Do? ... • Adobe AIR SDK

Deploying Your Application

Page 53: BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... · SQLite File System BROWSER ENGINE What Can a WebWorks App Do? ... • Adobe AIR SDK

Deploying Your Application

Page 54: BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... · SQLite File System BROWSER ENGINE What Can a WebWorks App Do? ... • Adobe AIR SDK

• Use the BlackBerry Tablet OS SDK• Installed as part of the WebWorks SDK for PlayBook

• Open a command prompt and navigate to:• C:\Program Files\Research In Motion\BlackBerry WebWorks

Packager for PlayBook\bbwp\blackberry-tablet-sdk

• Contains developer tools for BlackBerry Tablet OS:• bin\blackberry-packager

• bin\blackberry-deploy

• bin\blackberry-signer

Deploying Your Application

Page 55: BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... · SQLite File System BROWSER ENGINE What Can a WebWorks App Do? ... • Adobe AIR SDK

blackberry-deploy -installApp -device <device IP>

-package <BAR file path> -password <device password>

C:\Program Files\Research In Motion\BlackBerry WebWorks Pack

ager for PlayBook\bbwp\blackberry-tablet-sdk>blackberry-deploy

-installApp -device 192.168.198.134 -package "c:\sandbox\

web apps\helloWorld\bin\helloWorld.bar" -password pass

Sending Install request...

Info: Action: Install

Info: File size: 40731

Info: Installing ...

actual_dname::helloWorld1a833da63a6b7e2098dae6d0662e1.MjA5OG

RhZTZkMDY2MmUxICAgICA

actual_id::MjA5OGRhZTZkMDY2MmUxICAgICA

actual_version::1.0.0.0

result::success

Deploying Your Application

Page 56: BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... · SQLite File System BROWSER ENGINE What Can a WebWorks App Do? ... • Adobe AIR SDK

Deploying Your Application

Page 57: BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... · SQLite File System BROWSER ENGINE What Can a WebWorks App Do? ... • Adobe AIR SDK

Deploying Your Application

Page 58: BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... · SQLite File System BROWSER ENGINE What Can a WebWorks App Do? ... • Adobe AIR SDK

58

“My First App”

Page 59: BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... · SQLite File System BROWSER ENGINE What Can a WebWorks App Do? ... • Adobe AIR SDK

• XML document based on W3C spec• http://www.w3.org/TR/widgets/#configuration-document0

• Used to define system properties and application permissions

• Application name, description, version and icon

• Maintains a list of domain and feature permissions

• See “Code sample: Creating a BlackBerry WebWorks configuration document” for full details

• http://bit.ly/fdOiO6

Configuration Document (config.xml)

Page 60: BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... · SQLite File System BROWSER ENGINE What Can a WebWorks App Do? ... • Adobe AIR SDK

• Define visual characteristics for your application<?xml version="1.0" encoding="UTF-8"?>

<widget xmlns="http://www.w3.org/ns/widgets" version="1.0.0.0">

<name>helloWorld</name>

<icon src="icon.png"/>

<content src="index.html"/>

</widget>

Configuration Document (config.xml)

Page 61: BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... · SQLite File System BROWSER ENGINE What Can a WebWorks App Do? ... • Adobe AIR SDK

<?xml version="1.0" encoding="UTF-8"?>

<widget xmlns="http://www.w3.org/ns/widgets" version="1.0.0.0">

<name>devBlog</name>

<icon src="icon.png"/>

<content src="http://devblog.blackberry.com/"/>

</widget>

• Display live content from your Website

• Define the <content> element to be a remote URL instead of a local HTML file

Configuration Document (config.xml)

Page 62: BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... · SQLite File System BROWSER ENGINE What Can a WebWorks App Do? ... • Adobe AIR SDK

• Without granting explicit permission to access remote domains, application is unable to retrieve content:

Configuration Document (config.xml)

Page 63: BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... · SQLite File System BROWSER ENGINE What Can a WebWorks App Do? ... • Adobe AIR SDK

<?xml version="1.0" encoding="UTF-8"?>

<widget xmlns="http://www.w3.org/ns/widgets" version="1.0.0.0">

<name>devBlog</name>

<icon src="icon.png"/>

<content src="http://devblog.blackberry.com/"/>

<access uri="http://devblog.blackberry.com/" subdomains="true"/>

<access uri="http://www.youtube.com/" subdomains="true"/>

<access uri="http://www.twitter.com/" subdomains="true"/>

<access uri="*" subdomains="true"/>

</widget>

• Grant domain permission in config.xml file

• Create <access> elements for all required domains

Configuration Document (config.xml)

Page 64: BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... · SQLite File System BROWSER ENGINE What Can a WebWorks App Do? ... • Adobe AIR SDK

• Remote content can now be accessed:

Configuration Document (config.xml)

Page 65: BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... · SQLite File System BROWSER ENGINE What Can a WebWorks App Do? ... • Adobe AIR SDK

• A WebWorks application does not need an active network connection

• Created using Web technologies, but designed to function offline

• Web assets of your application can be local:<a href="local:///index.html">Home</a>

<a href="file:///accounts/1000/shared/camera/IMG_01.jpg">

Camera Pic</a>

• Can also use live resources to populate content dynamically

<img src="http://www.mysite.com/image1.png"/>

Live vs. Local Web Content

Page 66: BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... · SQLite File System BROWSER ENGINE What Can a WebWorks App Do? ... • Adobe AIR SDK

//ajax.js:

var req;

function handleResponse() {

if (req.readyState == 4) {

if ((req.status == 200 || req.status == 0)) {

var ele = document.getElementById("remoteContent");

ele.innerHTML = req.responseText;

}

}

}

function getContent() {

req = new XMLHttpRequest();

req.open('GET', 'http://devblog.blackberry.com', true);

req.onreadystatechange = handleResponse; //async callback

req.send(null);

}

• Use XmlHttpRequest object to retrieve web content• Can retrieve local (embedded) or remote content• Remember to whitelist any remote domains used

Going Remote: AJAX Example

Page 67: BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... · SQLite File System BROWSER ENGINE What Can a WebWorks App Do? ... • Adobe AIR SDK

• CSS 3 is a standardized technology• Supported consistently across different platforms and browser

engines

• Allows you to design great looking application UI with less code

• Great learning resources available:• http://www.css3.info/preview

• NetTuts: http://bit.ly/aC5yjS

border-radius: 20px;

box-shadow: .2em .2em .5em #000;

@font-face {

font-family: myCustomFont;

src: url('myCustomFont.otf');

}

Making It Look Good

Page 68: BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... · SQLite File System BROWSER ENGINE What Can a WebWorks App Do? ... • Adobe AIR SDK

• Use Media Queries to target CSS against different screen sizes

• Support both BlackBerry PlayBook and BlackBerry Smartphone applications with same CSS.

• Easier management of multiple platforms with single code base

/* BlackBerry Playbook */

@media (min-width:480px) and (max-width:1024px) {

body {

font-family: Calibri;

font-size: 2em;

}

}

/* BlackBerry Torch 9800 */

@media (max-width:360px) and (max-height:480px) {

body {

font-family: Verdana;

font-size: 1em;

}

}

CSS3 Media Queries

Page 69: BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... · SQLite File System BROWSER ENGINE What Can a WebWorks App Do? ... • Adobe AIR SDK

1024x600360x480

http://colly.com/

CSS3 Media Query: Real World Example

Page 70: BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... · SQLite File System BROWSER ENGINE What Can a WebWorks App Do? ... • Adobe AIR SDK

• HTML5 is a standardized technology• Supported consistently across different platforms and engines• Enhancements to existing standard allow integration with

platform

• See “HTML reference – BlackBerry browser” documentation

• Complete list of BlackBerry supported HTML5 elements• http://bit.ly/aGFoub

• Many great HTML5 learning resources available online• http://diveintohtml5.org/• http://html5demos.com• http://www.w3schools.com/html5/default.asp• http://www.html5test.com

Using HTML5 In Your Application

Page 71: BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... · SQLite File System BROWSER ENGINE What Can a WebWorks App Do? ... • Adobe AIR SDK

• Save name-value pairs (String) for offline use

• Session data persists while application remains open

• Local data persists even after restarting application

• http://dev.w3.org/html5/webstorage/

HTML5 Session & Local Storage

function saveSession()

{

window.sessionStorage.clear();

window.sessionStorage.setItem("Greeting", "Hello World");

var key = window.sessionStorage.key(0); //"Greeting"

var value = window.sessionStorage.getItem(key); //"Hello World"

key = key + "_FR"; //"Greeting_FR"

value = "Bonjour Monde";

window.sessionStorage.setItem(key, value);

var num = window.sessionStorage.length; //2 entries

}

Page 72: BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... · SQLite File System BROWSER ENGINE What Can a WebWorks App Do? ... • Adobe AIR SDK

• Chrome

• “Tools” “Developer Tools” [Storage]

WebKit Browser Developer Tools

Page 73: BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... · SQLite File System BROWSER ENGINE What Can a WebWorks App Do? ... • Adobe AIR SDK

• Relational database powered by SQLite

• http://www.w3.org/TR/webdatabase/

Asynchronous Web DB

function initDBSchema(database)

{

if (database)

{

database.transaction(function(tx) {

var SQL = "CREATE TABLE IF NOT EXISTS Messages (id INTEGER " +

" PRIMARY KEY, message TEXT, created TIMESTAMP)";

//The following method occurs asynchronously. Requires callback

// methods to correctly perform next actions (e.g. INSERT statements)

tx.executeSql(SQL, [], firstCreateComplete, handleSQLError);

}, handleTransactionError);

}

}

function createDB()

{

var dbSize = 2 * 1024 * 1024;

db = window.openDatabase("WebDB", "1.0", "Example", dbSize, initDBSchema);

}

Page 74: BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... · SQLite File System BROWSER ENGINE What Can a WebWorks App Do? ... • Adobe AIR SDK

• Canvas• Use JavaScript to render 2D images on an HTML drawing surface

• See “SketchPad” sample application: http://bit.ly/hz67JX

http://jsway.se/m/ http://sebleedelisle.com/demos/html5landscape.html

HTML5 Media

Page 75: BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... · SQLite File System BROWSER ENGINE What Can a WebWorks App Do? ... • Adobe AIR SDK

• Audio/Video• Embed audio or video content directly your Web application

• Programmatic access to element methods and properties

Multimedia: Audio & Video

function playSound(audio_file)

{

var ele = document.getElementById("audio");

ele.src = "local:///files/" + audio_file;

ele.play();

}

...

<audio preload="auto" style="visibility: hidden;" id="audio"></audio>

<div class="pianokey" onclick="playSound('C.mp3')"></div>

<div class="pianokey" onclick="playSound('Csharp.mp3')"></div>

<div class="pianokey" onclick="playSound('D.mp3')"></div>

Page 76: BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... · SQLite File System BROWSER ENGINE What Can a WebWorks App Do? ... • Adobe AIR SDK

• Take advantage of Flash 10.1 support• Embed local or remote content directly your Web application

Multimedia: Flash 10.1

<!-- Remote URI: -->

<object width="640" height="385">

<param name="movie"

value="http://www.youtube.com/v/eAaez_4m9mQ?fs=1&amp;hl=en_US">

</param>

<embed src="http://www.youtube.com/v/eAaez_4m9mQ?fs=1&amp;hl=en_US"

width="640" height="385">

</embed>

</object>

<!– Embedded SWF: -->

<object width="500" height="300">

<param name="movie" value="5-snowflakes.swf"></param>

<embed src="5-snowflakes.swf" width="500" height="300"></embed>

</object>

Sample courtesy of

http://www.swfspot.com/swfspot/samples/flash8/Falling_Snowflakes

Page 77: BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... · SQLite File System BROWSER ENGINE What Can a WebWorks App Do? ... • Adobe AIR SDK

• Additional mechanism for user interaction besides screen• http://dev.w3.org/geo/api/spec-source-orientation.html#motion_event

Accelerometer

window.addEventListener("devicemotion", function(event)

{

//Acceleration measured in m/s^2

var x = event.accelerationIncludingGravity.x;

var y = event.accelerationIncludingGravity.y;

var z = event.accelerationIncludingGravity.z;

// A BlackBerry PlayBook lying flat on the Earth’s surface

// (facing up) should have an acceleration of:

// { x : 0, y : 0, z : 9.81 }

}, true);

Page 78: BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... · SQLite File System BROWSER ENGINE What Can a WebWorks App Do? ... • Adobe AIR SDK

• Event raised when user turns PlayBook left or right• UI can be changed to switch between Landscape and Portrait layout

Orientation

window.onorientationchange = function()

{

switch(window.orientation)

{

case 0:

alert("Top side up :" + window.orientation);

break;

case 90:

alert("Left side up :" + window.orientation);

break;

case -90:

alert("Right side up :" + window.orientation);

break;

}

}

Page 79: BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... · SQLite File System BROWSER ENGINE What Can a WebWorks App Do? ... • Adobe AIR SDK

• Override default behavior with custom events handlers

• See “Sample Code – SketchPad Application” http://bit.ly/hz67JX

Touch Screen Events

document.ontouchstart = function(event)

{

//Tell browser engine not to scroll/span/zoom when user touches screen:

event.preventDefault();

//Get first in collection of all active TouchStart events:

var touchEvent = event.changedTouches[0];

//Process the event

alert("TouchStart: " + touchEvent.pageX + "," + touchEvent.pageY);

}

Page 80: BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... · SQLite File System BROWSER ENGINE What Can a WebWorks App Do? ... • Adobe AIR SDK

• Touch optimized Web frameworks support multiple platforms

• Examples: jQuery Mobile/UI, Sencha Touch, Dojo, AlphaSoftware

• Improve the UI and functionality of your application• Save time and money by using existing code!

http://touchsolitaire.mobi/app/

Sencha Touch jQuery Mobile

http://jquerymobile.com/demos/

3rd Party Frameworks

Page 81: BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... · SQLite File System BROWSER ENGINE What Can a WebWorks App Do? ... • Adobe AIR SDK

81

“BlackBerry PlayBook Integration”

Page 82: BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... · SQLite File System BROWSER ENGINE What Can a WebWorks App Do? ... • Adobe AIR SDK

• Custom objects that can connect browser engine with underlying Java code

• BlackBerry WebWorks apps can be more than just web content

• Enables “Super App” functionality

http://www.blackberry.com/developers/docs/webworks/api/playbook/

Web Works JavaScript APIs

Page 83: BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... · SQLite File System BROWSER ENGINE What Can a WebWorks App Do? ... • Adobe AIR SDK

• Use blackberry.app to read data from config.xml file• Example: Styling an ‘About’ feature in your app with CSS3

function setValue(id, message) {

document.getElementById(id).innerHTML = message;

}

function showAbout()

{

setValue("version", blackberry.app.version);

setValue("copyright", blackberry.app.copyright);

setValue("author", "By: " + blackberry.app.author);

setValue("name", blackberry.app.name);

}

JavaScript API: blackberry.app

Page 84: BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... · SQLite File System BROWSER ENGINE What Can a WebWorks App Do? ... • Adobe AIR SDK

• Grant API permission in config.xml file

• Create an <feature> element for any required APIs

• Missing <feature> definitions may result in runtime ‘undefined’ errors

<?xml version="1.0" encoding="UTF-8"?>

<widget xmlns="http://www.w3.org/ns/widgets" version="1.0.0.0">

<name>helloWorld</name>

<icon src="icon.png"/>

<content src="index.html"/>

<feature id="blackberry.app" required="true" version="1.0.0.0"/>

</widget>

Web Works JavaScript APIs

Page 85: BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... · SQLite File System BROWSER ENGINE What Can a WebWorks App Do? ... • Adobe AIR SDK

• Even remote Web content can use WebWorks APIs

• Create a <feature> element within the <access> element

• Cannot be done with <access uri="*">

<?xml version="1.0" encoding="UTF-8"?>

<widget xmlns="http://www.w3.org/ns/widgets" version="1.0.0.0">

<name>helloWorld</name>

<icon src="icon.png"/>

<content src="http://devblog.blackberry.com"/>

<access uri="http://devblog.blackberry.com" subdomains="true">

<feature id="blackberry.app" required="true" version="1.0.0.0"/>

</access>

</widget>

Web Works JavaScript APIs

Page 86: BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... · SQLite File System BROWSER ENGINE What Can a WebWorks App Do? ... • Adobe AIR SDK

• Detect when user has moved the application to the background and/or foreground

JavaScript API: blackberry.app.event

function handleBackground() {

document.getElementById("mainElement").className = "background";

}

function handleForeground() {

document.getElementById("mainElement").className = "normal";

}

blackberry.app.event.onBackground(handleBackground);

blackberry.app.event.onForeground(handleForeground);

Page 87: BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... · SQLite File System BROWSER ENGINE What Can a WebWorks App Do? ... • Adobe AIR SDK

• Launch other Tablet OS applications

function openVideoCamera()

{

var args = new blackberry.invoke.CameraArguments();

args.view = blackberry.invoke.CameraArguments.VIEW_RECORDER;

blackberry.invoke.invoke(id, args);

}

...

<button onclick="openVideoCamera()">Open Video Camera</button>

JavaScript API: blackberry.invoke

Page 88: BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... · SQLite File System BROWSER ENGINE What Can a WebWorks App Do? ... • Adobe AIR SDK

• Retrieve information about the current state of the Tablet OS

function getNHLscores() {

var data;

//Get live data when network connection is available

// Otherwise, use last saved values.

// hasDataCoverage() is similar to "navigator.onLine"

if (blackberry.system.hasDataCoverage())

{

data = callWebService("http://test.sports.com/ws?t=NHL");

saveToDB("NHL", data);

}

else {

data = getFromDB("NHL");

}

displayScores(data);

}

JavaScript API: blackberry.system

Page 89: BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... · SQLite File System BROWSER ENGINE What Can a WebWorks App Do? ... • Adobe AIR SDK

• Read information about battery level and state

function handleBatteryLevel(level)

{

document.getElementById("level").style.width = level + "%";

}

...

blackberry.system.event.deviceBatteryLevelChange(handleBatteryLevel);

...

<div class="batteryLevelBar">

<div id="level" class="batteryLevel">&nbsp;</div>

</div>

JavaScript API: blackberry.system.event

Page 90: BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... · SQLite File System BROWSER ENGINE What Can a WebWorks App Do? ... • Adobe AIR SDK

• Display custom and standard Tablet OS Dialog windows

function dialogCallBack(index) {

alert("Button index selected: " + index);

}

function customDialog() {

var question = "Have you created a BlackBerry PlayBook application?";

var buttons = new Array("Yes", "No", "Soon");

var ops = { title : "Answer:", size : blackberry.ui.dialog.SIZE_MEDIUM,

position : blackberry.ui.dialog.LOC_CENTER };

blackberry.ui.dialog.customAsk(question, buttons, dialogCallBack, ops);

}

...

<button onclick="customDialog()">Ask Question (Custom Dialog)</button>

JavaScript API: blackberry.ui

Page 91: BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... · SQLite File System BROWSER ENGINE What Can a WebWorks App Do? ... • Adobe AIR SDK

91

Migrating content to the BlackBerry PlayBook Platform

Page 92: BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... · SQLite File System BROWSER ENGINE What Can a WebWorks App Do? ... • Adobe AIR SDK

• Web makes supporting different platforms easy• Relative sizes (fonts, page elements, margins/padding)

• Content can be designed to be scalable

Platform Screen Size Screen Resolution

BlackBerry Torch 9800 3.2” HVGA 480 x 360

BlackBerry PlayBook 7” LCD 1024 x 600

Desktops 17” - 32” + 1024 x 768 – 1920 x 1068 +

iPad 9.7” LCD 1024 x 768

Future Smartphones& Tablets

? ?

Supporting BlackBerry Smartphones and PlayBook

Page 93: BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... · SQLite File System BROWSER ENGINE What Can a WebWorks App Do? ... • Adobe AIR SDK

• Step 1: Direct your app to load your Website directly• Make any necessary adjustments to suit screen size

<?xml version="1.0" encoding="UTF-8"?>

<widget xmlns="http://www.w3.org/ns/widgets" version="1.0.0.0">

<name>myGreatApp</name>

<icon src="my_great_app_icon.png"/>

<content src="http://mygreatsite.com"/>

<access uri="http://mygreatsite.com" subdomains="true"/>

</widget>

Re-Using Your Existing Web Assets

Page 94: BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... · SQLite File System BROWSER ENGINE What Can a WebWorks App Do? ... • Adobe AIR SDK

• Step 2: Move remote Web content into standalone application

<?xml version="1.0" encoding="UTF-8"?>

<widget xmlns="http://www.w3.org/ns/widgets" version="1.0.0.0">

<name>myGreatApp</name>

<icon src="my_great_app_icon.png"/>

<content src="http://mygreatsite.com"/>

<content src="index.html"/>

</widget>

Web Server

myGreatSite.bar

Re-Using Your Existing Web Assets

Page 95: BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... · SQLite File System BROWSER ENGINE What Can a WebWorks App Do? ... • Adobe AIR SDK

• Step 3: Start taking advantage of local features• Support platform-specific features using JavaScript WebWorks APIs

function handleBatteryLevel(level) {

if (level < 25) {

if (confirm("Battery level below 25%. Close?")) {

blackberry.app.exit();

}

}

}

blackberry.system.event.deviceBatteryLevelChange(handleBatteryLevel);

...

<h1>My Great Site</h1>

...

Re-Using Your Existing Web Assets

Page 96: BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... · SQLite File System BROWSER ENGINE What Can a WebWorks App Do? ... • Adobe AIR SDK

• Step 4: Publish your content in BlackBerry App World

• BlackBerry App World• Free to register and submit apps• 70 Countries, 21 Currencies, 6 Languages• PayPal, Credit Card, Carrier Billing• Over 35 million App World users (2+ million app downloads per

day)• Over 75% of app downloads are OS 5.0+

• Free BlackBerry PlayBook Tablet Offerhttp://us.blackberry.com/developers/tablet/playbook_offer.jsp

Re-Using Your Existing Web Assets

Page 97: BlackBerry WebWorks Application Platform Overviewdev.salesnow.com/share1/Rex/NEW WebWorks... · SQLite File System BROWSER ENGINE What Can a WebWorks App Do? ... • Adobe AIR SDK

97

Q&A

Thank You!