qnx, c/c++, qt, cascades, html5… so what’s now blackberry 10 application development? by kamel...

49
Introduction to BlackBerry 10 Apps Development KÁMEL LAJILI [email protected], @KLAJILI

Upload: codemotion

Post on 17-May-2015

797 views

Category:

Technology


2 download

DESCRIPTION

This session is intended to introduce you to the different BlackBerry 10 SDKs showing different ways of developing a mobile app. For example through a pure C/C++ approach very convenient for Games and Libs developers. Or through a more comfortable way using a high level application development Framework supporting Qt and the Blackberry own Cascades UI framework. We will also show you how powerful the BlackBerry 10 mobile web development platform is.

TRANSCRIPT

Page 1: QNX, C/C++, Qt, Cascades, HTML5… So what’s now BlackBerry 10 application development? By Kamel Lajili

Introduction to BlackBerry 10 Apps Development

KÁMEL LAJILI

[email protected], @KLAJILI

Page 2: QNX, C/C++, Qt, Cascades, HTML5… So what’s now BlackBerry 10 application development? By Kamel Lajili

Re-designed. Re-engineered. Re-invented.

Page 3: QNX, C/C++, Qt, Cascades, HTML5… So what’s now BlackBerry 10 application development? By Kamel Lajili
Page 4: QNX, C/C++, Qt, Cascades, HTML5… So what’s now BlackBerry 10 application development? By Kamel Lajili

Integrated Social Beautiful

Page 5: QNX, C/C++, Qt, Cascades, HTML5… So what’s now BlackBerry 10 application development? By Kamel Lajili

BlackBerry 10 SDKs

C++/Qt

Cascades ActionScript

Adobe® AIR® HTML5 BlackBerry®

WebWorks™

C/C++

Native SDK

Java

Android™

Runtime

Page 6: QNX, C/C++, Qt, Cascades, HTML5… So what’s now BlackBerry 10 application development? By Kamel Lajili

BlackBerry 10 SDK Platform Support

Page 7: QNX, C/C++, Qt, Cascades, HTML5… So what’s now BlackBerry 10 application development? By Kamel Lajili

THE QNX

NEUTRINO RTOS

Page 8: QNX, C/C++, Qt, Cascades, HTML5… So what’s now BlackBerry 10 application development? By Kamel Lajili

Questionable reliability

Traditional monolithic architecture

• Model for most OSes available today

– Windows, Linux, Android

• OS contains tremendous amount of

functionality with unrestricted CPU privileges

• A fault in one OS component can damage any

other, leading to system-wide corruption

– System reliability is as good as your worst

driver developer

– Reboot is only recovery possible

App App

App App

File system

Driver Network stack

Monolithic OS

App App

Multimedia stack

Page 9: QNX, C/C++, Qt, Cascades, HTML5… So what’s now BlackBerry 10 application development? By Kamel Lajili

Mission-critical reliability

QNX microkernel architecture

• Microkernel minimizes execution with

unrestricted “kernel” CPU privileges

• All processes run in isolated process space

– Includes drivers, file systems, stacks

– All QNX processes are “applications”

• Faults are contained so that they only affect the

faulty component

– Failed components can be dynamically

recovered while the system continues to

operate

App App

App App

File system

Driver Network stack

Micro- kernel

App App

Multimedia stack

Page 11: QNX, C/C++, Qt, Cascades, HTML5… So what’s now BlackBerry 10 application development? By Kamel Lajili

Integrated Social Beautiful

Page 12: QNX, C/C++, Qt, Cascades, HTML5… So what’s now BlackBerry 10 application development? By Kamel Lajili

Apps can use the Invocation Framework to improve user’s flow

• Launching Core and 3rd party Apps

• Registering URIs and MIME types

• Cards and content viewers

13

Application Guidelines Invocation Framework

Page 13: QNX, C/C++, Qt, Cascades, HTML5… So what’s now BlackBerry 10 application development? By Kamel Lajili

Invocation Framework Cards

Embeds a Screen from Target

Instead of launching the full app

No Active Frame presence

Supports peeking

A leap ahead of the competition

BlackBerry 10 Flow at its best!

A Card maintains its own process and security context

14

Page 14: QNX, C/C++, Qt, Cascades, HTML5… So what’s now BlackBerry 10 application development? By Kamel Lajili

Invocation Framework Card Styles

Three styles

Picker

Composer

Previewer

Determines

Peek behavior

Transition style

15

Page 15: QNX, C/C++, Qt, Cascades, HTML5… So what’s now BlackBerry 10 application development? By Kamel Lajili

Integrated Social Beautiful

Page 16: QNX, C/C++, Qt, Cascades, HTML5… So what’s now BlackBerry 10 application development? By Kamel Lajili

Share Framework

17

Page 17: QNX, C/C++, Qt, Cascades, HTML5… So what’s now BlackBerry 10 application development? By Kamel Lajili

BlackBerry 10 Foundations Architecture

Native & HTML5 Apps

HTML/CSS

JavaScript

WebKit JavaScript

C++

Cascades

QML

QNX Kernel

Platform APIs

Android Apps Adobe AIR Apps

Java

Android Runtime

.apk

Action Script

AIR Runtime

.swf

Network Storage

Qt (C++) BPS (C)

Audio/Video Graphics Push i18n …

Open GL

Open AL

C/C++

Page 18: QNX, C/C++, Qt, Cascades, HTML5… So what’s now BlackBerry 10 application development? By Kamel Lajili

THE NATIVE SDK

Page 19: QNX, C/C++, Qt, Cascades, HTML5… So what’s now BlackBerry 10 application development? By Kamel Lajili

Native SDK OSS & Developer Experience

Page 20: QNX, C/C++, Qt, Cascades, HTML5… So what’s now BlackBerry 10 application development? By Kamel Lajili

Native SDK High Performance Gaming

Page 21: QNX, C/C++, Qt, Cascades, HTML5… So what’s now BlackBerry 10 application development? By Kamel Lajili

Native SDK Open Industry Standards

Page 22: QNX, C/C++, Qt, Cascades, HTML5… So what’s now BlackBerry 10 application development? By Kamel Lajili

Native SDK Open Source Support

Page 23: QNX, C/C++, Qt, Cascades, HTML5… So what’s now BlackBerry 10 application development? By Kamel Lajili

THE CASCADES SDK

Page 24: QNX, C/C++, Qt, Cascades, HTML5… So what’s now BlackBerry 10 application development? By Kamel Lajili

Integrated Social Beautiful

Page 25: QNX, C/C++, Qt, Cascades, HTML5… So what’s now BlackBerry 10 application development? By Kamel Lajili

Native SDK OSS & Developer Experience

Page 26: QNX, C/C++, Qt, Cascades, HTML5… So what’s now BlackBerry 10 application development? By Kamel Lajili

Mature C++ application framework

Good APIs (memory mgmt, Garded Pointers, Localization)

Signals and Slots

Many help classes

QML

QtGui Cascades

Page 27: QNX, C/C++, Qt, Cascades, HTML5… So what’s now BlackBerry 10 application development? By Kamel Lajili

60 FPS!

Page 28: QNX, C/C++, Qt, Cascades, HTML5… So what’s now BlackBerry 10 application development? By Kamel Lajili

App logic

Photos by rumpleteaser and whologwy Flickr

Cascades

UI in separate thread 28°

Page 29: QNX, C/C++, Qt, Cascades, HTML5… So what’s now BlackBerry 10 application development? By Kamel Lajili

Scene Graph

Root

Container

Text: “Hello World”

Container

Hello World

RotationZ

Scale

Opacity

Page 30: QNX, C/C++, Qt, Cascades, HTML5… So what’s now BlackBerry 10 application development? By Kamel Lajili

Events

Qt uses signals & slots paradigm

Cascades events are mapped to Qt signals

Page 31: QNX, C/C++, Qt, Cascades, HTML5… So what’s now BlackBerry 10 application development? By Kamel Lajili

You can choose!

No difference between UI created in QML or C++

They can be combined Typically, UI in QML and business logic in C++

QML supports JavaScript for signal handling

C++ QML

Page 32: QNX, C/C++, Qt, Cascades, HTML5… So what’s now BlackBerry 10 application development? By Kamel Lajili

import bb.cascades 1.0

Page {

content: Label {

text: "Hello World"

}

}

Cascades SDK Hello World

Page 33: QNX, C/C++, Qt, Cascades, HTML5… So what’s now BlackBerry 10 application development? By Kamel Lajili

Page* root = new Page;

Label* label = Label::create()

.text("Hello World");

root->setContent(label);

Application::instance()->setScene(root);

Cascades SDK Hello World

Page 34: QNX, C/C++, Qt, Cascades, HTML5… So what’s now BlackBerry 10 application development? By Kamel Lajili

Animations

Any Cascades UI element can be animated

Animations are “running” on the engine thread

Remember the client server setup?

Explicit & Implicit animations:

translation, rotation, scale, opacity, …

Page 35: QNX, C/C++, Qt, Cascades, HTML5… So what’s now BlackBerry 10 application development? By Kamel Lajili

Data Binding

SQL

XML

JSON

Anything

Page 36: QNX, C/C++, Qt, Cascades, HTML5… So what’s now BlackBerry 10 application development? By Kamel Lajili

• Tabs when content of relatively equal

importance.

Application Structure

• Drill-Down with back and peak to

structure content in a hierarchy.

Page 37: QNX, C/C++, Qt, Cascades, HTML5… So what’s now BlackBerry 10 application development? By Kamel Lajili

• List: Easy sort

and filter

Screen views

• Grid: Quick

display

• Free-Form:

Canvas • Content: Focus

on single items

Page 38: QNX, C/C++, Qt, Cascades, HTML5… So what’s now BlackBerry 10 application development? By Kamel Lajili

• Action Bar

Screen Structure

• Title Bar • Segmented

controls

Page 39: QNX, C/C++, Qt, Cascades, HTML5… So what’s now BlackBerry 10 application development? By Kamel Lajili

• Action Menu • Context Menu • Application Menu

Application Menus

Page 40: QNX, C/C++, Qt, Cascades, HTML5… So what’s now BlackBerry 10 application development? By Kamel Lajili

THE WEBWORKS SDK

Page 41: QNX, C/C++, Qt, Cascades, HTML5… So what’s now BlackBerry 10 application development? By Kamel Lajili

The Promise of Web Tech

44

Page 42: QNX, C/C++, Qt, Cascades, HTML5… So what’s now BlackBerry 10 application development? By Kamel Lajili

HTML5Test.com

45

http://html5test.com/compare/browser/bb07/rimtabletos20/bb10.html

Test your own smart phone at: http://html5test.com

Page 43: QNX, C/C++, Qt, Cascades, HTML5… So what’s now BlackBerry 10 application development? By Kamel Lajili

ringmark

46

The first vendor mobile

browser to pass ringmark

ring 1!

A web-based test suite for

capabilities that modern

mobile web apps require.

Test your own smart

phone at: http://rng.io

Ring 1 e.g. : Capabilities of building

2D games, music and video apps,

camera apps, etc…

Page 44: QNX, C/C++, Qt, Cascades, HTML5… So what’s now BlackBerry 10 application development? By Kamel Lajili

How did we do it?

47

• JavaScript/HTML/CSS Browser Application

• Framework for running Web code Web Platform

• Web rendering Engine, C++ WebKit

• QNX, system services BlackBerry 10 OS

Page 45: QNX, C/C++, Qt, Cascades, HTML5… So what’s now BlackBerry 10 application development? By Kamel Lajili

How to get there?

Web Assets WebWorks Tools BlackBerry Applications

Page 46: QNX, C/C++, Qt, Cascades, HTML5… So what’s now BlackBerry 10 application development? By Kamel Lajili

Remote Web Inspector

Best in class debugging solution.

Debug WebWorks applications on a simulator or device.

Optimize web applications.

49

Page 47: QNX, C/C++, Qt, Cascades, HTML5… So what’s now BlackBerry 10 application development? By Kamel Lajili

Ripple Mobile Emulator

Tool for mobile web testing Chrome extension Emulate BlackBerry device capabilities Package and Sign Supported Platform APIs:

WebWorks for BlackBerry 10 Apache Cordova / PhoneGap WebWorks WebWorks for Tablet OS

50

Page 48: QNX, C/C++, Qt, Cascades, HTML5… So what’s now BlackBerry 10 application development? By Kamel Lajili

51

Sencha Touch

BB10 Platform Partners

Page 49: QNX, C/C++, Qt, Cascades, HTML5… So what’s now BlackBerry 10 application development? By Kamel Lajili

Thank you

52

KÁMEL LAJILI

Sr. Application Development Consultant

[email protected]

@KLAJILI