Java — Play Store

Hue Limited Edition



Hue Limited Edition is an app I worked on at Q42, which gave me an excuse to work with Philips Hue lights!

It differs from the official app and other third-party apps by allowing people to control their Hue lights right from your home and lock screens. They can organise their lights into groups and quickly change the colour by adding their own colour presets.

The app allows them to configure their lights, preview colours before setting them and switching between multiple bridges in seconds. The widgets then allow them to have full control over their lights without ever opening the app again.



To be honest, there's not a whole lot of exciting technology behind this project. This is one of those projects that is all about the UX. This ended up taking the most time to get right.

Nevertheless, a project that combines hardware and software is always interesting. The Hue lights communicate with the app through a device called a bridge. The bridge uses a mesh network to pass state changes to the lights and exposes a nice REST API to interface with this state. In essence, the bridge is nothing more than a simple JSON datastore. There is an object for each light, with the current color, on/off state, etc. Apps simply send a PUT request to a URL like /lights/1 with new JSON state and the light will change to reflect the new state.

This is the first Android project I've worked on that has widgets, which formed an interesting learning experience. Since widgets are completely separate from the main application, communication with them is only indirectly possible. Instead of objects you can modify, they have unique IDs you need to keep track of. When I was still figuring things out, it was sometimes a little difficult to keep track of these and make sure the right information arrived at the right widgets. After a while it all starts making sense, but widgets are still somewhat limited in terms of UI options.