not another *$#@ app: how to avoid iot fatigue
DESCRIPTION
Presentation given at the IOTAConf conference in San Francisco, October 21, 2014.TRANSCRIPT
Not another *$#@ app: How to avoid IoT fatigue
IOTAConf - Oct 21, 2014 - San Francisco, California
Ramin Firoozye @raminf
Today
Connected Devices
1 App = 1 Device
SmartThings Nest August Lock FitBit
Tomorrow(Not too distant)
How do we avoid it?
Root cause:1 App = 1 Device
How do they Communicate?
Common Wireless Interfaces
Bluetooth Low Energy
Bluetooth LE BLE
Firmware• On device
• Hardware • Logic • Communication
Application
• On phone • UI/UX • Communication • Internet
• GATT • Services • Characteristics • Notifications
Unlock Door
Lock Status
Unlock Door
UUID: 9D6AB48C-2586-40AA-AF0C-603BC2104B37
Value: 1
UUID: 116E5AEA-FB61-476F-82DA-ACA537042520
Value: 0
Lock Status
Firmware• On device
• Hardware • Logic • Communication
Application
• On phone • UI/UX • Communication • Internet
Baked-in Protocol
1 App = 1 Device
Silo
Silo
1 App = 1 Device
Device-specific protocol
Inevitably leading to…
How do we avoid it?
Decoupling
Protocol Registry
1. Detect Device
2. Look up protocol on Web
3. Communicate
Decoupling
Benefits
Protocol Registry
1. Detect Device
2. Look up protocol on Web
3. Communicate
#1: Flexible Communications
#2: Common SDK for all devices
SDK
Protocol Registry
Web
Bluetooth LE
#3: Public APIs
Protocol Registry
#4: X-Platform
Protocol Registry
#5: Generate Firmware
Protocol Registry
That doesn’t solve the whole problem
Problem #2
Buy Device
Install App
Run App
Next• Week • Month • Year
?
there is an existing solution
Turns out…
Bluetooth Proximity
Automatic App Launch
Detect
Launch
iOS: iBeacon Android: service
Problem #3
Many Apps
One AppWe want
Application
• On phone • UI/UX • Communication • Internet
• User Interface • Screen Workflow • Device Communication • Internet • Storage • Analytics • Timers • Addressbook/Calendar • Video/Audio • GPS • Accelerometer • Push Notifications • Protocol Registry
In Reality
Buy Device
Install App
Run App
Buy Device
Install App
Run App
App acquisition model
Install Apps
Streamable Apps
Streamable Apps?
web appsAren’t they
Web App aren’t native
• User Interface • Screen Workflow • Device Communication • Internet • Storage • Analytics • Timers • Addressbook/Calendar • Video/Audio • GPS • Accelerometer • Push Notifications • Protocol Registry
• User Interface • Screen Workflow • Device Communication • Internet • Storage • Analytics • Timers • Addressbook/Calendar • Video/Audio • GPS • Accelerometer • Push Notifications • Protocol Registry
Native
• User Interface • Screen Workflow • Device Communication • Internet • Storage • Analytics • Timers • Addressbook/Calendar • Video/Audio • GPS • Accelerometer • Push Notifications • Protocol Registry
Web
Streamable Native Apps
We need…
Wat!
• Markup • Script • Stream from Web • But native
HTML ++
Post-HTML
Super-Mega- HTML
Or something completely different…
Stream from web
Talk to Devices
Native
Let’s assume we can do this
One App
1 App = Any Device
Buy Device
Install App
Run App
Streaming: Dynamic install
Proximity: Automatic launch
Protocol Registry: Talk to any device
Silo
Tomorrow(Not too distant)
Tomorrow(Not too distant)
We get…
Any Device
Approach
It. Just. Works.
Not another *$#@ app: How to avoid IoT fatigue
Q&ARamin Firoozye
@raminf
(c) 2014 - Ramin Firoozye. All Rights Reserved
Image Credits
fatigue: Photo by Josephers - http://flic.kr/p/4PawUM Thankful For My iPhone Applications: Photo by JefferyTurner - http://flic.kr/p/5EFweT Silos: Photo by scriptingnews - http://flic.kr/p/dnTvh IMG_3420: Photo by ravensong75 - http://flic.kr/p/hr5jc The Ring: Photo by praptak - http://flic.kr/p/sq9Dn Unicorn - Gallop: Photo by Rob Boudon - http://flic.kr/p/acn7vE Explosion: Photo by Lnk.Si - http://flic.kr/p/EVWAw mom farted: Photo by Josephers - http://flic.kr/p/aTSjpH unicorn-circle: Photo by trps - http://flic.kr/p/6m34Jd Electronic Graveyard: Photo by factoryseashell - http://flic.kr/p/b9DUH
All device and software trademarks belong to manufacturers and service providers.