Search code examples
ioshomekitios-homekit

Understanding Homekit as a Developer


When I first heard about Homekit in 2014 when introduced by Apple I thought this was a feature only for device manufacturers who would be allow to embed the Homekit in their devices but I think I'm missing something here form the programmers point of view. Let pretend for a moment that I buy a Homekit enabled device right now, maybe a thermostat, what can I do with it (besides its default functionality of course), how can I interact with it?

Can someone explain Homekit from the programmers point of view? What will Homekit enable programmers to do, etc?

FYI- The way I understand it is that you would buy a Homekit enabled device, then download an App provided by the manufacturer to interact with it, done. What am I missing?

Thanks


Solution

  • Homekit provides both a standard for device manufacturers and an SDK for developers to interact with said devices.

    Any developer can write an app which interacts with the homekit SDK that apple provides. Apple's goal was that anyone would be able to write a homekit app which would be able to interact with any and all homekit devices on the market. In order to accomplish this, apple defined a set of standard services that can be adopted by the manufacturers (things like thermostat, switch, and door lock).

    At the moment, each manufacturer has been creating an app to go along with their product. In the future, this may not be necessary, but hardware has a long lead time and there weren't any homekit apps out on the market when most of the hardware was being developed.

    In addition, many of the manufacturers have deviated from the standard services defined by homekit, and want to enable other abilities that are unique to their product, or have 'side channels' to access more advanced functionality that's not covered by homekit.

    So if you buy a thermostat and install it and hook it up with homekit, you will be able to tell it to do some standard thermostat stuff. For instance turn the AC on, turn the heat up, etc. through any app that supports homekit thermostats, and also through Siri. Any more advanced functionality that the thermostat provides would not be available through homekit (like nest's filter change reminders, for instance).