Developing Astonishing Apps Using the BlackBerry 10 Native SDK and Cascades UI Framework

Overview

This course includes everything developers need to know in order to get started using the BlackBerry 10 Native Software Development Kit and Cascades UI framework.

The course begins with a review of C++ fundamentals, followed by an overview of the BlackBerry 10 platform, Qt, and the Cascades framework. Developers then get the opportunity to explore a range of specific topics, including but not limited to panes, components, lists, menus, events, sensors, audio/video, networking, and cameras.

The course concludes with topics on internationalization, payment services, and deployment/publishing considerations.

Who should attend?

Experienced C/C++ application developers.
Qt knowledge is an asset but is not required.

Course objectives

Throughout this course, developers will:

  • familiarize themselves with the new BlackBerry 10 platform
  • identify the appropriate tools and resources necessary for creating a native BlackBerry 10 application
  • use several different layouts to organize the UI of an application
  • use C++ to create and modify Cascades objects
  • learn how to communicate between C++ and QML
  • create, import, and use a custom pane within an application
  • create and use animations
  • create and use custom controls to encapsulate reusable pieces of an application
  • use ListViews and data models to build scrollable lists
  • hook up signals to custom slots, interpret custom touch events on a component, and modify the application's UI when receiving a touch event
  • allow the application to auto-rotate and modify or load new UI elements to the device orientation
  • use actions and a custom dialog to create new options for the user
  • play both built-in system sounds and bundled audio files
  • store and persist objects in QSettings to maintain the state of an application
  • populate some of the application's interface dynamically based on live data retrieved from the internet alongside a helper class which will request, consume, and parse data
  • create an in-application purchase
  • replace and update translation tags, and change the locale on the device

Course modules and topics

Module 1 - Introduction to BlackBerry 10 Mobile Development

  • Overview of the current mobile ecosystem
  • BlackBerry development options and tools
  • QNX Momentics IDE
  • Launch and build configurations
  • BlackBerry devices and simulators
  • Debug tokens

Module 2 - Review of C++ and Memory Management

  • Primitives and composite datatypes
  • Typedef and composite structures
  • The stack and the heap
  • Pointers
  • Classes and objects
  • Namespaces
  • Arrays

Module 3 - Introduction to Qt and Cascades

  • Overview of Cascades and Qt
  • Designing UI with QML and C++
  • Basic UI components
  • Signals and slots
  • QML Properties
  • bar-descriptor.xml
  • Adding a background image
  • Re-sizing and positioning objects
  • Stack layout
  • Padding and margins
  • Space quotas
  • Dock layout
  • Absolute layout
  • Qt object model
  • Guarded pointers
  • Loading QML
  • QML and C++ communication
  • Common Qt objects
  • Debugging with Qt and QML

Module 4 - Components

  • Introduction to components
  • Text components
  • TextStyle
  • ImageView
  • RadioGroup
  • DropDown
  • Segmented Control
  • Divider
  • ToggleButton
  • Slider
  • ProgressIndicator
  • DateTimePicker
  • ActivityIndicator
  • WebView
  • ListView
  • ScrollView
  • Themes
  • Transformations
  • Implicit, Explicit, and Group Animations
  • QML and C++ Custom Components
  • Hybrid custom components
  • Dynamic components

Module 5 - Panes

  • Pages
  • Action menus and application menus
  • Sheets
  • Tabbed pane
  • Tabbed overflow menus
  • Navigation Panes

Module 6 - Lists and Data Models

  • Data model-view design
  • Index paths
  • Data model interface
  • Creating a data model
  • XML data model
  • Group data model
  • Array data model
  • List data model
  • List view
  • Item customization
  • Default and custom list items
  • Multiple selection in ListViews

Module 7 - BlackBerry 10 Design

  • Designing a BlackBerry 10 user interface
  • BlackBerry Flow
  • Best practices

Module 8 - Navigator, Touch, and Orientation Events

  • Navigator events
  • Touch events
  • Orientation support and notifications
  • Layout options

Module 9 - Local Storage

  • File-system access
  • Paths vs. URLs
  • App, home, and shared directory
  • QFile
  • QSettings
  • Creating a database
  • QSqlDatabase
  • SqlDataAccess
  • SqlConnection

Module 10 - Networking

  • Networking considerations
  • BSD sockets
  • Qt networking module
  • Qt networking objects
  • Getting local information
  • TCP sockets
  • HTTP requests
  • Network request authentication
  • Web views in QML and JavaScript
  • Third party libraries

Module 11 - Audio and Video

  • Available audio and video technologies
  • Multimedia render (MMRenderer)
  • Using the Multimedia Renderer audio
  • Using the Multimedia Renderer video
  • Multimedia Renderer and QML
  • System sounds
  • QNX Sound Architecture (QSA)
  • OpenAL with ALUT
  • OpenAL concepts

Module 12 - Sensors

  • Sensors and threads
  • BlackBerry Platform Services
  • Sensor BPS events
  • Available sensors
  • Using the sensor service
  • Handling sensor service events
  • QThread
  • AbstractBpsEventHandler

Module 13 - Cameras

  • Camera usage
  • Camera library
  • Camera library usage
  • Choosing cameras
  • Connecting to the camera
  • Camera features
  • Get camera information
  • Display view finder
  • Foreign window
  • Setting up view finder in QML and C++
  • View finder preview
  • Taking a snapshot
  • Shutter callback
  • Image callback
  • Shutting down

Module 14 - Dialogs

  • System dialogs
  • Prompts
  • Credentials
  • Toasts
  • Custom dialogs

Module 15 - Payment Services

  • Selling in-app items
  • Types of digital goods
  • Licensing
  • Using payment services
  • BlackBerry Vendor Portal
  • Payment services testing
  • Initiating a purchase
  • Checking for existing purchases
  • Subscriptions

Module 16 - Internationalization

  • Internationalization with Cascades
  • Enabling internationalization
  • Flagging quoted text
  • Translation files
  • Getting locale

Module 17 - Deployment

  • BlackBerry Vendor Portal
  • Publishing an application

Module 18 - Adobe and the Cascades Exporter Plug-in

  • Installing the Plug-in
  • Usage
  • Exporting layers
  • Rescaling
  • Developer view
  • 9-slice image
  • Importing into Cascades