Top Banner
Building Apps that Sense, Understand and Adapt JAM844 Ranbijay Kumar – BlackBerry Sean McVeigh – QNX September 26-27, 2013 1
60

JAM844 - Building Apps that Sense, Understand and Adapt

Apr 14, 2017

Download

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: JAM844 - Building Apps that Sense, Understand and Adapt

Building Apps that Sense, Understand and Adapt JAM844 Ranbijay Kumar – BlackBerry Sean McVeigh – QNX September 26-27, 2013

1

Page 2: JAM844 - Building Apps that Sense, Understand and Adapt

Sense

Understand

Adapt

Page 3: JAM844 - Building Apps that Sense, Understand and Adapt

BlackBerry 10 Experience

3

Adapt Sense

Understand

Page 4: JAM844 - Building Apps that Sense, Understand and Adapt

BlackBerry 10 Experience

4

Sense

Network Connectivity NFC

Location

Accessories

Orientation Displays

Touch

Microphone

Geofence Screens

Acceleration

Heading

Proximity Light

Holster

Smart Card

Page 5: JAM844 - Building Apps that Sense, Understand and Adapt

BlackBerry 10 Experience

5

Understand Contacts

Calendar

Email BBM SMS

Geocoding PIM Headless

Call Logs

Analytics

Analytics BlackBerry ID

Fused Sensors

Page 6: JAM844 - Building Apps that Sense, Understand and Adapt

BlackBerry 10 Experience

6

Adapt Active Frames

Cards

Connections

Peek Invocation

Adaptive UI 2nd Screens

Notifications Hub

Share

Hot Keys Accessibility

Text Filters

Battery

Page 7: JAM844 - Building Apps that Sense, Understand and Adapt

Let's Sense

7

Page 8: JAM844 - Building Apps that Sense, Understand and Adapt

Touch Interactions

Know when you’re touched Be sensitive to them

Use interactive controls

Take advantage of gestures

8

Page 9: JAM844 - Building Apps that Sense, Understand and Adapt

Location

Know where you are A pivotal event for apps

9

Page 10: JAM844 - Building Apps that Sense, Understand and Adapt

Location

10

Cell Tower WLAN GPS

Carrier Assisted Modes

Page 11: JAM844 - Building Apps that Sense, Understand and Adapt

Sensors

How are you holding it You are going too fast You’re off by 180 degrees Rollercoasters are awesome

11

Page 12: JAM844 - Building Apps that Sense, Understand and Adapt

Sensors

�  Accelerometer �  Acceleration in m/s/s (x,y,z)

�  Magnetometer �  Magnetic field in uT (x,y,z)

�  Gyroscope �  Angular velocity in rad/s (x,y,z)

�  RotationMatrix �  Rotation on x, y, z

�  Compass �  Degrees from north

12

Page 13: JAM844 - Building Apps that Sense, Understand and Adapt

Demo ARKick

13

Page 14: JAM844 - Building Apps that Sense, Understand and Adapt

Device Surroundings

It’s too bright, I cant see. Silence please. I know that face!

Don’t get too close, I bite.

14

Page 15: JAM844 - Building Apps that Sense, Understand and Adapt

Sensors

�  Proximity �  Distance in cm (or close/far)

�  Light �  Illumination in lux

�  Holster �  Holster detection

�  Microphone �  Audio intensity, waveform

�  Camera �  Face detection, surveillance

15

Page 16: JAM844 - Building Apps that Sense, Understand and Adapt

Demo Flip Shush SoundHound

16

Page 17: JAM844 - Building Apps that Sense, Understand and Adapt

Network Connectivity

Know your network

17

Page 18: JAM844 - Building Apps that Sense, Understand and Adapt

NFC

I like the sound of that tap! Get me the data.

18

Page 19: JAM844 - Building Apps that Sense, Understand and Adapt

Phone Calls

Detect cellular or VOIP calls When they get connected

And when they get disconnected

19

Page 20: JAM844 - Building Apps that Sense, Understand and Adapt

Accessories (Bluetooth/USB)

Sense input devices Gamepads, keyboards, mice

20

Page 21: JAM844 - Building Apps that Sense, Understand and Adapt

BlackBerry Balance

I am in Personal – Let's party I am in Work – Let's be serious

21

Page 22: JAM844 - Building Apps that Sense, Understand and Adapt

Headless Apps

�  Do I need to be headless �  Should I always run

�  Long Running Headless Apps �  Should I run on certain triggers

�  Trigger based headless apps

22

Page 23: JAM844 - Building Apps that Sense, Understand and Adapt

Headless Triggers

�  Port directed SMS �  Geofence Enter/Exit �  Device Startup �  Push Notifications �  more to come…

23

Page 24: JAM844 - Building Apps that Sense, Understand and Adapt

Let's Understand

24

Page 25: JAM844 - Building Apps that Sense, Understand and Adapt

Contacts

�  Create/Read/Update/Delete �  Find out recent activities �  Know when people change �  Find the right guy

25

Page 26: JAM844 - Building Apps that Sense, Understand and Adapt

Messages

�  Create/Read/Update/Delete email & SMS

�  Know when new ones arrive �  Find that conversation

26

Page 27: JAM844 - Building Apps that Sense, Understand and Adapt

Calendar

�  Create/Read/Update/Delete events �  Know when events change �  Search the database

27

Page 28: JAM844 - Building Apps that Sense, Understand and Adapt

BBM

�  Who else has my app? �  Who doesn’t have it yet? �  Read user profile

28

Page 29: JAM844 - Building Apps that Sense, Understand and Adapt

Phone Calls

�  Retrieve who called �  When did they call? �  When is a call being received? �  Augment the sense!

29

Page 30: JAM844 - Building Apps that Sense, Understand and Adapt

Network Connectivity

Should I transfer now? Are their better hotspots to connect to?

30

Page 31: JAM844 - Building Apps that Sense, Understand and Adapt

Demo Nobex

31

Page 32: JAM844 - Building Apps that Sense, Understand and Adapt

Geofence

Add meaning around locations “Truck 181 went off the grid”

32

Page 33: JAM844 - Building Apps that Sense, Understand and Adapt

Geocoding

Lat/Lon vs Addresses OR

Device vs Human

33

Page 34: JAM844 - Building Apps that Sense, Understand and Adapt

Demo Foursquare

34

Page 35: JAM844 - Building Apps that Sense, Understand and Adapt

Fused Sensors

Sensors are cool Fused sensors are better

�  Create new data types

�  RotationMatrix

�  Enhance sensor data �  Compass

35

Page 36: JAM844 - Building Apps that Sense, Understand and Adapt

Demo Star Tracker

36

Page 37: JAM844 - Building Apps that Sense, Understand and Adapt

Analytics

Use to measure �  Audience reach �  Engagement �  Usage pattern �  Retention, conversions, revenue and more

Use to track key metrics �  purchases, downloads, revenues, rankings, etc.

37

Page 38: JAM844 - Building Apps that Sense, Understand and Adapt

Let's Adapt

38

Page 39: JAM844 - Building Apps that Sense, Understand and Adapt

Invocation Framework

Invoke another app for a task Embed apps inside apps Transfer data (files) between apps Get invoked 39

Page 40: JAM844 - Building Apps that Sense, Understand and Adapt

Core Invoke Targets

40

Documents  

Mul-media  

Communicate  

Produc-vity  

Social  

Page 41: JAM844 - Building Apps that Sense, Understand and Adapt

Get invoked

�  Register for URIs �  Register for MIME types �  Register actions

�  OPEN, SET, SHARE

�  User managed Defaults

41

Page 42: JAM844 - Building Apps that Sense, Understand and Adapt

BBM

�  Update user profile �  Status, avatar, availability

�  Update Application Box Profile �  Achievements, badges

42

Page 43: JAM844 - Building Apps that Sense, Understand and Adapt

NFC

�  Read/Write NFC tags �  Transfer content P2P �  Emulate a card/smart card

43

Page 44: JAM844 - Building Apps that Sense, Understand and Adapt

Phone Calls

�  Make phone calls �  Disconnect phone calls

44

Page 45: JAM844 - Building Apps that Sense, Understand and Adapt

String Pattern

�  Register for String Patterns �  RegEx or Strings

�  Make them active links �  Get invoked by them

45

Page 46: JAM844 - Building Apps that Sense, Understand and Adapt

Notifications

Something that can wait?

�  Hub notifications with invoke Immediate attention required?

�  Show a Notification Dialog Not immediate but can’t wait too long

�  Instant Preview with invoke

46

Page 47: JAM844 - Building Apps that Sense, Understand and Adapt

Hub Integration

�  Appear as an account in Hub �  How will you sync your messages? �  Push Notification Service

�  Requires Push trigger �  Periodic sync

�  Requires a long running headless �  Connect with invoke hooks for

�  View/Delete/Reply etc.

47

Page 48: JAM844 - Building Apps that Sense, Understand and Adapt

Active Frames

Show the single most important item

Is it more important for users to see the state of the app when it is minimized?

Update when new data arrives

48

Page 49: JAM844 - Building Apps that Sense, Understand and Adapt

Demo MLB

49

Page 50: JAM844 - Building Apps that Sense, Understand and Adapt

Network Connectivity

�  Transfer data �  Monitor progress �  Adapt to errors, speed and cost

50

Page 51: JAM844 - Building Apps that Sense, Understand and Adapt

Battery

�  Monitor �  Condition �  Charge capacity �  Level �  Temperature

�  Should you still play that video? �  Should you turn off location queries?

51

Page 52: JAM844 - Building Apps that Sense, Understand and Adapt

Who’s Peeking?

�  Respond to peek events �  Show something contextual

52

Page 53: JAM844 - Building Apps that Sense, Understand and Adapt

2nd Screens

What displays are available?

Mirror vs Extend

Invoke Miracast Card

53

Page 54: JAM844 - Building Apps that Sense, Understand and Adapt

Adaptive UI

One UI to rule them all? Don’t simply scale up/down

Make your UI adaptive Layout, size, visibility

54

Page 55: JAM844 - Building Apps that Sense, Understand and Adapt

Accessories (Bluetooth/USB)

A full size keyboard can be much faster Take inputs from Gamepads

55

Page 56: JAM844 - Building Apps that Sense, Understand and Adapt

Demo Critical Wave

56

Page 57: JAM844 - Building Apps that Sense, Understand and Adapt

How can I find out more?

57

• Code  • Example  source  code  available  on  Git  Hub  h8ps://blackberry.github.com  

• Support  • More  detailed  help  and  informaAon  is  available  on  the  Support  Forums  h8p://supporDorums.blackberry.com  

• Contact  us  if  you  have  ques-ons  • Twi8er  • Ranbijay  Kumar  @ranbijay  • Sean  McVeigh        @sdlmcveigh  

Resources  

Page 58: JAM844 - Building Apps that Sense, Understand and Adapt

For More Information…

�  JAM805 - Beyond the Device: Extending the Device Experience with Wireless Peripherals

�  JAM804 - Beyond the Device: Extending the Device Experience with (mostly) Wired Peripherals

�  JAM803 - How the Use of NFC is Evolving: Innovative Ways to Use NFC Beyond Payments

�  JAM834 – Making the Most of Cards and Invocation

  58

Page 59: JAM844 - Building Apps that Sense, Understand and Adapt

For More Information…

�  JAM840 – Headless Apps with Cascades �  JAM842 – Native Camera: View the World from a

Different Angle �  JAM839 – Maps, Geofencing and Location Based

Services in your App �  JAM825 – Understanding Who Uses Your App and How

with in-app Analytics

  59

Page 60: JAM844 - Building Apps that Sense, Understand and Adapt

THANK YOU

JAM844 Ranbijay Kumar – BlackBerry Sean McVeigh – QNX September 26-27, 2013

60