[Guest post by Guy] If you’re a non-programmer then you may want to skip this update- keep your eyes out for some cool, third party apps in the future though!
One of the things we’re looking forward to most about launching LIFX is seeing what interesting apps other developers cook up. Just about everyone in our office codes in some capacity, so we’re pretty keen to get hacking ourselves.
I wanted to take some time to explain how we intend to empower developers interested in LIFX and what to expect in terms of technical capabilities.
We’ve had a very conscious (and instinctive) design goal to avoid undocumented/proprietary protocols, vendor licensing keys and other such shenanigans. Our focus is open standards, speed and extensibility.
In basic terms you’ll have access to our two programmatic interfaces:
We refer to this little fella as “LIFX Cloud” and it acts as an always on, authenticated JSON API for your LIFX lights. Send a command to the cloud server and we’ll relay it to your device(s) wherever they may be. This is perfect for easy integration with third party services such as IFTTT, etc. We’ll be using it ourselves in official apps outside of the wifi network. Commands will be rate-limited to some sane value (tbd).
REST is great in the context of web documents but it isn’t really designed for lean, efficient device comms. As such, we’re using the Protocol Buffers standard (word up, Google) to send messages between devices on the network. This is many times faster/smaller then processing/sending the likes of xml, which is important when you’re planning on light bulbs talking to each other over a mesh network. Naturally, you’ll also be able to talk to LIFX at this lower level- it’s a little trickier to code but the upside is blazing speed and low bandwidth. If you’ve never worked with Protocol Buffers before, you’ll find it very well supported with a [tonne of libraries] [Link https://code.google.com/p/protobuf/wiki/ThirdPartyAddOns ] out there already. In a real world scenario expect the ability to issue a light approx 10 to 30 commands per second.
In the coming weeks we’ll be publishing specific API documentation and some starter libraries (looking at Java, Objective-C and Ruby initially). You’ll be free to develop (and publish) your work without restriction, licensing, etc and we’ll do our best to assist where possible.
Can’t wait to see what you get up to.
All the best,