blackberry 10, beta 2 sdk · blackberry 10, beta 2 sdk russell andrade – product manager anders...
TRANSCRIPT
BlackBerry 10, Beta 2 SDK
Russell Andrade – Product Manager Anders Larsson – Product Manager Suavek Zajac – Developer Relations
Agenda
1. Development Platform, C/C++ NDK, Tooling Make apps flow with the Invoke Framework Discover ways to connect via NFC Use system services Enhancements to the IDE
2. Cascades UI UI Improvements New Features and new Controls
3. Demos
2
Updated Documentation
Updated Microsites and Documents https://developer.blackberry.com/platforms/ndk
� https://developer.blackberry.com/cascades/ � https://developer.blackberry.com/native/
Follow the updated UX Guidelineshttps://developer.blackberry.com/ui
3
Part 1 – Platform, C/C++ NDK, Tooling Russell Andrade
New APIs and Tooling
C APIs Invoca,on Framework API NFC Cryptography Audio Manager Slogger2 No,fica,ons Manager
Invoca,on API Barcode processing Vibra,on control Copy and paste Video & Camera Loca,on No,fica,ons
Invoca,on Tooling PreGy Prin,ng of Qt objects Mul,-‐device support Faster Deploy Times
C++ APIs
IDE
Enable Application Interaction Leverage the platform!
Integrate with the OS and other applications Use Invoke APIs
6
Invoke I need to
open this .doc file.
Anyone?
I can open .doc
files
Invocation Framework
Invocation Framework
Enables delivery of invocations between end points Provides brokering scheme Provides a list of best fit targets for an invocation Access from C/C++ and Cascades
Notifications Manager
Several types of events may arise that require the application to notify the user. Some events require the user to respond and some don't. Each event can be mapped to one of these notification types: Simple LED Vibrate and Sound Toast messages Dialogs Unified Inbox Notifications
NFC Near Field Communication (NFC) is used for contactless communication between devices and tags/cards. Some of the use cases we will be able to support include: · Bluetooth / Wifi pairing, NFC based contact exchange · Reading and writing Tags / Smart Posters / Content Discovery · Contactless payment (VISA, Mastercard etc) · Physical/Logical access control · Ticketing (event, transit, parking etc.) Our NFC API covers • NDEF Message Reading and writing • Tag emulation • Tag reading and writing • Peer to peer connections
The API covers NDEF message reading and writing, tag emulation, tag reading and writing, and peer to peer connections. All of these could potentially be requested by multiple applications concurrently. The API covers NDEF message reading and writing, tag emulation, tag reading and writing, and peer to peer connections. All of these could potentially be requested by multiple applications concurrently.
Cryptography
Cer$com C APIs
Symmetric Encryp,on AES, DES, 3DES,RC2, RC4, RC5
Asymmetric Encryp,on RSA, ECIES
Key Agreement/Transport DH, ECDH, ECMQV, RSA
Digital Signatures ECDSA, ECQV, RSA, DSA, RSA-‐PSS, ECNR, ECPVS
Hash func,ons SHA-‐1, SHA-‐224, SHA-‐256, SHA-‐384, SHA-‐512, MD2, MD4, MD5, HMAC-‐SHA-‐1, HMAC-‐SHA-‐224, HMAC-‐SHA-‐256, HMAC-‐SHA-‐384, HMAC-‐SHA-‐512, HMAC-‐MD5, ANSI KDF, IEEE KDF1
Random Number Generator ANSI X9.62 RNG, FIPS 140-‐2, Hash_DRBG, HMAC_DRBG, CTR_DRBG
Audio Manager
The audio manager provides the following features:
Automatic Routing and Manual Routing Audio Stream Type Identification Audio Concurrency Policy Management Audio Device Monitoring and mounting (Headset, A2DP, HDMI etc.) The use of the audio manager is optional
Slogger 2
Slogger 2 is the new logging API that replaces the legacy slogger. Resolves many of the performance issues with the original slogger Provides seamless migration path for code that uses legacy slogger APIs Logs when interrupts are off. Capable of reliably merging multiple log buffers into chronological order
Preserves a copy of RAM log buffers on process crash or device reset
Avoid using original slogger APIs
Barcode Processing is a new API that was developed for encoding and decoding QR codes
Initiate barcode scanner which launches camera viewfinder Can scan bar and QR codes Convert codes into their string representation Display barcode
Barcode Scanner
Video and Camera
We support new C++ APIs to control camera settings and capture pictures and video. The primary use case is developers working on Augmented Reality type apps Instantiate a camera viewfinder preview Overlay content over it Take pictures Record video
Multi-device support
• Can specify multiple icons and splash screens to uploaded as assets • Selects different splash screens based on the resolution of the device • All assets are packaged in same bar
Pretty Printing
Faster Deploy Times • New op,miza,ons made to deployment ,mes
Part 2 – User Interface
Anders Larsson
Overview of updates in Beta2
UI look and feel improvements - ActionBar - Context Menu - Performance - … and lots of tweaks here and there
New features and controls - Tabs Compact mode and splats - List multiselect, gridlist - Sheets, Custom Dialogs - High level gestures - Application Menu - … and lots of small but very usefull additions
New samples and tutorials 19
TabbedPane improvements
20
Tab sidebar - two modes - Compact - Extracted Mode can be controlled using touch or APIs Allows quick tab navigation and peeking
TabbedPane splats
21
The classic BlackBerry splat can be used to indicate new content in tabs Can be combined with a number indicating how much new content that is available Easily controlled through C++ or QML
Context Menu improvements
22
Look and feel improvements Can now be accessed in one continouos drag movement Extracting elements in compact mode allows browsing through options Improved layouting for more ergonomic access
Feature Highlights
- List Improvements - High level gestures - Application Menu - Sheets and Custom Dialogs
List improvements
List improvements
The list has gone through a major refactoring behind the scenes Dedicated GridListLayout In the old beta a ”hack” using two level lists could achieve a grid list New solution is much more flexible Note: Old hack won’t work anymore! Multi Select Support Attaching a MultiSelectHandler enables multiselect in the list and helps you track the selection. The selection mechanism is automatically integrated with the context menu and actionbar
25
High level gestures
Built in gestures in Beta 2
GestureHandler base class Subclasses � TapHandler � DoubleTapHandler � LongPressHandler � PinchHandler
27
QML Example – Pinch handler
28
Container { id: gestureContainer gestureHandlers: [ PinchHandler { onPinchStart: {
// start up code (if needed) } onPinchUpdate: {
gestureContainer.scaleX = event.pinchRatio; gestureContainer.scaleY = event.pinchRatio; gestureContainer.rotationZ = event.rotation;
} onPinchEnd: {
// shutdown code (if needed) } ] }
Application Menu
Application Menu
Pulled down by swiping from the top Should mainly be used for rarely used
application actions such as settings and help
Can be disabled if the application don’t
want to use it (for this Beta only available through C++
APIs)
30
Sheets & Custom Dialogs
Sheets
A sheet breaks the current navigational flow. It contains a subflow that need to be finished before the original application flow can be resumed.
Examples: Pickers, Forms
32
Sheets usage
33
Page 1 Main application flow in NavigationPane
Page 2 Page 3
Sheet subflow. Must be finished before mainflow can be resumed. Sheets can contain a completely new navigation stack, including other sheets
Page 2a Page 2b
Back Back
Back
Sheet Opened Sheet Closed – return to Page 2
QML Example – Sheets
34
Page { … attachedObjects: [ Sheet { // sheets that can be launched from this page
id: mySheet Page { … } }
] … actions: [
… onTriggered: { mySheet.visible = true; // on some action, show the sheet
} } ] }
Custom Dialogs
Custom Dialogs can be used when an application need to display a custom modal dialog
Any content can be placed in the dialog The UI behind the dialog will be dimmed
out and cannot be interacted with Note: There are already a set of system dialogs with
a predefined look and feel available in bb::system::SystemDialog. These should be used when applicable.
35
QML Example – Custom Dialogs
36
Page { … attachedObjects: [ CustomDialog {
id: myDialog Container {… // some content
} }
] … actions: [ …
onTriggered: { myDialog.visible = true; // show the Custom Dialog
} ] }
Improved, updated and new examples!
Cascades Samples
Don’t forget to check out our new sample apps!
� Photo Bomber � Shows how to use the MultiMedia
Libray and the camera
� Bucket List � Shows multi select, JSON handling
and ActionSet handling
� Updated Cascades Cookbook � Examples of other new features
38
https://developer.blackberry.com/cascades/sampleapps/
3. Demos
Need more info ?
1. Check out our Na$ve website at : h8ps://developer.blackberry.com/pla?orms/ndk 2. Take a look at our support forums h8p://suppor?orums.blackberry.com/t5/Developer-‐Support-‐Forums/ct-‐p/blackberrydev
Thank you! Russell Andrade – Product Manager Anders Larsson – Product Manager Suavek Zajac – Developer Relations