[App][Pro] HomeyKit

Request for Comments

In light of the SDKv3 rewrite of HomeyKit I’ve come to the conclusion that it would be best to do a full rewrite of the HomeyKit app, not just to support SDKv3 but also to do a complete reimplementation of how the app “translates” Homey devices to HomeKit.

Right now, the app is a large lump of spaghetti code with lots of code duplication, which makes maintenance difficult and adding new device support a challenge (I have already figured out a much more flexible way of implementing device support and ran some tests with it, and I’m happy with how much easier and better it works than the current implementation).

Sounds great, so what’s the problem?

The problem is that such a rewrite of the current app would sadly be backward-incompatible with the current version, and thus invalidate all HomeKit configurations for all current HomeyKit users (there are about 9.5K installs of the app right now).

Oh, doesn’t sound so great after all :thinking:

No, it doesn’t, and I don’t want to do that.

So what’s the plan?

My plan is do publish the rewrite as a completely new app (see below for caveats). This way, all current users can make an informed decision about if, and when, they want to move to the new app.

The necessity for a new app also stems from the way the App Store currently works: once a developer publishes a stable version of an app, no matter how big the changes, it will be installed automatically for almost all users (unless they have automatic app updates disabled, which about 99% of users will not).

What’s stopping you?

One big question that remains to be answered is if Athom will allow another HomeKit app in the store. I’ve already asked on Slack about it, so we’ll see. If I don’t get a definitive answer, I will try and see.

Athom suggested that I could do a final update for HomeyKit which would explain to existing users that the app is EOL (but see the following point) and there’s a new app. Then HomeyKit will be hidden on the App Store to prevent new installs.

And what about the SDKv3 rewrite for the current HomeyKit?

My intention is to rewrite the current app to SDKv3, so existing users will not be left in the cold once Athom turns off SDKv2 app support in the App Store at the beginning of 2023. But I will not keep on maintaining HomeyKit separately from a new app, and will focus my efforts on the latter. So new device support will only be implemented in the new app.

My goal is to have a new app ready (again, if Athom will allow it) before the new Homey Pro 2023 model is shipped.

So what are you requesting comments for?

I’m interested in hearing what you as users think of these plans. Please limit your comments to broader issues and not “Will you implement support for X in a new app?” (for the initial release of the new app, I will focus on implementing the exact same device support as the existing app).

I’m also open for suggestions for a new app name. For now, the working title is “HomeKitty” :smile_cat:

7 Likes