Building mobile apps for IoT Devices: a case study of our work with the Holiday by MooresCloud

6ed02dec32058508c6feb43b2fbc94f7?s=47 Secret Lab
September 09, 2014

Building mobile apps for IoT Devices: a case study of our work with the Holiday by MooresCloud

Presented by Secret Lab (http://www.secretlab.com.au)

Connected devices that support ‘hackable’ software development are becoming increasingly common: the Lifx, the Holiday by MooresCloud, Philips Hue, and so on.

This talk will explore the development of a number of iOS apps built for the Holiday by MooresCloud, including a device discovery app and a musical visualiser. The talk will summarise the best practices for developing IoT-related apps for iOS, how to talk to such devices in a reliable and network-friendly way, and best practices for UX and interaction with IoT devices.

We’ll showcase our past work, demonstrate what we’re working on now, and present a number of demonstrations of our approach to building mobile software for IoT devices.

Presented at YOW Connected 2014 in Melbourne, September 2014.

6ed02dec32058508c6feb43b2fbc94f7?s=128

Secret Lab

September 09, 2014
Tweet

Transcript

  1. Designing Apps for the Internet of Things SECRET LAB

  2. None
  3. @parisba

  4. @desplesda

  5. Kerbal Space Program Book (!!) Unity Mobile Game Development

  6. None
  7. The internet is made of hardware

  8. The internet of things is made of user facing hardware

  9. A pretty old field

  10. Regular people now have access

  11. You’re either building a device and need an app, or

    you’re building an app for existing hardware
  12. Making apps for existing hardware is less common but very

    cool
  13. We’re talking about stuff that applies to both

  14. Our experience

  15. • Seamlessness! • Performance! • Working with the App Store

  16. Seamlessness

  17. None
  18. The ideal user story

  19. The Ideal User Experience Buy The Thing, Take It Home

    Turn It On It Does Something Good
  20. Most Things Do This Already

  21. None
  22. The Heater User Experience Buy The Thing, Take It Home

    Turn It On Now Your House Is Warm
  23. The Microwave User Experience Buy The Thing, Take It Home

    Turn It On Last Night’s Curry
  24. Configuration Adds Work

  25. None
  26. The Xbox One User Experience Buy The Thing, Take It

    Home Turn It On Play Video Games
  27. The Xbox One User Experience Buy The Thing, Take It

    Home Turn It On Play Video Games Sign In to your Xbox Live account
  28. The Xbox One User Experience Buy The Thing, Take It

    Home Turn It On Play Video Games Sign In to your Xbox Live account Create an Xbox Live account OR
  29. The Xbox One User Experience Buy The Thing, Take It

    Home Provide Wifi Details Play Video Games Sign In to your Xbox Live account Create an Xbox Live account OR Turn It On
  30. None
  31. Plugging stuff in is easy

  32. HARD MODE

  33. Configure a device… • It has only one plug, for

    power • It needs wifi • It has no useful display • It has no useful input
  34. None
  35. Most use a temporary ad-hoc network

  36. Buy The Thing, Take It Home Turn It On Disconnect

    from the wifi, connect to the device Open a web browser, go to a weird URL Provide Wifi Details
  37. Disconnect from the wifi, connect to the device Open a

    web browser, go to a weird URL Provide Wifi Details Reboot Reconnect to the wifi If it worked, awesome
  38. This is awful

  39. Also really scary

  40. None
  41. Other approaches

  42. Got a camera? Show a QR code

  43. None
  44. You generally can’t get away from this stuff

  45. Takeaway:! Make the rest of the experience as simple as

    possible
  46. Performance

  47. None
  48. Internet-connected holiday lights

  49. None
  50. Each light individually configurable

  51. None
  52. None
  53. None
  54. Smooth movement = ~20Hz

  55. We achieved 5Hz

  56. Problem: 
 Designed for sporadic access

  57. Original design was HTTP

  58. None
  59. Two problems: 
 latency and throughput

  60. Latency

  61. Latency: server was handling requests one at a time

  62. Throughput: 1 HTTP request per light update

  63. It sucked

  64. Solution: UDP!

  65. UDP: Low-level networking

  66. Works fine for this case

  67. Both problems fixed!

  68. Achieved 100Hz

  69. The HTTP method is still good!

  70. None
  71. Takeaway:! Have a high-level API, and a performance-focused low-level API.

  72. You might not be able to make this happen, but

    if you’re a hardware dev, please do it
  73. IoT apps ! on the App Store

  74. None
  75. If you’re making the official app, make it free

  76. If you’re making a third- party app, charge a premium

    price!
  77. Third party app customers have loyalty to the hardware

  78. Takeaway: Keep in mind that you’re part of a bigger

    picture when making apps.
  79. Making apps for hardware is fun!

  80. 1. Reduce the workload 2. Consider both performance and flexibility

    3. Remember the bigger picture
  81. None