SlideShare a Scribd company logo
The BlackBerry WebWorks Platform
            Alan Wong
        alawong@rim.com
         February 26, 2011
WEBWHAT?
What is the BlackBerry WebWorks platform?
What Is BlackBerry WebWorks?

                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.
Examples: What Do They Look Like?
Architecture: How Does It Work?

• User interface
   – Powered by Web
   – HTML5 and CSS 3                                                       Your app

                                                                      WebKit Engine
• Application logic
                                                                WebWorks Platform
   – JavaScript®
                                                                 BlackBerry Platform
   – BlackBerry WebWorks
     APIs
   – Access to BlackBerry OS

                            BBM          Security        Push
                        Monetization       PIM       Background
                          Media          Storage     Multi-Tasking
                         Hardware      Compression         …
What Can They Do?


   Services &
    Content

                           BROWSER
                WEB        ENGINE
                SERVICES             APPLICATION
                                     INTEGRATION


                PUSH

                                             SYSTEM
                                             EVENTS


                                                        File
                MENUS      GPS          STORAGE       System


                                           SQLite
WHY CONSIDER WEBWORKS?
      It matters because …
BlackBerry Programming Models

                                                          Sweet spot?!?



Application
  power



                      Simplicity of development
                          and maintenance

    • Hitting the sweet spot means
         – The richness of device access and reuse of Java assets
         – The simplicity of the browser programming model
Developer Spectrum

     Native-based UI      Browser-based UI


  Functionality provided by BlackBerry OS    Functionality provided by Browser Engine




Native Application               WebWorks Platform                     BlackBerry Browser




 • 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?

                                                                                            9
How Is This Different Than Developing
Blackberry Applications Today?

 • The BlackBerry WebWorks Platform gives you more solutions
   to choose from
    – Developers now have another way to create BlackBerry applications
    – Choose to develop applications in the way that is most comfortable
      and suitable to your needs




                  JAVA         WEBWORKS            WEB


 • Like writing a native application…but without having to learn
   the native language
Market for WebWorks Applications

• BlackBerry WebWorks applications are supported on
  – BlackBerry Device Software version 5.0
  – BlackBerry 6
  – BlackBerry PlayBook




        http://us.blackberry.com/developers/choosingtargetos.jsp
Web = Platform plurality

    iOS          Android                   BlackBerry & PlayBook




 • 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 BlackBerry platform
    – Overcome weaknesses of “Write-once-run-everywhere” approach
CREATING APPS USING WEBWORKS
        How to get started today
How Do You Create a BlackBerry
WebWorks Application?

• Using Command Line Utility:
   – BlackBerry WebWorks Packager
       • Input: WebWorks archive (*.ZIP)
       • Output: Packaged BlackBerry WebWorks App (*.COD)


• Using Popular Development Environments:
   – BlackBerry® WebWorks Plug-In for Eclipse
   – BlackBerry® WebWorks Plug-In for Visual Studio 2008
   – Debugging support available


 http://www.blackberry.com/developers/widget
Agnostic Developer Experience




 Developer Tools…   Middleware…   Frameworks…   Test/Runtime…
Index.html

• First we will create the content for your BlackBerry WebWorks
  application by creating a directory that has an index.html:
     – C:MyDirectoryindex.html


<html>
  <head>
    <meta name="viewport" content="width=device-width,user-scalable=no"/>
  </head>
  <body>
    <h1>Hello World</h1>
  </body>
</html>
Some UI Examples




    Total time to create all the screens seen above: 4 days!
WebWorks Configuration Document (config.xml)

• Descriptor file for a BlackBerry WebWorks application
   – XML file (config.xml), based on the W3C specification for widgets
• Define application characteristics and properties
   – Bindings to platform services
   – Security Policies
JavaScript Extensions
 • Objects that connect JavaScript engine with underlying Java
   code
    – BlackBerry WebWorks apps can be more than just web content
    – Enable powerful “Super App” functionality




       http://www.blackberry.com/developers/docs/widgetapi/
Sample Code: File Access
 <script type="text/javascript">
    //Offline storage:
    function saveToFile(fileContents)
    {
       var data = blackberry.utils.stringToBlob(fileContents);
       var filePath = "file:///store/home/user/webworks.txt";
       blackberry.io.file.saveFile(filePath, data);
    }
 </script>
Sample Code: Creating a calendar entry
<script type="text/javascript">
function newCalendarEntry(summary, date)
{
   var appt = new blackberry.pim.Appointment();
   appt.summary = summary;
   appt.date = date;

  var args = new blackberry.invoke.CalendarArguments(appt);
  args.view = 0;     //0 = Create, 1 = View

  blackberry.invoke.invoke(blackberry.invoke.APP_CALENDAR, args);
}
</script>
WebWorks API Examples

• Application and system events
   – onBackground, onCoverageChange, etc.
• Push services
   – Both Corporate and Consumer push
     using existing techniques
• Identity information
   – Phone numbers, PIN, email addresses
• Personal information management
   – Search and edit email, calendar, tasks,
     notepad, contacts, phone logs, etc.
• Application launcher
   – Invoke native apps with data, invoke
     third-party Java® apps with data
WebWorks API Examples

• File IO
    – Read, write files on eMMC and SDCard
• System properties
    – Change home screen icon, background,
      etc.
• User interface
    – System Dialogs, Dynamic Menu items
• Geolocation
    – Retrieve live GPS information
• Audio
    – Play and Pause local or remote audio
How Do I Sell My BlackBerry
WebWorks Applications?

 • Same distribution model as existing BlackBerry applications!
 • BlackBerry WebWorks Development tools produce all
   necessary deployment files
 • Users can install your application using:
    – BlackBerry App World™ storefront
    – The BlackBerry® Browser
    – Pushed automatically by the BlackBerry® Enterprise Server
BlackBerry App World
WAIT, THERE’S MORE?
Look at what else you can do with WebWorks!
What’s new? WebKit!

• WebKit rendering engine added to BlackBerry® 6
   – BlackBerry WebWorks applications receive the benefits of WebKit
   – Combine the power of HTML5 and CSS3 with JavaScript APIs




                          http://www.benjoffe.com/code/
WebKit on BlackBerry




                       28
HTML5 Support

 • HTML 5
     Audio: Easy integration of audio without the need for plugins
     Canvas: Use JavaScript to draw graphs & animations
     Application Cache: Store web resources for use when offline
     Web Workers: Asynchronous script processing
     Geolocation: Retrieve GPS or cell site coordinates
     Web Database: Store local data in SQLite database
     Forms: Use new interactive form elements.
CSS 3 and SVG

 •
            CSS 3 allows the creation of stunning transition images and graphic
            effects (e.g., scale, rotate using CSS styles)
 •
            Create graphics/fonts/animations that scale accurately to zoom
            level (Eliminates pixelization)




     http://www.subcide.com/experiments/fail-whale/
WebKit offers Better Performance
 Performance
  • BlackBerry 6 Loads Pages >50% Faster than 5.0!

  • BlackBerry 6 Has Significant Improvement in JavaScript and
     HTML Performance
What’s new? PlayBook!
• Use WebWorks to create PlayBook applications
   – Command line packager turns Web assets into AIR applications


• Powered by enhanced WebKit browser engine
   – Better support of HTML5 and CSS3 standards


• Full support of Flash 10.1
   – Package existing Flash content into a PlayBook application
Developing for PlayBook with WebWorks




                               PlayBook
                               WebWorks   BlackBerry PlayBook
                                  SDK       Application (.bar)



   http://www.gettyicons.com
COMMUNITY
Working together to make WebWorks great
Open Source Community
                                          OSS Community
                                          BlackBerry WebWorks Platform
                                         http://www.github.com/blackberry




                                                  Github




 RIM developer     •Contribute

                   •Participate
                                                   OSS Code                   •Consume
                                                   (source)                                      App developer
                   •Review                                                    •Participate




                                                                                                  • Create

                 Contributor agreement                                      Apache 2.0 License
 OS developer        Must register
                                                                                                 WebWorks
                                                                                                 Application
Open Source Community
Community Learning Resources

• BlackBerry Developer Zone:
   – http://www.blackberry.com/developers
   – Resources: Online Forums
   – Resources: Developer Resource Center


• BlackBerry Developers Blog
   – http://devblog.blackberry.com


• Twitter
   – http://twitter.com/BlackBerryDev
NEXT STEPS
My Challenge For You
Developer Challenge: Build an app.

 • Step 1: Build your first PlayBook application (THIS WEEK)
    – Download and install the WebWorks SDK for PlayBook
    – Create a ‘Hello World’ app and load it on the PlayBook simulator


 • Step 2: Improve your application (NEXT 2 WEEKS)
    – What is your great idea for a mobile Web application?
    – Use HTML5 and CSS3 to add functionality and UI to your app


 • Step 3: Submit your application(s) to App World
    – http://www.blackberry.com/developers/appworld/
    – Free PlayBook offer deadline is March 15, 2011
LIVE CODING DEMO
  Lights! Camera! Action!
Development Example

1

                          • Initial prototype with nothing but file resources,
                          notepad and Firefox.



2

                          • Adding basic Apache on Localhost to test real
                          HTTP-based resources (Vs. file resources)




3

                          • Eclipse as the development environment, running
                          with Apache Tomcat, and a BB device as the browser
                          on Wi-Fi hitting the dev machine (e.g., 192.168.1.101)
Index.html

• First we will create the content for your PlayBook WebWorks
  application by creating a directory that has an index.html:
     – C:MyDirectoryindex.html


<html>
  <head>
    <meta name="viewport" content="width=device-width,user-scalable=no"/>
  </head>
  <body>
    <h1>Hello World</h1>
  </body>
</html>
Config.xml

• Then, create the configuration file:
     – C:MyDirectoryconfig.xml
• This file configures properties for your app, such as the icon to
  use for the home screen, bindings to platform services, and
  security policies
<?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">
  <name>My App</name>
  <content src="index.html" />
</widget>
Packaging

• Use the SDK to package your app
     – cd "C:Program FilesResearch In MotionBlackBerry WebWorks
       Packager“
• Run the command line tools
bbwp "C:myapp.zip" /o "C:OutputDirectory"

>>[INFO]            Parsing command line options
>>[INFO]            Parsing bbwp.properties
>>[INFO]            Validating WebWorks archive
>>[INFO]            Parsing config.xml
>>[INFO]            Populating application source
>>[INFO]            Compiling WebWorks application
>>[INFO]            Generating output files
>>[INFO]            WebWorks application packaging complete
The Simulator

• Launch one of the BlackBerry Device
  Simulators:
   – cd "C:Program FilesResearch In
     MotionBlackBerry WebWorks
     Packagersimpack6.0.0.190”
   – 9800.bat
Your App

• Load your app in the simulator
    – From the device simulator file menu select "File ->
      Load BlackBerry Application or Theme...“
    – Browse to the "C:OutputDirectory" that you had
      supplied to the command line tooling
    – Go to the “StandardInstall” subfolder
    – Select the "myapp.cod" file
    – click "Open" on the simulator's browse dialog.

• Run your app
    – Scroll to the "Downloads" section on the device
      simulator
    – Launch your application "My App"
Summary

• BlackBerry and PlayBook WebWorks Application Platform


• Create standalone applications using Web technologies


• Integration with device functionality and data


• Powered by WebKit engine


• Open Source
Thank You
    Alan Wong
alawong@rim.com
February 26, 2011

More Related Content

PDF
"BlackBerry Webworks : Apps for The Smartphone and Tablet"
PDF
WebWorks Development for BlackBerry PlayBook and Smartphones
PDF
RIM Casual Meetup - Bandung #DevIDBdg
PDF
BlackBerry Developer Overview
PPTX
Web Sphere Portal
PPT
Training on webwroks1
PDF
What's new in Portal and WCM 8.5
PDF
Getting Started with BB Development..
"BlackBerry Webworks : Apps for The Smartphone and Tablet"
WebWorks Development for BlackBerry PlayBook and Smartphones
RIM Casual Meetup - Bandung #DevIDBdg
BlackBerry Developer Overview
Web Sphere Portal
Training on webwroks1
What's new in Portal and WCM 8.5
Getting Started with BB Development..

What's hot (20)

PDF
Adobe AIR Development for the BlackBerry PlayBook
PPTX
The Blackberry Opportunity (RIM) 160612
PPTX
Kentico Technical Learning: Exploring jQuery Mobile
PDF
The Notes/Domino Application Development Competitive Advantage - IamLUG
PPTX
2012Technology Preview
PDF
Cordova 3, apps para android
ODP
IBM Connect 2014 - KEY108: IBM Collaboration Solutions Application Developmen...
ODP
Connect 2014 - AD202 - Get the best out of bootstrap with bootstrap4 x-pages
PPT
WebSphere Portal Business Overview
PDF
Development Workshop on ET1, Android and Motorola RhoElements
PDF
Managing Content In Portal Wcm
PPTX
Becoming an IBM Connections Developer
PDF
Websphere Portal
PPT
IBM WebSphere Portal
PPTX
Feed Herny developer training : crossplatform and HTML5
PPTX
Domino X Pages 8.5
PPT
IBM Portal Web intro
PDF
Creating a Global E-Commerce Website With E-Business Suite and Fusion Middleware
PPT
IBM Websphere Portal | Portal Accelerators
PPT
Integrating ADF Mobile with WebCenter
Adobe AIR Development for the BlackBerry PlayBook
The Blackberry Opportunity (RIM) 160612
Kentico Technical Learning: Exploring jQuery Mobile
The Notes/Domino Application Development Competitive Advantage - IamLUG
2012Technology Preview
Cordova 3, apps para android
IBM Connect 2014 - KEY108: IBM Collaboration Solutions Application Developmen...
Connect 2014 - AD202 - Get the best out of bootstrap with bootstrap4 x-pages
WebSphere Portal Business Overview
Development Workshop on ET1, Android and Motorola RhoElements
Managing Content In Portal Wcm
Becoming an IBM Connections Developer
Websphere Portal
IBM WebSphere Portal
Feed Herny developer training : crossplatform and HTML5
Domino X Pages 8.5
IBM Portal Web intro
Creating a Global E-Commerce Website With E-Business Suite and Fusion Middleware
IBM Websphere Portal | Portal Accelerators
Integrating ADF Mobile with WebCenter
Ad

Viewers also liked (19)

PPTX
Ciencias de la naturaleza 1
PDF
F90 raices
PDF
Анна Ровенская: резюме идеального сотрудника.
DOCX
Jan Mode CV 2016
DOCX
Quimica metales
PPT
REFORMA DE LA LEY 24.240 CONJUNTAMENTE CON LA UNIFICACION DEL CODIGO CIVIL Y ...
PDF
F90 raices
PPTX
TIME CAPSULE
DOCX
Practica quimica upao
PPTX
Normas apa
PDF
How Under Armour and American Apparel Turn Users into Customers
PPT
Chick Chat PP
PPTX
Mediacion Penal por Pablo Diaz
PPT
LA REFORMA Y UNIFICACIÓN DE LOS CÓDIGOS CIVIL Y COMERCIAL Y SU IMPACTO EN EL ...
DOCX
Los tipos de fierros en el mercado word imprimir ti rial nigas
PDF
Maual de estacion total
PDF
CSEC Information Technology Past Papers
PPT
Poblacion mundial
PPTX
Mymi1 Presentasi
Ciencias de la naturaleza 1
F90 raices
Анна Ровенская: резюме идеального сотрудника.
Jan Mode CV 2016
Quimica metales
REFORMA DE LA LEY 24.240 CONJUNTAMENTE CON LA UNIFICACION DEL CODIGO CIVIL Y ...
F90 raices
TIME CAPSULE
Practica quimica upao
Normas apa
How Under Armour and American Apparel Turn Users into Customers
Chick Chat PP
Mediacion Penal por Pablo Diaz
LA REFORMA Y UNIFICACIÓN DE LOS CÓDIGOS CIVIL Y COMERCIAL Y SU IMPACTO EN EL ...
Los tipos de fierros en el mercado word imprimir ti rial nigas
Maual de estacion total
CSEC Information Technology Past Papers
Poblacion mundial
Mymi1 Presentasi
Ad

Similar to Web works presso (20)

PPTX
BlackBerry WebWorks
PDF
BEF2013 - Toronto - Dev Track 2 - Migrating Apps to BlackBerry 10
PDF
Webdev battacherjee
PPT
BB10 Leading Mobile Web Platform W3C 2013
PDF
Client Continuum Dec Fy09
PDF
Effectively using Nokia Web Tools 2.0 templates for Series 40 web apps
PPTX
Transforming the web into a real application platform
PDF
Forum Nokia Dev. Camp - WRT training Paris_17&18 Nov.
ODP
Portlet factory 101
PDF
Platform update and super apps ON BB App World
PDF
Building a Next Generation Mobile Browser using Web technologies
PDF
QNX, C/C++, Qt, Cascades, HTML5… So what’s now BlackBerry 10 application deve...
PPTX
Building modern web sites with ASP .Net Web API, WebSockets and RSignal
PPT
Demystifying Native, Web, and Hybrid Mobile Development on BlackBerry 10 wit...
PDF
Developing for BlackBerry 10 – Tools and SDKs by Luca Filigheddu
PPTX
Windows Phone 7 and Windows Azure – A Match Made in the Cloud
PDF
ITCamp 2012 - Alessandro Pilotti - Web API, web sockets and RSignal
PDF
Nokia Web-Runtime Presentation (Phong Vu)
PDF
PDF
Understanding Native, Hybrid, and Web Mobile Architectures
BlackBerry WebWorks
BEF2013 - Toronto - Dev Track 2 - Migrating Apps to BlackBerry 10
Webdev battacherjee
BB10 Leading Mobile Web Platform W3C 2013
Client Continuum Dec Fy09
Effectively using Nokia Web Tools 2.0 templates for Series 40 web apps
Transforming the web into a real application platform
Forum Nokia Dev. Camp - WRT training Paris_17&18 Nov.
Portlet factory 101
Platform update and super apps ON BB App World
Building a Next Generation Mobile Browser using Web technologies
QNX, C/C++, Qt, Cascades, HTML5… So what’s now BlackBerry 10 application deve...
Building modern web sites with ASP .Net Web API, WebSockets and RSignal
Demystifying Native, Web, and Hybrid Mobile Development on BlackBerry 10 wit...
Developing for BlackBerry 10 – Tools and SDKs by Luca Filigheddu
Windows Phone 7 and Windows Azure – A Match Made in the Cloud
ITCamp 2012 - Alessandro Pilotti - Web API, web sockets and RSignal
Nokia Web-Runtime Presentation (Phong Vu)
Understanding Native, Hybrid, and Web Mobile Architectures

More from momoahmedabad (14)

PDF
IoT Testing by Robins Abraham
PDF
Getting Started with IoT by Niraj Shah
PPSX
Crowd Testing Framework : Mobile Application Testing
PDF
Smart Skills For Mobile Developers
PPTX
Localization : The Road Ahead : Kinnari
PDF
Localization : The Road Ahead : Anand Virani
PPTX
Localization : The Road Ahead : Mahendra
PPTX
2014 mobile trends_27th Jan
PPTX
Useful Tools for Creating (& not developing) iOS/Android Apps
PDF
Web works hol
PPTX
iPhone Workshop Mobile Monday Ahmedabad
PPTX
Mobile Monday 03-Jan-2010
PDF
Mobile monday 12.2010 ahmedabad
PPT
Indian mobile industry
IoT Testing by Robins Abraham
Getting Started with IoT by Niraj Shah
Crowd Testing Framework : Mobile Application Testing
Smart Skills For Mobile Developers
Localization : The Road Ahead : Kinnari
Localization : The Road Ahead : Anand Virani
Localization : The Road Ahead : Mahendra
2014 mobile trends_27th Jan
Useful Tools for Creating (& not developing) iOS/Android Apps
Web works hol
iPhone Workshop Mobile Monday Ahmedabad
Mobile Monday 03-Jan-2010
Mobile monday 12.2010 ahmedabad
Indian mobile industry

Web works presso

  • 1. The BlackBerry WebWorks Platform Alan Wong alawong@rim.com February 26, 2011
  • 2. WEBWHAT? What is the BlackBerry WebWorks platform?
  • 3. What Is BlackBerry WebWorks? 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.
  • 4. Examples: What Do They Look Like?
  • 5. Architecture: How Does It Work? • User interface – Powered by Web – HTML5 and CSS 3 Your app WebKit Engine • Application logic WebWorks Platform – JavaScript® BlackBerry Platform – BlackBerry WebWorks APIs – Access to BlackBerry OS BBM Security Push Monetization PIM Background Media Storage Multi-Tasking Hardware Compression …
  • 6. What Can They Do? Services & Content BROWSER WEB ENGINE SERVICES APPLICATION INTEGRATION PUSH SYSTEM EVENTS File MENUS GPS STORAGE System SQLite
  • 7. WHY CONSIDER WEBWORKS? It matters because …
  • 8. BlackBerry Programming Models Sweet spot?!? Application power Simplicity of development and maintenance • Hitting the sweet spot means – The richness of device access and reuse of Java assets – The simplicity of the browser programming model
  • 9. Developer Spectrum Native-based UI Browser-based UI Functionality provided by BlackBerry OS Functionality provided by Browser Engine Native Application WebWorks Platform BlackBerry Browser • 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? 9
  • 10. How Is This Different Than Developing Blackberry Applications Today? • The BlackBerry WebWorks Platform gives you more solutions to choose from – Developers now have another way to create BlackBerry applications – Choose to develop applications in the way that is most comfortable and suitable to your needs JAVA WEBWORKS WEB • Like writing a native application…but without having to learn the native language
  • 11. Market for WebWorks Applications • BlackBerry WebWorks applications are supported on – BlackBerry Device Software version 5.0 – BlackBerry 6 – BlackBerry PlayBook http://us.blackberry.com/developers/choosingtargetos.jsp
  • 12. Web = Platform plurality iOS Android BlackBerry & PlayBook • 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 BlackBerry platform – Overcome weaknesses of “Write-once-run-everywhere” approach
  • 13. CREATING APPS USING WEBWORKS How to get started today
  • 14. How Do You Create a BlackBerry WebWorks Application? • Using Command Line Utility: – BlackBerry WebWorks Packager • Input: WebWorks archive (*.ZIP) • Output: Packaged BlackBerry WebWorks App (*.COD) • Using Popular Development Environments: – BlackBerry® WebWorks Plug-In for Eclipse – BlackBerry® WebWorks Plug-In for Visual Studio 2008 – Debugging support available http://www.blackberry.com/developers/widget
  • 15. Agnostic Developer Experience Developer Tools… Middleware… Frameworks… Test/Runtime…
  • 16. Index.html • First we will create the content for your BlackBerry WebWorks application by creating a directory that has an index.html: – C:MyDirectoryindex.html <html> <head> <meta name="viewport" content="width=device-width,user-scalable=no"/> </head> <body> <h1>Hello World</h1> </body> </html>
  • 17. Some UI Examples Total time to create all the screens seen above: 4 days!
  • 18. WebWorks Configuration Document (config.xml) • Descriptor file for a BlackBerry WebWorks application – XML file (config.xml), based on the W3C specification for widgets • Define application characteristics and properties – Bindings to platform services – Security Policies
  • 19. JavaScript Extensions • Objects that connect JavaScript engine with underlying Java code – BlackBerry WebWorks apps can be more than just web content – Enable powerful “Super App” functionality http://www.blackberry.com/developers/docs/widgetapi/
  • 20. Sample Code: File Access <script type="text/javascript"> //Offline storage: function saveToFile(fileContents) { var data = blackberry.utils.stringToBlob(fileContents); var filePath = "file:///store/home/user/webworks.txt"; blackberry.io.file.saveFile(filePath, data); } </script>
  • 21. Sample Code: Creating a calendar entry <script type="text/javascript"> function newCalendarEntry(summary, date) { var appt = new blackberry.pim.Appointment(); appt.summary = summary; appt.date = date; var args = new blackberry.invoke.CalendarArguments(appt); args.view = 0; //0 = Create, 1 = View blackberry.invoke.invoke(blackberry.invoke.APP_CALENDAR, args); } </script>
  • 22. WebWorks API Examples • Application and system events – onBackground, onCoverageChange, etc. • Push services – Both Corporate and Consumer push using existing techniques • Identity information – Phone numbers, PIN, email addresses • Personal information management – Search and edit email, calendar, tasks, notepad, contacts, phone logs, etc. • Application launcher – Invoke native apps with data, invoke third-party Java® apps with data
  • 23. WebWorks API Examples • File IO – Read, write files on eMMC and SDCard • System properties – Change home screen icon, background, etc. • User interface – System Dialogs, Dynamic Menu items • Geolocation – Retrieve live GPS information • Audio – Play and Pause local or remote audio
  • 24. How Do I Sell My BlackBerry WebWorks Applications? • Same distribution model as existing BlackBerry applications! • BlackBerry WebWorks Development tools produce all necessary deployment files • Users can install your application using: – BlackBerry App World™ storefront – The BlackBerry® Browser – Pushed automatically by the BlackBerry® Enterprise Server
  • 26. WAIT, THERE’S MORE? Look at what else you can do with WebWorks!
  • 27. What’s new? WebKit! • WebKit rendering engine added to BlackBerry® 6 – BlackBerry WebWorks applications receive the benefits of WebKit – Combine the power of HTML5 and CSS3 with JavaScript APIs http://www.benjoffe.com/code/
  • 29. HTML5 Support • HTML 5 Audio: Easy integration of audio without the need for plugins Canvas: Use JavaScript to draw graphs & animations Application Cache: Store web resources for use when offline Web Workers: Asynchronous script processing Geolocation: Retrieve GPS or cell site coordinates Web Database: Store local data in SQLite database Forms: Use new interactive form elements.
  • 30. CSS 3 and SVG • CSS 3 allows the creation of stunning transition images and graphic effects (e.g., scale, rotate using CSS styles) • Create graphics/fonts/animations that scale accurately to zoom level (Eliminates pixelization) http://www.subcide.com/experiments/fail-whale/
  • 31. WebKit offers Better Performance Performance • BlackBerry 6 Loads Pages >50% Faster than 5.0! • BlackBerry 6 Has Significant Improvement in JavaScript and HTML Performance
  • 32. What’s new? PlayBook! • Use WebWorks to create PlayBook applications – Command line packager turns Web assets into AIR applications • Powered by enhanced WebKit browser engine – Better support of HTML5 and CSS3 standards • Full support of Flash 10.1 – Package existing Flash content into a PlayBook application
  • 33. Developing for PlayBook with WebWorks PlayBook WebWorks BlackBerry PlayBook SDK Application (.bar) http://www.gettyicons.com
  • 34. COMMUNITY Working together to make WebWorks great
  • 35. Open Source Community OSS Community BlackBerry WebWorks Platform http://www.github.com/blackberry Github RIM developer •Contribute •Participate OSS Code •Consume (source) App developer •Review •Participate • Create Contributor agreement Apache 2.0 License OS developer Must register WebWorks Application
  • 37. Community Learning Resources • BlackBerry Developer Zone: – http://www.blackberry.com/developers – Resources: Online Forums – Resources: Developer Resource Center • BlackBerry Developers Blog – http://devblog.blackberry.com • Twitter – http://twitter.com/BlackBerryDev
  • 39. Developer Challenge: Build an app. • Step 1: Build your first PlayBook application (THIS WEEK) – Download and install the WebWorks SDK for PlayBook – Create a ‘Hello World’ app and load it on the PlayBook simulator • Step 2: Improve your application (NEXT 2 WEEKS) – What is your great idea for a mobile Web application? – Use HTML5 and CSS3 to add functionality and UI to your app • Step 3: Submit your application(s) to App World – http://www.blackberry.com/developers/appworld/ – Free PlayBook offer deadline is March 15, 2011
  • 40. LIVE CODING DEMO Lights! Camera! Action!
  • 41. Development Example 1 • Initial prototype with nothing but file resources, notepad and Firefox. 2 • Adding basic Apache on Localhost to test real HTTP-based resources (Vs. file resources) 3 • Eclipse as the development environment, running with Apache Tomcat, and a BB device as the browser on Wi-Fi hitting the dev machine (e.g., 192.168.1.101)
  • 42. Index.html • First we will create the content for your PlayBook WebWorks application by creating a directory that has an index.html: – C:MyDirectoryindex.html <html> <head> <meta name="viewport" content="width=device-width,user-scalable=no"/> </head> <body> <h1>Hello World</h1> </body> </html>
  • 43. Config.xml • Then, create the configuration file: – C:MyDirectoryconfig.xml • This file configures properties for your app, such as the icon to use for the home screen, bindings to platform services, and security policies <?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"> <name>My App</name> <content src="index.html" /> </widget>
  • 44. Packaging • Use the SDK to package your app – cd "C:Program FilesResearch In MotionBlackBerry WebWorks Packager“ • Run the command line tools bbwp "C:myapp.zip" /o "C:OutputDirectory" >>[INFO] Parsing command line options >>[INFO] Parsing bbwp.properties >>[INFO] Validating WebWorks archive >>[INFO] Parsing config.xml >>[INFO] Populating application source >>[INFO] Compiling WebWorks application >>[INFO] Generating output files >>[INFO] WebWorks application packaging complete
  • 45. The Simulator • Launch one of the BlackBerry Device Simulators: – cd "C:Program FilesResearch In MotionBlackBerry WebWorks Packagersimpack6.0.0.190” – 9800.bat
  • 46. Your App • Load your app in the simulator – From the device simulator file menu select "File -> Load BlackBerry Application or Theme...“ – Browse to the "C:OutputDirectory" that you had supplied to the command line tooling – Go to the “StandardInstall” subfolder – Select the "myapp.cod" file – click "Open" on the simulator's browse dialog. • Run your app – Scroll to the "Downloads" section on the device simulator – Launch your application "My App"
  • 47. Summary • BlackBerry and PlayBook WebWorks Application Platform • Create standalone applications using Web technologies • Integration with device functionality and data • Powered by WebKit engine • Open Source
  • 48. Thank You Alan Wong alawong@rim.com February 26, 2011