SlideShare a Scribd company logo
1 of 20
Introduction to BlackBerry
Widgets
Tim Neil
Manager, Development Tools
What are BlackBerry Widgets?
• Based off of the W3C widget specification as standalone
applications that are entirely created with standard web
technology
• BlackBerry® widgets leverage BlackBerry API’s in a
secure manageable container
• Same distribution/management model as native
applications and can be distributed through BlackBerry
App World™
• Will be available in an upcoming version of the
BlackBerry Operating System
What are BlackBerry Widgets?
• User interface is entirely authored in HTML/CSS
• Application logic is written in JavaScript with access to
BlackBerry Widget API extensions
• Access to Gears API’s for multi-threading, local storage
via SQLite and Geolocation
• Access to SD Card, PIM, native applications, data push
and more
• Packaged as a ZIP archive and converted into a
BlackBerry Widget via using the BlackBerry Widget SDK
BlackBerry Widget Model
BlackBerry Widget API’s
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, etc.
BlackBerry Widget API’s
Application Launcher
– Invoke native apps with data, Invoke 3rd party Java®
apps with data
File IO
– Read, write, traverse local files on eMMC and SDCard
System Properties
– Change home screen icon, background etc.
User Interface
– System Dialogs, Dynamic Menu items
Utilities
– Parsing URL’s, BlobToString, Generate unique ID, etc.
Some Example JavaScript
<script type="text/javascript">
// Create our Appointment
var newAppt = new blackberry.pim.Appointment();
newAppt.location = "Your office";
newAppt.summary = "Talk about new project";
newAppt.freeBusy = blackberry.pim.Appointment.FREE;
// Create our hour time slot
var start = new Date();
newAppt.start = start;
var end = start.setHours(start.getHours() + 1);
newAppt.end = end;
// Create Attendee
var attendees = new Array();
var onlyAttendee = new blackberry.pim.Attendee();
onlyAttendee.address = "john@foo.com";
onlyAttendee.type = blackberry.pim.Attendee.INVITED;
attendees.push(onlyAttendee);
// Save Appointment
newAppt.attendees = attendees;
newAppt.save();
</script>
BlackBerry Widget Packager
Standalone command line utility which is part of the
BlackBerry Widget SDK for packaging your Widget
• Input: Widget archive
• Output: Packaged BlackBerry Widget
Integrated into BlackBerry Web Plug-in Tools
• Widget plug-ins available in both Microsoft® Visual Studio®
2008 and in Eclipse®
• No Debugging support available in first Beta
Signs your application with a BlackBerry Code
Signing key
BlackBerry Widget Security Model
How to secure your BlackBerry Widget
BlackBerry Widget Security Overview
• BlackBerry Widgets must be signed with a Research In
Motion (RIM) code signing key
• The same access control policies can be applied to
Widgets as can be applied to native applications
• Web resources outside of the widget can be pulled in
from external sources as long as those sources match
the white list provided with your widget
• Widget JavaScript API’s are only provided in a
BlackBerry Widget, and not in the BlackBerry® Browser
White Listing Domains
• The core to a BlackBerry widget is the config.xml file
based on the W3C specification for widgets
• This configuration document specifies many things like
the name, author, description, version, icon etc for the
widget
• It also contains an area where you list domains that will
be white listed so that content from those domains can
be pulled into the widget
• Comparing a URL for compliance is based on the Same
Origin policy rules
Allowing Access To API’s
• Allowing access to Widget JavaScript API’s must also be
declared in the config.xml file
• This is done with the <feature> element
• For each API you wish to use, there is an associated
feature id that must be specified in your configuration
• Outside domains can access widget API’s if they have
been properly assigned in the white list
Last Mile Security
• Always follow proper security practices when bringing in
outside content into your widget
• i.e. Content from only trusted sources, and it is valuable to SSL
secure the connection for any man in the middle attacks
• A user or Corporate Administrator can set security
policies for each widget to specify which functionality
they will allow that application to access
Time For a Demo
Let’s Take a look at BlackBerry Widgets
Custom BlackBerry Widget API Extensions
• RIM will continue to add new BlackBerry Widget API’s.
Most will not require new OS versions to be used
• As a Java developer you can create your own custom
JavaScript extension to package with your widget
• Wrap any of the BlackBerry API’s by implementing the
provided JavaScript interfaces
• Package your BlackBerry Widget API extension in the
widget archive to be distributed with your application
Digging Deeper with BlackBerry Widgets
Some under the hood details
Getting into the Nuts and Bolts
• Packaged as a Java application
utilizing the new Browser Field
to render the content and run
JavaScript
• Could be considered a “Hybrid”
Application
• Web assets of the widget are left
untouched and are encapsulated
as embedded resources
• BlackBerry Widget API’s are added
to the nested Browser Field
NOTE: Widget JavaScript API’s are not
accessible in the BlackBerry Browser.
Only in a widget
Summary
• BlackBerry Widgets are completely authored with web technologies
• HTML, JavaScript, CSS, etc
• Widgets run on BlackBerry® Device Software v5.0 and can be
distributed through BlackBerry App World
• Are generated using the BlackBerry Widget SDK
• Tooling integration with Eclipse and Microsoft Visual Studio is now
available
• JavaScript debugging support coming soon
• Custom JavaScript extensions will be supported soon, but they are
not available in the current available release
Another way to give us your feedback…
• There is an online survey for mobile web application
developers on Widget APIs:
• Which APIs are you most interested in?
• Which ones are the most / least important to you?
• Which other Widget APIs would you like us to provide?
• Why should I complete this survey?
• Opportunity to directly give us feedback about your Widget API
requirements
• Participants receive a gift card ($$) for participation
• Survey URL: _________________________
Tim Neil – Manager,
Development Tools
Thank You

More Related Content

What's hot

Building a mobile application for dot netnuke
Building a mobile application for dot netnukeBuilding a mobile application for dot netnuke
Building a mobile application for dot netnukebrchapman
 
Why your APIs should fly first class
Why your APIs should fly first classWhy your APIs should fly first class
Why your APIs should fly first classLibbySchulze
 
O365Con18 - Create an Immersive Experience with Office365 Data and Mixed Real...
O365Con18 - Create an Immersive Experience with Office365 Data and Mixed Real...O365Con18 - Create an Immersive Experience with Office365 Data and Mixed Real...
O365Con18 - Create an Immersive Experience with Office365 Data and Mixed Real...NCCOMMS
 
Kasten securing access to your kubernetes applications
Kasten securing access to your kubernetes applicationsKasten securing access to your kubernetes applications
Kasten securing access to your kubernetes applicationsLibbySchulze
 
Google Firebase
Google FirebaseGoogle Firebase
Google FirebaseAliZaidi94
 
Securing SharePoint Apps with OAuth
Securing SharePoint Apps with OAuthSecuring SharePoint Apps with OAuth
Securing SharePoint Apps with OAuthKashif Imran
 
Introduction, Examples - Firebase
Introduction, Examples - Firebase Introduction, Examples - Firebase
Introduction, Examples - Firebase Eueung Mulyana
 
Logic Apps – Deployments
Logic Apps – DeploymentsLogic Apps – Deployments
Logic Apps – DeploymentsBizTalk360
 
Developing SharePoint 2013 apps with Visual Studio 2012 - SharePoint Connecti...
Developing SharePoint 2013 apps with Visual Studio 2012 - SharePoint Connecti...Developing SharePoint 2013 apps with Visual Studio 2012 - SharePoint Connecti...
Developing SharePoint 2013 apps with Visual Studio 2012 - SharePoint Connecti...Bram de Jager
 
LDC Via building a new app
LDC Via  building a new appLDC Via  building a new app
LDC Via building a new appMark Myers
 
Lightning web components
Lightning web componentsLightning web components
Lightning web componentsAmit Singh
 
Building Apps for SharePoint 2013 by Andrew Connell - SPTechCon
Building Apps for SharePoint 2013 by Andrew Connell - SPTechConBuilding Apps for SharePoint 2013 by Andrew Connell - SPTechCon
Building Apps for SharePoint 2013 by Andrew Connell - SPTechConSPTechCon
 
70-534: ARCHITECTING MICROSOFT AZURE SOLUTIONS
70-534: ARCHITECTING MICROSOFT AZURE SOLUTIONS70-534: ARCHITECTING MICROSOFT AZURE SOLUTIONS
70-534: ARCHITECTING MICROSOFT AZURE SOLUTIONSDotNetCampus
 
O365Con18 - PowerApps build custom forms for SharePoint with Azure Maps - Bra...
O365Con18 - PowerApps build custom forms for SharePoint with Azure Maps - Bra...O365Con18 - PowerApps build custom forms for SharePoint with Azure Maps - Bra...
O365Con18 - PowerApps build custom forms for SharePoint with Azure Maps - Bra...NCCOMMS
 
Discover Google Firebase Platform
Discover Google Firebase PlatformDiscover Google Firebase Platform
Discover Google Firebase PlatformSagar Mody
 

What's hot (20)

An Introduction to Lightning Web Components
An Introduction to Lightning Web ComponentsAn Introduction to Lightning Web Components
An Introduction to Lightning Web Components
 
Building a mobile application for dot netnuke
Building a mobile application for dot netnukeBuilding a mobile application for dot netnuke
Building a mobile application for dot netnuke
 
Why your APIs should fly first class
Why your APIs should fly first classWhy your APIs should fly first class
Why your APIs should fly first class
 
O365Con18 - Create an Immersive Experience with Office365 Data and Mixed Real...
O365Con18 - Create an Immersive Experience with Office365 Data and Mixed Real...O365Con18 - Create an Immersive Experience with Office365 Data and Mixed Real...
O365Con18 - Create an Immersive Experience with Office365 Data and Mixed Real...
 
Kasten securing access to your kubernetes applications
Kasten securing access to your kubernetes applicationsKasten securing access to your kubernetes applications
Kasten securing access to your kubernetes applications
 
Google Firebase
Google FirebaseGoogle Firebase
Google Firebase
 
Securing SharePoint Apps with OAuth
Securing SharePoint Apps with OAuthSecuring SharePoint Apps with OAuth
Securing SharePoint Apps with OAuth
 
Introduction, Examples - Firebase
Introduction, Examples - Firebase Introduction, Examples - Firebase
Introduction, Examples - Firebase
 
Logic Apps – Deployments
Logic Apps – DeploymentsLogic Apps – Deployments
Logic Apps – Deployments
 
Firebase
FirebaseFirebase
Firebase
 
Developing SharePoint 2013 apps with Visual Studio 2012 - SharePoint Connecti...
Developing SharePoint 2013 apps with Visual Studio 2012 - SharePoint Connecti...Developing SharePoint 2013 apps with Visual Studio 2012 - SharePoint Connecti...
Developing SharePoint 2013 apps with Visual Studio 2012 - SharePoint Connecti...
 
Introduction to Firebase from Google
Introduction to Firebase from GoogleIntroduction to Firebase from Google
Introduction to Firebase from Google
 
LDC Via building a new app
LDC Via  building a new appLDC Via  building a new app
LDC Via building a new app
 
Firebase
FirebaseFirebase
Firebase
 
Lightning web components
Lightning web componentsLightning web components
Lightning web components
 
Firebase hosting
Firebase hostingFirebase hosting
Firebase hosting
 
Building Apps for SharePoint 2013 by Andrew Connell - SPTechCon
Building Apps for SharePoint 2013 by Andrew Connell - SPTechConBuilding Apps for SharePoint 2013 by Andrew Connell - SPTechCon
Building Apps for SharePoint 2013 by Andrew Connell - SPTechCon
 
70-534: ARCHITECTING MICROSOFT AZURE SOLUTIONS
70-534: ARCHITECTING MICROSOFT AZURE SOLUTIONS70-534: ARCHITECTING MICROSOFT AZURE SOLUTIONS
70-534: ARCHITECTING MICROSOFT AZURE SOLUTIONS
 
O365Con18 - PowerApps build custom forms for SharePoint with Azure Maps - Bra...
O365Con18 - PowerApps build custom forms for SharePoint with Azure Maps - Bra...O365Con18 - PowerApps build custom forms for SharePoint with Azure Maps - Bra...
O365Con18 - PowerApps build custom forms for SharePoint with Azure Maps - Bra...
 
Discover Google Firebase Platform
Discover Google Firebase PlatformDiscover Google Firebase Platform
Discover Google Firebase Platform
 

Viewers also liked

作一個僕人般的領袖,還是領袖般的僕人?
作一個僕人般的領袖,還是領袖般的僕人?作一個僕人般的領袖,還是領袖般的僕人?
作一個僕人般的領袖,還是領袖般的僕人?C J Yang
 
[SMCFI] My Personal Response to God
[SMCFI]  My Personal Response to God[SMCFI]  My Personal Response to God
[SMCFI] My Personal Response to GodLouie Giray
 
Secured Options - How to Invest Small Amounts of Money Wisely
Secured Options - How to Invest Small Amounts of Money WiselySecured Options - How to Invest Small Amounts of Money Wisely
Secured Options - How to Invest Small Amounts of Money WiselySecuredoptions
 
온라인바둑 ''SX797.COM'' 개경주주소
온라인바둑 ''SX797.COM'' 개경주주소온라인바둑 ''SX797.COM'' 개경주주소
온라인바둑 ''SX797.COM'' 개경주주소ghsiudfui
 
Untitled presentation
Untitled presentationUntitled presentation
Untitled presentationlarrymgaye
 
Copia brasao
Copia brasaoCopia brasao
Copia brasaoMark Vaz
 
Producción Publicitaria
Producción PublicitariaProducción Publicitaria
Producción Publicitariaaguirrealma0120
 
โทรศัพท์เคลื่อนที่(ณรังรอง+ณิชารีย์)402
โทรศัพท์เคลื่อนที่(ณรังรอง+ณิชารีย์)402โทรศัพท์เคลื่อนที่(ณรังรอง+ณิชารีย์)402
โทรศัพท์เคลื่อนที่(ณรังรอง+ณิชารีย์)402Narangrong Manachit
 
The rights of the child
The rights of  the childThe rights of  the child
The rights of the childMarilyn Snider
 
Apakah semua game memiliki
Apakah semua game memilikiApakah semua game memiliki
Apakah semua game memilikikosongsaja
 
Study guide
Study guideStudy guide
Study guideljclark
 
Intro to Permaculture - Home Orchard Society 2016
Intro to Permaculture - Home Orchard Society 2016Intro to Permaculture - Home Orchard Society 2016
Intro to Permaculture - Home Orchard Society 2016homeorchardsociety
 
Regenerative Agriculture for small scale farmers in the sub-humid tropics
Regenerative Agriculture for small scale farmers in the sub-humid tropicsRegenerative Agriculture for small scale farmers in the sub-humid tropics
Regenerative Agriculture for small scale farmers in the sub-humid tropicsFMNR Hub
 
Unit 1 WJEC unseen poetry higher - past questions
Unit 1  WJEC unseen poetry higher - past questionsUnit 1  WJEC unseen poetry higher - past questions
Unit 1 WJEC unseen poetry higher - past questionsEmma Sinclair
 

Viewers also liked (20)

Agents Needed
Agents NeededAgents Needed
Agents Needed
 
作一個僕人般的領袖,還是領袖般的僕人?
作一個僕人般的領袖,還是領袖般的僕人?作一個僕人般的領袖,還是領袖般的僕人?
作一個僕人般的領袖,還是領袖般的僕人?
 
[SMCFI] My Personal Response to God
[SMCFI]  My Personal Response to God[SMCFI]  My Personal Response to God
[SMCFI] My Personal Response to God
 
Usa 2006
Usa 2006Usa 2006
Usa 2006
 
Secured Options - How to Invest Small Amounts of Money Wisely
Secured Options - How to Invest Small Amounts of Money WiselySecured Options - How to Invest Small Amounts of Money Wisely
Secured Options - How to Invest Small Amounts of Money Wisely
 
온라인바둑 ''SX797.COM'' 개경주주소
온라인바둑 ''SX797.COM'' 개경주주소온라인바둑 ''SX797.COM'' 개경주주소
온라인바둑 ''SX797.COM'' 개경주주소
 
Ewrt 30 class 2
Ewrt 30 class 2Ewrt 30 class 2
Ewrt 30 class 2
 
Untitled presentation
Untitled presentationUntitled presentation
Untitled presentation
 
Copia brasao
Copia brasaoCopia brasao
Copia brasao
 
Producción Publicitaria
Producción PublicitariaProducción Publicitaria
Producción Publicitaria
 
โทรศัพท์เคลื่อนที่(ณรังรอง+ณิชารีย์)402
โทรศัพท์เคลื่อนที่(ณรังรอง+ณิชารีย์)402โทรศัพท์เคลื่อนที่(ณรังรอง+ณิชารีย์)402
โทรศัพท์เคลื่อนที่(ณรังรอง+ณิชารีย์)402
 
The rights of the child
The rights of  the childThe rights of  the child
The rights of the child
 
Apakah semua game memiliki
Apakah semua game memilikiApakah semua game memiliki
Apakah semua game memiliki
 
Study guide
Study guideStudy guide
Study guide
 
CONSTRUCTION WASTE RECYCLING
CONSTRUCTION WASTE RECYCLINGCONSTRUCTION WASTE RECYCLING
CONSTRUCTION WASTE RECYCLING
 
Txt refelxiv
Txt refelxivTxt refelxiv
Txt refelxiv
 
Intro to Permaculture - Home Orchard Society 2016
Intro to Permaculture - Home Orchard Society 2016Intro to Permaculture - Home Orchard Society 2016
Intro to Permaculture - Home Orchard Society 2016
 
Regenerative Agriculture for small scale farmers in the sub-humid tropics
Regenerative Agriculture for small scale farmers in the sub-humid tropicsRegenerative Agriculture for small scale farmers in the sub-humid tropics
Regenerative Agriculture for small scale farmers in the sub-humid tropics
 
Odontologia preventiva 08
Odontologia preventiva 08Odontologia preventiva 08
Odontologia preventiva 08
 
Unit 1 WJEC unseen poetry higher - past questions
Unit 1  WJEC unseen poetry higher - past questionsUnit 1  WJEC unseen poetry higher - past questions
Unit 1 WJEC unseen poetry higher - past questions
 

Similar to Widgets neil

Deep dive into share point framework webparts
Deep dive into share point framework webpartsDeep dive into share point framework webparts
Deep dive into share point framework webpartsPrabhu Nehru
 
Dart Past Your Competition by Getting Your Digital Experience into Market Fas...
Dart Past Your Competition by Getting Your Digital Experience into Market Fas...Dart Past Your Competition by Getting Your Digital Experience into Market Fas...
Dart Past Your Competition by Getting Your Digital Experience into Market Fas...Perficient, Inc.
 
How to build a Whatsapp clone in 2 hours
How to build a Whatsapp clone in 2 hoursHow to build a Whatsapp clone in 2 hours
How to build a Whatsapp clone in 2 hoursJane Chung
 
How to build a Whatsapp clone in 2 hours
How to build a Whatsapp clone in 2 hoursHow to build a Whatsapp clone in 2 hours
How to build a Whatsapp clone in 2 hoursOursky
 
WebWorks Development for BlackBerry PlayBook and Smartphones
WebWorks Development for BlackBerry PlayBook and SmartphonesWebWorks Development for BlackBerry PlayBook and Smartphones
WebWorks Development for BlackBerry PlayBook and SmartphonesKyle McInnes
 
Application Lifecycle Management
Application Lifecycle ManagementApplication Lifecycle Management
Application Lifecycle ManagementAmazon Web Services
 
What's new in Portal and WCM 8.5
What's new in Portal and WCM 8.5What's new in Portal and WCM 8.5
What's new in Portal and WCM 8.5Vinayak Tavargeri
 
Integrate Applications into IBM Connections Cloud and On Premises (AD 1632)
Integrate Applications into IBM Connections Cloud and On Premises (AD 1632)Integrate Applications into IBM Connections Cloud and On Premises (AD 1632)
Integrate Applications into IBM Connections Cloud and On Premises (AD 1632)TIMETOACT GROUP
 
NIC - Windows Azure Pack - Level 300
NIC - Windows Azure Pack - Level 300NIC - Windows Azure Pack - Level 300
NIC - Windows Azure Pack - Level 300Kristian Nese
 
Appcelerator’s Cocoafish Acquisition and the Future of the Mobile Cloud
Appcelerator’s Cocoafish Acquisition and the  Future of the Mobile Cloud Appcelerator’s Cocoafish Acquisition and the  Future of the Mobile Cloud
Appcelerator’s Cocoafish Acquisition and the Future of the Mobile Cloud Axway Appcelerator
 
Webdev battacherjee
Webdev battacherjeeWebdev battacherjee
Webdev battacherjeeRavingTiger
 
Platform update and super apps ON BB App World
Platform update and super apps ON BB App World Platform update and super apps ON BB App World
Platform update and super apps ON BB App World Prashant Singh
 
Developing Apps for SharePoint 2013
Developing Apps for SharePoint 2013Developing Apps for SharePoint 2013
Developing Apps for SharePoint 2013SPC Adriatics
 
SRV312 DevOps on AWS: Building Systems to Deliver Faster
SRV312 DevOps on AWS: Building Systems to Deliver FasterSRV312 DevOps on AWS: Building Systems to Deliver Faster
SRV312 DevOps on AWS: Building Systems to Deliver FasterAmazon Web Services
 
BlackBerry WebWorks
BlackBerry WebWorksBlackBerry WebWorks
BlackBerry WebWorksJosue Bustos
 
SharePoint 2013 App Provisioning Models
SharePoint 2013 App Provisioning ModelsSharePoint 2013 App Provisioning Models
SharePoint 2013 App Provisioning ModelsShailen Sukul
 
"BlackBerry Webworks : Apps for The Smartphone and Tablet"
"BlackBerry Webworks : Apps for The Smartphone and Tablet""BlackBerry Webworks : Apps for The Smartphone and Tablet"
"BlackBerry Webworks : Apps for The Smartphone and Tablet"Software Park Thailand
 

Similar to Widgets neil (20)

Deep dive into share point framework webparts
Deep dive into share point framework webpartsDeep dive into share point framework webparts
Deep dive into share point framework webparts
 
Dart Past Your Competition by Getting Your Digital Experience into Market Fas...
Dart Past Your Competition by Getting Your Digital Experience into Market Fas...Dart Past Your Competition by Getting Your Digital Experience into Market Fas...
Dart Past Your Competition by Getting Your Digital Experience into Market Fas...
 
BlackBerry WebWorks
BlackBerry WebWorksBlackBerry WebWorks
BlackBerry WebWorks
 
How to build a Whatsapp clone in 2 hours
How to build a Whatsapp clone in 2 hoursHow to build a Whatsapp clone in 2 hours
How to build a Whatsapp clone in 2 hours
 
How to build a Whatsapp clone in 2 hours
How to build a Whatsapp clone in 2 hoursHow to build a Whatsapp clone in 2 hours
How to build a Whatsapp clone in 2 hours
 
Bb jde kirkup
Bb jde kirkupBb jde kirkup
Bb jde kirkup
 
WebWorks Development for BlackBerry PlayBook and Smartphones
WebWorks Development for BlackBerry PlayBook and SmartphonesWebWorks Development for BlackBerry PlayBook and Smartphones
WebWorks Development for BlackBerry PlayBook and Smartphones
 
Application Lifecycle Management
Application Lifecycle ManagementApplication Lifecycle Management
Application Lifecycle Management
 
What's new in Portal and WCM 8.5
What's new in Portal and WCM 8.5What's new in Portal and WCM 8.5
What's new in Portal and WCM 8.5
 
Booting up with polymer
Booting up with polymerBooting up with polymer
Booting up with polymer
 
Integrate Applications into IBM Connections Cloud and On Premises (AD 1632)
Integrate Applications into IBM Connections Cloud and On Premises (AD 1632)Integrate Applications into IBM Connections Cloud and On Premises (AD 1632)
Integrate Applications into IBM Connections Cloud and On Premises (AD 1632)
 
NIC - Windows Azure Pack - Level 300
NIC - Windows Azure Pack - Level 300NIC - Windows Azure Pack - Level 300
NIC - Windows Azure Pack - Level 300
 
Appcelerator’s Cocoafish Acquisition and the Future of the Mobile Cloud
Appcelerator’s Cocoafish Acquisition and the  Future of the Mobile Cloud Appcelerator’s Cocoafish Acquisition and the  Future of the Mobile Cloud
Appcelerator’s Cocoafish Acquisition and the Future of the Mobile Cloud
 
Webdev battacherjee
Webdev battacherjeeWebdev battacherjee
Webdev battacherjee
 
Platform update and super apps ON BB App World
Platform update and super apps ON BB App World Platform update and super apps ON BB App World
Platform update and super apps ON BB App World
 
Developing Apps for SharePoint 2013
Developing Apps for SharePoint 2013Developing Apps for SharePoint 2013
Developing Apps for SharePoint 2013
 
SRV312 DevOps on AWS: Building Systems to Deliver Faster
SRV312 DevOps on AWS: Building Systems to Deliver FasterSRV312 DevOps on AWS: Building Systems to Deliver Faster
SRV312 DevOps on AWS: Building Systems to Deliver Faster
 
BlackBerry WebWorks
BlackBerry WebWorksBlackBerry WebWorks
BlackBerry WebWorks
 
SharePoint 2013 App Provisioning Models
SharePoint 2013 App Provisioning ModelsSharePoint 2013 App Provisioning Models
SharePoint 2013 App Provisioning Models
 
"BlackBerry Webworks : Apps for The Smartphone and Tablet"
"BlackBerry Webworks : Apps for The Smartphone and Tablet""BlackBerry Webworks : Apps for The Smartphone and Tablet"
"BlackBerry Webworks : Apps for The Smartphone and Tablet"
 

More from RavingTiger

Credit controlanddebtmanagementpolicy
Credit controlanddebtmanagementpolicyCredit controlanddebtmanagementpolicy
Credit controlanddebtmanagementpolicyRavingTiger
 
How to use the public folder
How to use the public folderHow to use the public folder
How to use the public folderRavingTiger
 

More from RavingTiger (8)

Credit controlanddebtmanagementpolicy
Credit controlanddebtmanagementpolicyCredit controlanddebtmanagementpolicy
Credit controlanddebtmanagementpolicy
 
Top secret
Top secretTop secret
Top secret
 
How to use the public folder
How to use the public folderHow to use the public folder
How to use the public folder
 
Mvs mcmanus
Mvs mcmanusMvs mcmanus
Mvs mcmanus
 
Keynote lessard
Keynote lessardKeynote lessard
Keynote lessard
 
Bb push sapra
Bb push sapraBb push sapra
Bb push sapra
 
Wk2 questions
Wk2 questionsWk2 questions
Wk2 questions
 
Wk3 questions
Wk3 questionsWk3 questions
Wk3 questions
 

Recently uploaded

Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentationphoebematthew05
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 

Recently uploaded (20)

Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentation
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 

Widgets neil

  • 1. Introduction to BlackBerry Widgets Tim Neil Manager, Development Tools
  • 2. What are BlackBerry Widgets? • Based off of the W3C widget specification as standalone applications that are entirely created with standard web technology • BlackBerry® widgets leverage BlackBerry API’s in a secure manageable container • Same distribution/management model as native applications and can be distributed through BlackBerry App World™ • Will be available in an upcoming version of the BlackBerry Operating System
  • 3. What are BlackBerry Widgets? • User interface is entirely authored in HTML/CSS • Application logic is written in JavaScript with access to BlackBerry Widget API extensions • Access to Gears API’s for multi-threading, local storage via SQLite and Geolocation • Access to SD Card, PIM, native applications, data push and more • Packaged as a ZIP archive and converted into a BlackBerry Widget via using the BlackBerry Widget SDK
  • 5. BlackBerry Widget API’s 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, etc.
  • 6. BlackBerry Widget API’s Application Launcher – Invoke native apps with data, Invoke 3rd party Java® apps with data File IO – Read, write, traverse local files on eMMC and SDCard System Properties – Change home screen icon, background etc. User Interface – System Dialogs, Dynamic Menu items Utilities – Parsing URL’s, BlobToString, Generate unique ID, etc.
  • 7. Some Example JavaScript <script type="text/javascript"> // Create our Appointment var newAppt = new blackberry.pim.Appointment(); newAppt.location = "Your office"; newAppt.summary = "Talk about new project"; newAppt.freeBusy = blackberry.pim.Appointment.FREE; // Create our hour time slot var start = new Date(); newAppt.start = start; var end = start.setHours(start.getHours() + 1); newAppt.end = end; // Create Attendee var attendees = new Array(); var onlyAttendee = new blackberry.pim.Attendee(); onlyAttendee.address = "john@foo.com"; onlyAttendee.type = blackberry.pim.Attendee.INVITED; attendees.push(onlyAttendee); // Save Appointment newAppt.attendees = attendees; newAppt.save(); </script>
  • 8. BlackBerry Widget Packager Standalone command line utility which is part of the BlackBerry Widget SDK for packaging your Widget • Input: Widget archive • Output: Packaged BlackBerry Widget Integrated into BlackBerry Web Plug-in Tools • Widget plug-ins available in both Microsoft® Visual Studio® 2008 and in Eclipse® • No Debugging support available in first Beta Signs your application with a BlackBerry Code Signing key
  • 9. BlackBerry Widget Security Model How to secure your BlackBerry Widget
  • 10. BlackBerry Widget Security Overview • BlackBerry Widgets must be signed with a Research In Motion (RIM) code signing key • The same access control policies can be applied to Widgets as can be applied to native applications • Web resources outside of the widget can be pulled in from external sources as long as those sources match the white list provided with your widget • Widget JavaScript API’s are only provided in a BlackBerry Widget, and not in the BlackBerry® Browser
  • 11. White Listing Domains • The core to a BlackBerry widget is the config.xml file based on the W3C specification for widgets • This configuration document specifies many things like the name, author, description, version, icon etc for the widget • It also contains an area where you list domains that will be white listed so that content from those domains can be pulled into the widget • Comparing a URL for compliance is based on the Same Origin policy rules
  • 12. Allowing Access To API’s • Allowing access to Widget JavaScript API’s must also be declared in the config.xml file • This is done with the <feature> element • For each API you wish to use, there is an associated feature id that must be specified in your configuration • Outside domains can access widget API’s if they have been properly assigned in the white list
  • 13. Last Mile Security • Always follow proper security practices when bringing in outside content into your widget • i.e. Content from only trusted sources, and it is valuable to SSL secure the connection for any man in the middle attacks • A user or Corporate Administrator can set security policies for each widget to specify which functionality they will allow that application to access
  • 14. Time For a Demo Let’s Take a look at BlackBerry Widgets
  • 15. Custom BlackBerry Widget API Extensions • RIM will continue to add new BlackBerry Widget API’s. Most will not require new OS versions to be used • As a Java developer you can create your own custom JavaScript extension to package with your widget • Wrap any of the BlackBerry API’s by implementing the provided JavaScript interfaces • Package your BlackBerry Widget API extension in the widget archive to be distributed with your application
  • 16. Digging Deeper with BlackBerry Widgets Some under the hood details
  • 17. Getting into the Nuts and Bolts • Packaged as a Java application utilizing the new Browser Field to render the content and run JavaScript • Could be considered a “Hybrid” Application • Web assets of the widget are left untouched and are encapsulated as embedded resources • BlackBerry Widget API’s are added to the nested Browser Field NOTE: Widget JavaScript API’s are not accessible in the BlackBerry Browser. Only in a widget
  • 18. Summary • BlackBerry Widgets are completely authored with web technologies • HTML, JavaScript, CSS, etc • Widgets run on BlackBerry® Device Software v5.0 and can be distributed through BlackBerry App World • Are generated using the BlackBerry Widget SDK • Tooling integration with Eclipse and Microsoft Visual Studio is now available • JavaScript debugging support coming soon • Custom JavaScript extensions will be supported soon, but they are not available in the current available release
  • 19. Another way to give us your feedback… • There is an online survey for mobile web application developers on Widget APIs: • Which APIs are you most interested in? • Which ones are the most / least important to you? • Which other Widget APIs would you like us to provide? • Why should I complete this survey? • Opportunity to directly give us feedback about your Widget API requirements • Participants receive a gift card ($$) for participation • Survey URL: _________________________
  • 20. Tim Neil – Manager, Development Tools Thank You