A Roadmap for Wallflower

And introducing a new hybrid model for App Store subscriptions and my adventures in building a HomeKit app.

The new version of Wallflower, an app that turns your iPad into a 24/7 control panel for your smart home, is finally live. Now it’s time to talk about what’s new, but also to reflect on where we are, what worked and what didn’t, and to provide the most requested “feature” since launch: A roadmap for the future.

A screenshot of Wallflower 1.0
Wallflower 1.0, with the “Wertarbeit” theme

Version 1.0 — How it began, what worked, and what didn’t

Let’s start at the beginning: Wallflower builds on Apples HomeKit Platform, and besides the iPad, it runs on iPhone and iPod touch, too — even on the old iOS-9 based one that lies dormant on the bottom of your desk’s drawer. Version 1.0 is the result of several years of work, and the first version shipped at the end of May, right before WWDC.

If you haven’t tried it yet, you can get Wallflower in the App Store. If you are familiar with the app, you can skip this part, but if you’re not, I invite you to read on.

Wallflower was developed with 5 main goals:

  1. It should work well as „Room Control“: Like a super-smart and way overengineered lightswitch, it represents the devices of the room that it’s in. It sounds weird at first, but all that over-abundance of an iOS device on the wall makes sense: How else can anyone, except the person who set everything up, control a smart home? With Apps they need to install? With switches and lots of labels? By shouting unknown commands to Siri? Since about a decade, “traditional” smart home systems solve that with an interactive screen on a wall, and an iOS device is probably the best interactive screen you can get. The only thing you need to add is software. Wallflower tries this with an interface that is compact and dynamic, and doesn’t need much configuration: All sensors are combined into a single display, where their values can easily be related with each other, only the scenes that are switched on are shown, and devices are hidden if they are not relevant. There aren’t many ways to define what’s on screen and what’s not — but it fits a lot of data into a small area and everything is optimized to be viewed from afar.
  2. Wallflower is optimized for running 24/7: For example, the display is dimmed down beyond what the built-in automatic brightness adjustment does, so when the room gets very dark, the iPad doesn’t illuminate the room. Some interface elements like buttons are hidden when the app is not in use. They come back when you touch the device or even before, if you just glance at it. The whole app has a concept of attention baked in, and most of the time you “use” it you don’t actually stand in front of it, but you see it from afar.
  3. Support for the most common HomeKit devices: That’s lights, thermostats. air conditioners, fans, switches, outlets. sensors for various forms of air quality, contact sensors and motion sensors. When you long-press on a device there’s custom fine-grained controls. The state of everything, especially the sensors data, is not hidden in Apps behind lots of navigation, but visible on the main screen.
  4. Since every home is different, Wallflower is prepared for individualization: There are many icons to assign to your devices, and if you can’t find one that matches, you can easily request it. The UI itself is based on themes, and while not finished, that needed to be built-in from the first version, because it is hard to add that later. Themes can be loaded at runtime, they provide custom designs, colors, individual fonts and clockfaces as well as additional icon sets, and need to work on all the many screen sizes that are supported — from the iPhone 4s in portrait to the iPad Pro 12" in landscape. All this is meant for use in companies, hotels, conference centers, and so on at a later stage. Until then, the „Wertarbeit“ theme is the main theme, but the other themes are experimental and provide glimpses at what’s to come.
  5. Finally, Wallflower has a really nice, big, analog clock: An accurate, good looking wall clock is a great thing for a reason. And it serves a second, secret purpose: Because Wallflower is far from finished, there needs to be some space reserved for future enhancements.

So, how did it go? All five points worked really well, and there has been really positive feedback by users who have a setup where “room control” makes sense. Other feedback was suggesting features and luckily almost all are on the roadmap: You want more device types, more customization and full home control. But there was also other feedback, sometimes quite nasty, usually by people who otherwise claim to like the concept: They don’t like the app nagging you to be purchased if you don’t (yet) have a smart home setup that warrants a 50€/year subscription, and, well, they hate subscriptions.

Version 1.1–Now available in the App Store.

The new Guest Wi-Fi feature in version 1.1 with the “Screenfeeder” theme

This is the first update after the initial release and it has 3 major new features:

  1. Wallflower provides an easy way for your guests to join a Guest Wi-Fi. You first set it up in the settings, then your users will have the ability to join your password-protected Wi-Fi with just a quick scan of a QR code with their camera. Most current smartphones today have that built into their regular camera apps. It beats spelling complicated passwords by a long margin.
  2. Wallflower tries a new hybrid way of financing its development: Subscriptions and a one-time-purchase, side by side.
    As before, Wallflower, has no other means of earning mony, than users paying: There’s no data harvsting, no tracking, no unsustainable venture capital. But we also learned this: You don’t like subscriptions. However, the reality is that it’s impossible to write software once and be done with it. So if you expect to pay for software once and be done with it, this doesn’t add up for the developer— and the App Stores are full with abandoned apps that failed to sustain their initial income. After all, your devices, the operating system and its capabilities are constantly evolving, and software needs to evolve with it — that’s a lot of work. So that leaves no alternatives to subscriptions if you want all features, now and in the future.
    But what if you don’t want all the features, but just the home automation? For this, Wallflower 1.1 is introducing a one-time purchase that covers the HomeKit features only. Now, how is that different from what you get with a subscription? In the 1.1 version, there is no difference, and with the 1.x updates this probably won’t change much. After that, there will be new features that don’t have anything to do with HomeKit and those will be exclusive to subscribers. So you’ll get a future update that supports HomeKit cameras with the one-time purchase, but for example a future feature that provided integration with weather services would require a subscription. Once these features are there, it’s planned to supply an attractive upgrade path from one-time to subscription. But if you want the full experience, a subscription will always be the best deal.
  3. If you have only a few devices or want to try before you buy, there’s now a new free way to use Wallflower. The old „free“ way to try Wallflower allowed you to configure the app, and see if it works for your setup, but you needed to start a subscription (with 14 day trial) to actually switch anything in your smart home. The new free version of Wallflower can be used to control your devices and scenes however you like, and it won’t nag you as much to upgrade. There is one catch: You are limited in the number of devices and scenes, but you can use at least one of each type per room (and two lightbulbs). If you have more, I kindly ask for your support.

So why did this update take so long? The backstory is, it was ready at the start of July, and what followed was a long discussion with App Review to get the new free version and the one-time purchase approved. In-between, it even looked like In-App purchases couldn’t be used in a HomeKit app at all. Fortunately, in the end, they arrived at the same conclusions as I did, and approved the business model I originally intended to ship with this update in July. 🎉

Version 1.x to 2.0 — What’s coming

I got a lot of user feedback during the betas and after the release, thanks to everyone who sent mail! Here’s a list of the most requested features, in no particular order:

  • “The clock is too big!”
  • “I want a digital clock!”
  • “I want to see stuff from other rooms!”
  • “When I set the app to display the whole house, it all gets too crowded too fast!”
  • “I have a device you don’t support yet!”

The upcoming versions until 2.x will address all of these issues.

A small disclaimer is needed though: This is a set of goals. As with every good plan, it is very likely that it changes. There is one important rule for software that is especially valid for HomeKit: Don’t take anything for granted until it ships. With that in mind, let’s continue with what is planned…

  • First, there’s a technical effort underway that’s completely invisible to the user, but will make introducing support for new devices a lot easier: I am working on adding an additional abstraction layer between HomeKit and the app, which will make development more flexible, easier to test and enable me to use many of the cool new Xcode 11 features (like previews) that will make development easier. Also, it gives Wallflower the flexibility to go beyond HomeKit in the future, should this need arise. This “sub-project” while hopefully not be very noticeable to the user, but it is taking considerable time and effort, so I decided to put it here.
  • On this foundation I’ll add the HomeKit device types that still lack support in Wallflower. For some device types, delaying them made sense, as WWDC was around the corner, e.g. there were tons of rumors of lots of changes around cameras. For some device types nobody provided hardware yet. And for some types I just ran out of time in version 1.0.
    Long story short, here’s what will be added during several 1.x releases: Cameras, Window Coverings, Doors, Windows and Garage Doors, Locks, (Video-) Doorbells and Irrigation Systems.

Apple doesn’t let an app access HomeKit enabled TVs or HomePods/Speakers at the moment, even though they are available to Apple’s own Home App. It doesn’t look like this is changing for iOS 13.0. So unfortunately it looks like Wallflower won’t be able to support these devices until this changes.

  • One aspect why Wallflower started with “Room Control”, is that this allowed for an interface that automatically shows and hides devices and scenes as well as merges all sensors into one graph. This is possible to do with a room, but hardly makes sense for the whole home, except for small installations. “Home Control” is harder to get right, because one screen can get way too crowded, way too fast, and I don’t think anyone has figured out how to do that well yet. What Wallflower will try is a combination of both, room control and home control, side by side.
  • The module that currently shows the clock and the guest wifi (the right side of the app) will be replaced with a configurable dashboard. In contrast to the “room” interface, a dashboard gives everything a fixed place, so if you place a lamp there, it can be from any room, and it will be visible no matter if it’s on or off. You can place a sensor there, and it will display as a single sensor. Or you can place all your sensors there and combine them however you like. You will be flexible to configure this to your liking.
  • Also a dashboard is able to show more than just HomeKit devices. In fact it might start with what you have right now: A clock and a Wi-Fi button. So you’ll still be able to just keep the huge analog clock, if that’s what you fancy. Or you will be able to replace it with a digital clock. Or it can be a world clock, with multiple instances showing different time zones — but that will be a feature for subscribers only.
  • Wallflower has always been supporting localizations. From the start it was available in English and German, but it’s ready for everything else. Even right-to-left languages like arabic or hebrew can be supported. If you want Wallflower in your language and want to help with this effort, please don’t hesitate to contact me.
  • One of the most requested features is an ability to sync or transfer settings to Wallflower on other devices. You can already customize a lot of things, like set custom icons for your devices, or assign types to rooms (which will then affect warning levels like humidity, etc). Unfortunately this is harder than it should be.

One caveat applies to cross-device configurations: Each object in HomeKit has a different identifier on each of your different devices that the HomeKit framework runs on. Apple thinks of this as a privacy feature. And I’m a huge fan of Apples approach to privacy, actually it’s a big part of why I chose Apple’s ecosystem. But HomeKit is a distributed platform and apps based on it are perceived as distributed apps. They need stable identifiers to sync. I think it’s even debatable if, by providing different identifiers, there is any privacy gain at all, as there are plenty of other aspects of a home that makes it identifiable, and the user gave explicit permission to access it. The only thing this accomplishes is to make features like these a lot harder.

  • Like with any good app, there will be iOS 13 updates. Wallflower has its own ideas on themes and color schemes, and while it’s been modeled after the AppleTV’s already available “Dark mode” implementation, there are a lot of new aspects that iOS 13 brings to the table, and of course they will be used in a future version of the app.
  • In the future, there will be features that require iOS 13. Between iOS 9 and iOS 12, there are not too many things in Wallflower that have to be constrained to newer OS versions only — even tough, contrary to popular belief, it is the case that Wallflower runs faster and more stable on newer operating systems on the same hardware. I had to only constrain a few features: Themes are not available in iOS 9, since that version lacks support for custom fonts that can be used without supplying them with the app — which is important for corporate fonts. But Wallkit as a whole still supports iOS 9, only without themes. I intend to keep it this way for as long as can. On HomeKit, nothing was added in iOS 13: So I don’t expect an iOS 13 requirement for any of the HomeKit features.

Version 2.0 and beyond — The far future

I can’t talk much about what comes after the 1.x versions: To get Wallflower to this point, is a huge project already. But one thing I can tell: There are lot of things that an interactive display on the wall could be useful for, beyond HomeKit. I have a lot of ideas on on my mind, and while I won’t get into any details, I am eager to hear from you what you’re interested in.

Wallflower could show the weather. Control music. Play radio or TV. Show your social media, like Screenfeeder did. Wallflower could show any information you feed it with RSS. It could monitor your web server. Or monitor your build server. It could manage your shopping list. Or manage your meeting rooms. Or call a cab. Or be a black board or a messaging system for families or companies.

Don’t take these things as a roadmap, some of these things will become reality, some won’t. And the best ideas I didn’t write down here, of course. If you want to get in touch to talk about what you wish, feel free to do that. If you want to support the development of this app, so that it arrives at the points I describe here, I’m very happy about a subscription.

iOS and Mac developer, Founder of @nxtbgthng.