Dan Bricklin's Web Site: www.bricklin.com
How Alpha WatchBench Came About
I've released a new app to the Apple App Store. It's WatchBench from Alpha Software. I did this as part of my role as CTO at Alpha. You can read about what it is on www.alphasoftware.com/watchbench. I've also embedded a video at the end of this blog post.
This is the story about how it came about.
I've been intrigued by the wearables area for some time. I've worn a FitBit for a long time (going through two of them -- they do get lost, dropped and ridden over in parking lots, etc.). It made me much more aware (in a positive way) of my activity throughout the day and the value of simple gamification. (I also took Kevin Werbach's wonderful MOOC about Gamification after starting to use it.)
When Apple announced Apple Watch in September 2014, I was intrigued. I went over the video a few times, especially the part where Kevin Lynch demoed the UI. It was clear to me that Apple put a lot of effort into this and that this would eventually be a very fertile platform for development. It was also clear that it would be a long time before I got my hands on one.
One thing I saw, though, is that I needed to learn about this new type of platform, and I couldn't just do it by thinking about what it would be like. This was going to be different than the handheld devices I had been concentrating on for the last few years. Just like the iPad was clearly different than "a big iPod touch", the Apple Watch was going to be different than a tiny iPhone on your wrist.
After a few friends sung the praises of their Pebble watches, and finding the Pebble Steel good-looking enough and small enough for me (I have a small wrist) as well as being compatible with the iPhone I carried, I bought a Pebble Steel and wore it continually from the end of September 2014 until just a few weeks ago. I wrote a simple demo app in Alpha Anywhere with PhoneGap to show how Alpha Anywhere can make notifications that show up on it and explained to Alpha users how wearables could be important for internal business use in the future. I like the Pebble, and it convinced me that the watch form-factor could be helpful to at least me personally for uses like date/time, timers & stopwatches, alerts, integration with phone apps, etc. It was more useful to me in daily life than the plain watches I had worn before, and not too geeky looking.
When Microsoft announced their Microsoft Band, it looked like another way to learn about this new space. I had listened to a podcast by David Smith and read one of his blog posts, and agreed with him that using a Microsoft Band was a good way to get into this world. It had a touch display, could be worn separately from my Pebble, could be used for fitness stuff including running, and worked with my iPhone. It was much trouble to get one (they were in short supply) but I finally bought one in December, and wore it daily until just recently. While it was not very comfortable to wear, after a few weeks I got used to it. (You can see I'm dedicated to learning here -- it was very uncomfortable at first.)
Using these two powerful wearables has been very helpful. I could compare and contrast different UI implementations. I had some baselines to compare other devices, including the upcoming one from Apple. I knew what I actually continued to use repeatedly or just appreciate after months, and what I ignored or was bothered by.
David Smith has been kind enough to document his journey learning about Apple Watch and the WatchKit development environment that Apple released in late 2014. In February, following one of his tutorials, I tried writing a simple app that would run in the simulator (there were no Apple Watches available to normal developers at that point). It wasn't too hard. (Thanks, David!)
Once I had enough of the basic technology working in a test app, I started writing the "real" app in late March. I used much of what I've learned over the years with building other iOS apps to get my code up to speed (including using lots of tried-and-true code I had written), though this was the first Objective-C app I had built that didn't use manual retain/release memory management, among other "newer" capabilities. (I did not think this was the time to switch to the Swift language yet -- I had too many new things already to deal with and using Objective-C made it easier for me to draw on my old, working code.)
We, at Alpha, also started coming up with a name. We settled on WatchBench. It gave the right feel for something you build on that is related to a smartwatch. There were almost no hits on the term on Google nor were there any iOS apps with that name. We didn't need the domain since this was just one of Alpha's products.
Until the Apple Watch shipped, I could only test on the Mac Xcode simulator that Apple provides. I didn't try signing up for testing in California at Apple's lab at first since I didn't know when I'd have working code, and spending time flying across the country to test too early would be a waste of time. By the time I had something solid enough, all of the time slots were gone. (In hindsight, the one day you get would not have been enough.)
As the day approached when you could order an Apple Watch, I was getting close to something solid. I woke up just before 3 AM (12 midnight Apple-time) to order some watches: One for me (a Space Gray 38mm Sport), one for my wife (a green 38mm Sport), and one for Alpha (a 42mm to let me test both screen sizes and to lend to others in the organization). I wanted one for my wife so I could experience the new types of personal communication Apple Watch provided that only worked when both sides of a conversation had one. (I couldn't see learning that from test messages to co-workers.) Luckily for me, my wife had chosen the green. When I went to order (I had some Wifi issues at the hotel where we were staying that night), the 38mm I wanted was only available for delivery a few weeks after the first ship date. However, when I tried the green, it was unpopular enough that I could still get it on first ship (in both 38mm and 42mm), even though it was already a few minutes after 3 AM. (My confirmation emails from Apple were time stamped at about 3:10am.) My wife would have to wait to try it until my Space Gray arrived. (She was in no hurry anyway.)
I really hoped that I'd have everything ready before the watches were shipped so I could submit the app to Apple and be available in the Apple App Store on day one and get a PR boost. But that was not to be. WatchBench had too many parts. It needed documentation, it needed sample apps, and it needed to be easy to use. I worked on the app continually, losing lots of sleep, exercise, and other work. I worked with my daughter Adina, my UI designer, who came up with a much better design than I had started with. It became clear that incorporating her design would make the app easier to use and learn, but that took up more development time. (This all, of course, is not unusual for a new project.)
When the first watches arrived, I quickly did a test. My app pretty much worked! There were a few issues that would take a few days to work out, but the basic system worked fine on a real watch. However, there was much tuning to do, and lots of documentation. Before the end of the first 7 days with Apple Watch I had the complete app working, two sample applications running, and the start of the documentation (it has a pretty full API that it provides to the user). I set up my camera and recorded a video for internal use showing the whole thing working. I could use that to explain to others what I had been envisioning all this time. However, it would be many days before I finished the documentation, basic support web site, and all the things you need to submit a full app to the App Store.
One thing that I had to do was decide the configuration of items visible on the screen. I had put off this choice until I had a real watch in hand and got to see how a designer might use it. The initial design of Apple's WatchKit is such that I had to fix these choices in my app, and then my users would be stuck with them, limiting what designs they could implement. The only runtime option was hiding unused items, as well as changing some basic color and size attributes. Adina, under time pressure from me, worked out a visual design for my main sample app. I used that as a guide for the basis of some of the template pages, adding other items that you might want instead or in addition. I also looked to other apps pre-loaded on Apple Watch by Apple to get some idea of the types of table row layouts I needed to provide. This was a stressful exercise. I wanted to enable as many different types of apps and designs as possible, but I didn't want so many options that it would be confusing nor take too long to document. There was also the question of whether I'd end up with a sluggish app if there were too many options.
Two and a half weeks after I got my first Apple Watch, I submitted WatchBench to the Apple App Store. As usual, it took many days for Apple to start reviewing it, and then, unusual for me, many days more for it to be approved. During that time, I worked on improving the on-line documentation and support. I recorded some videos and improved the sample apps. It was everything I had hoped as a product. It's not every time that your vision for a complete product comes to fruition. This time, though, it had all of the parts I had decided were needed at the start, and felt complete.
Finally, on June 4, 2015, it was approved and I released it to the Apple App Store.
Here's the video:
Video of Alpha WatchBench on YouTube
-Dan Bricklin, 4 June 2015
© Copyright 1999-2017 by Daniel Bricklin
All Rights Reserved.