61
Building Apps that Sense, Understand and Adapt JAM844 Ranbijay Kumar – BlackBerry Sean McVeigh – QNX Louis Tang – Viet Hop Software September 26-27, 2013 1

Building Apps that Sense, Understand and Adapt

Embed Size (px)

Citation preview

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

1

Sense

Understand

Adapt

BlackBerry 10 Experience

3

Adapt Sense

Understand

BlackBerry 10 Experience

4

Sense

Network Connectivity NFC

Location

Accessories

Orientation Displays

Touch

Microphone

Geofence Screens

Acceleration

Heading

Proximity Light

Holster

Smart Card

BlackBerry 10 Experience

5

Understand Contacts

Calendar

Email BBM SMS

Geocoding PIM Headless

Call Logs

Analytics

Analytics BlackBerry ID

Fused Sensors

BlackBerry 10 Experience

6

Adapt Active Frames

Cards

Connections

Peek Invocation

Adaptive UI 2nd Screens

Notifications Hub

Share

Hot Keys Accessibility

Text Filters

Battery

Let's Sense

7

Touch Interactions

Know when you’re touched Be sensitive to them

Use interactive controls

Take advantage of gestures

8

Location

Know where you are A pivotal event for apps

9

Location

10

Cell Tower WLAN GPS

Carrier Assisted Modes

Sensors

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

11

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

Demo ARKick

13

Device Surroundings

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

Don’t get too close, I bite.

14

Sensors

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

�  Light �  Illumination in lux

�  Holster �  Holster detection

�  Microphone �  Audio intensity, waveform

�  Camera �  Face detection, surveillance

15

Demo Flip Shush SoundHound

16

Network Connectivity

Know your network

17

NFC

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

18

Phone Calls

Detect cellular or VOIP calls When they get connected

And when they get disconnected

19

Accessories (Bluetooth/USB)

Sense input devices Gamepads, keyboards, mice

20

BlackBerry Balance

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

21

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

Headless Triggers

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

23

Let's Understand

24

Contacts

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

25

Messages

�  Create/Read/Update/Delete email & SMS

�  Know when new ones arrive �  Find that conversation

26

Calendar

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

27

BBM

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

28

Phone Calls

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

29

Network Connectivity

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

30

Demo Nobex

31

Geofence

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

32

Geocoding

Lat/Lon vs Addresses OR

Device vs Human

33

Demo Foursquare

34

Fused Sensors

Sensors are cool Fused sensors are better

�  Create new data types

�  RotationMatrix

�  Enhance sensor data �  Compass

35

Demo Star Tracker

36

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

Let's Adapt

38

Invocation Framework

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

Core Invoke Targets

40

Documents  

Mul-media  

Communicate  

Produc-vity  

Social  

Get invoked

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

�  OPEN, SET, SHARE

�  User managed Defaults

41

BBM

�  Update user profile �  Status, avatar, availability

�  Update Application Box Profile �  Achievements, badges

42

NFC

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

43

Phone Calls

�  Make phone calls �  Disconnect phone calls

44

String Pattern

�  Register for String Patterns �  RegEx or Strings

�  Make them active links �  Get invoked by them

45

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

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

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

Demo MLB

49

Network Connectivity

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

50

Battery

�  Monitor �  Condition �  Charge capacity �  Level �  Temperature

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

51

Who’s Peeking?

�  Respond to peek events �  Show something contextual

52

2nd Screens

What displays are available?

Mirror vs Extend

Invoke Miracast Card

53

Adaptive UI

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

Make your UI adaptive Layout, size, visibility

54

Accessories (Bluetooth/USB)

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

55

Demo Critical Wave

56

Case Study Goi Taxi

57

How can I find out more?

58

• 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  

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

  59

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

  60

THANK YOU

JAM844 Ranbijay Kumar – BlackBerry Sean McVeigh – QNX Louis Tang – Viet Hop Software September 26-27, 2013

61