April 15, 2015
For the past six months, I’ve been working on these three screens.
Well… it’s not entirely true. I’ve worked on several other things as well. But it is true that together with other people helping me make this, I’ve spent a ridiculous amount of time making sure that these screens really look and behave as we want.
The app that you’re looking at is Alarm. A nice alarm clock app on its own, and a demo app and showcase for Hone, a finetuning tool. Today, we’re releasing Alarm and Hone Demo to the public.
You can download Alarm for iOS, and you can also download Hone Demo for Mac. You can then connect the two, and tweak the Alarm look and behavior with Hone, and imagine what this would mean for your own apps.
That’s it in terms of news and announcements for today. Take a look at the product blog post as well. What follows is a bit of reflection and context about the project background and goals.
“I want to change this”
Hone got started at Wire. As we were experimenting with the initial versions of the app, we realized that we want a simple system for the designers to try out new fonts, colors, and other parameters affecting the app’s look, feel and behavior. The first version of Hone was a simple configuration file where you could tweak these things, and make a new app build to see them kick in.
This was nothing unique. Many teams have made something like this for themselves, and there are other libraries besides Hone that help developers to implement such tweaking. As I kept adding capabilities to Hone, such as live-editing of the values and pushing new configuration through the cloud, and kept delighting the designers using it, we realized that there’s no system out there that offers such a complete experience. It would be a ton of work to implement this from scratch for everyone for themselves, and that’s what led us to offering Hone as a readymade product.
The experience of making
There is a large cost to enter the world of making software. As platforms continue to innovate their capabilities and tooling, this cost will not go anywhere. You need to install and maintain a specialized set of tools, understand the build system, version control, clients and servers, external dependencies, your team’s unique tweaks and customizations to each of these pieces … and this for each platform that you are working with.
Unless you are already deeply heads-down in this, this cost is prohibitive. You never install these tools, or even if you do, you never use these tools to make any meaningful changes because the tools are intimidating and assume a lot of prior knowledge. They are serious engineering tools.
Some non-engineers can cope with this. They can learn from their engineers how the process work, install the tools, and plug into the system and workflow.
Others don’t, though, and are then at the mercy of their engineers to change anything at all. It then becomes a negotiation over the use of already contested and always constrained engineering resources. Are they better spent on tweaking the design, or working on other, more meaningful things?
A design tool with an engineering component
We take a different approach with Hone. It is a design tool. It assumes minimal knowledge from the user about how things work technically. You just change a value, and see the app respond. You do need to understand, of course, what is the meaning and limitation of each of the exposed values, but hopefully that’s something that you have discussed with your team anyway as part of your design.
Being an universally approachable design tool means having a high bar to the experience of installation and ongoing use. We can’t assume much from the user beyond “download the app and run it”. If you ever see anything in Hone that’s too complicated or difficult to use, you should call us out on that.
Beyond the design tool, Hone also has an engineering component that’s essential to its functioning. You must take our libraries and integrate them in your app in order to make use of Hone. That is extra engineering work. We hope that the value Hone provides is greater than the cost of doing this, but there will definitely be some inertia to this, just as there is with any external library or dependency. We’ve tried to make this easy for the engineers as well, and you are welcome to join our closed beta to help us test and improve this experience.
Today, you can use Hone Demo to tweak Alarm. Though we don’t have a similar Mac demo, it works all the same for Mac apps as well. (Indeed, we used Hone to polish the Hone tool itself.)
Hone has many other features that we chose not to showcase in the demo, but they are there and available to our closed beta members. For example, using our cloud service and its web hooks, you can broadcast any value changes out to the world using a service like PubNub, whose other end you can connect to things like a Lego Mindstorms robot, or an Arduino hardware sketch. I built both of these myself. Beyond a lot of fun, it was eye-opening to be able to control an iOS app, a Lego robot and a custom piece of hardware all using the same easy-to-use tool, without having to drill down into the engineering details of each. I’m working on Hone because I truly believe that this is a vision of how we’ll make and tweak things in the future.
If you’re working on an iOS or Mac app where Hone might be useful, I invite you to join our closed beta to try everything out for yourself. Just ping me to get started.