2015 marks the tenth anniversary for Binary Formations and our first app, Home Inventory. I thought it might be fun to take a look back at how our flagship app came into being and how it evolved into to what it is today.
A Stutter Stepping Start
I first started thinking about building a home inventory app shortly after I replaced my old Dell laptop with a 15″ Titanium PowerBook in 2002. I had tried as many inventory apps as I could find at the time, but none of them worked the way I wanted them to. Adding photos to items, in particular, was a tedious process. I wanted to be able to take photos of all of my items with my digital camera, import them all in one go, and then assign them to the appropriate items through a visual interface. Home Inventory’s Album View grew out of this concept.
It took a while before I finally got around to working on the app. Unfortunately, I realized midway through development that what I was building was absolutely terrible. It looked and behaved like a Windows app – not at all surprising since the bulk of my career up to that point had been developing software for Windows.
I threw away the code and started over from scratch. When it was released on October 24, 2005, Stockpile (the original name for Home Inventory) was far from great, but it had a few unique elements that made it different from other inventory apps. It went on to sell a whopping five copies before the end of the year. One of those I bought myself to make sure credit card processing worked properly.
Incremental Improvements and a Name Change
Few though they were, those early customers provided a lot of encouragement and constructive criticism that resulted in a quick series of updates. Sales were still terrible, but ever-so-slightly increasing, and the app was getting better. Then the email came threatening me with a lawsuit over the name Stockpile.
Naming a product is always tricky. A number of criteria are involved in coming up with a name, but the most important is whether or not the name is being used by a similar product. I had searched the USPTO’s trademark database and other sources before settling on the name Stockpile and did not find anything else in the space with the same name, so I didn’t expect any problems. Big mistake.
A Windows developer who had previously used (but not trademarked) Stockpile as part of the name for a different type of software had submitted an application to trademark just the name Stockpile itself in mid-2006. Shortly thereafter, he contacted the company that hosted my website, claiming he owned the Stockpile name and threatening to sue.
An intellectual property lawyer I knew thought I had a good chance of blocking the guy’s trademark registration if I chose to fight it, but it seemed like such a hassle for something that only sold a handful of copies each month. Besides, I was getting married at the end of the year and the last thing I wanted to deal with was a legal battle. It was easier to just change the name and move on.
With that came the release of version 1.5 on November 27, 2006 under its new name, Home Inventory.
I continued releasing regular feature updates to version 1 over the next three years as sales steadily increased.
Version 2: Rewrite and Rewrite Again
As the number of customers increased, so did the number and scope of the feature requests I received. While I did my best to accommodate as many of these as possible, it had also become clear that the architecture of Home Inventory simply could not support a lot of what people were asking for. A complete rewrite of the app and redesign of the database model would be necessary.
Less than a year after getting married at the end of 2006, Diane and I moved from Georgia to Virginia and she became pregnant not long after. No way, no how was I going to rewrite Home Inventory at that point. I was too busy freaking out about being a father. The minor updates continued and I didn’t start work on version 2 of Home Inventory until the fall 2008.
As summer approached in 2009, the rewrite was nearing completion and I didn’t like it very much. I mean, it was fine. It had a lot of new features, scaled better, and had a new data model, but using it… well. While it looked pretty, the user interface wasn’t all that far removed from the original Home Inventory and had some glaring usability flaws. While I had spent a lot of time rethinking the application architecture and data model, I had failed to do the same for the user interface.
I took some time off to rethink the user interface and threw out most of the code. It wasn’t an easy decision. I had originally targeted the end of 2008 for the release of version 2. Because I had a family and a day job, I could only work on Home Inventory in my spare time, so the release date slipped a few times before ending up with a mid-2009 target. Customers were already (understandably) unhappy with the delays. Rewriting most of the code a second time would add at least another six months to the schedule. I could only hope everyone would think it was worth the wait.
Along the way through this second rewrite of version 2, my wife, Diane, started taking a growing interest in Home Inventory. She took over the bulk of the testing duties and helped fine-tune many of the features. The Policies View, in particular, would not have been very useful without her suggestions. Binary Formations had transitioned from my company to our company.
Home Inventory 2 finally launched in January 2010 with a ton of new features, including: scanner support, a built-in image editor, receipt support, file attachments, custom fields, customizable field layouts, insurance coverage management, more flexible reporting, and a completely redesigned interface, just to name a few. We referred to it as “a love letter to our customers”. It’s cheesy, I know, but we meant it. Almost every requested feature that made sense for a larger audience went into that release.
Rising Sales and a Full-time Business
Sales increased significantly with the release of version 2. Macworld magazine included Home Inventory in its “38 Great Mac Apps” feature. Mac Format magazine also gave it a favorable review and called it, “spectacularly user-friendly”. We were still making hobby money, but it was damn good hobby money. As Home Inventory approached its fifth birthday, we began to think we could turn this into a real business. We even had boxed versions of Home Inventory produced to hopefully sell in retail stores.
In hindsight, boxed copies were a dumb idea. Boxed software was on its way out and selling through retail stores would be a non-starter for a us. But where one door had remained firmly shut, another soon opened when Apple announced the Mac App Store would be coming early the next year. I thought it would be the platform we needed to put Home Inventory in front of a larger audience, so I quit my job. Binary Formations was now my full-time gig.
The Mac App Store
We submitted Home Inventory to the Mac App Store for review within hours of Apple announcing it was accepting submissions. It was approved not long after that. All we had to do was wait a couple of months until the Mac App Store opened to the public and all would be good. And then December rolled around and we received an email that Home Inventory had been changed from “Approved” back to “Waiting for Review”.
No worries. We had plenty of time to clear review again before the store opened, right? Uhhhh… nope. Home Inventory was will waiting for review after the Mac App Store launched in January 2011. We were absolutely crushed. We resubmitted the app and were finally approved (again!), but we missed the launch day madness and the big sales numbers that came with it.
That’s not to say we didn’t do well in the store. We sold more copies than we usually did, but we were still a long way from replacing the income I was making as a full-time developer at my old job. We needed to make some changes and make them quickly.
Home Inventory Photo Remote and Mobile Backup
It’s hard to stand out in a store full of apps. We needed to figure out a way to catch Apple’s attention and hopefully get them to feature us. The iPhone seemed to be the key, so we went back to the well with an old idea we bashed around when the iPhone first opened up to third party developers.
Although the Album View made adding photos to items in your inventory much easier, it was still a hassle. Wouldn’t it be great it you could take a photo of an item with your iPhone and have that photo added to the inventory on your Mac without having to connect any cables and import files? Why yes, it would. And from that simple idea came Home Inventory’s first mobile helper app: Home Inventory Photo Remote.
Development went quickly and within a couple of weeks Photo Remote and a new update to Home Inventory were available. Apple featured Home Inventory in the first slot of the “New and Noteworthy” section on the front page of the Mac App Store and sales exploded. The momentum continued a few weeks later with a top banner feature on the Mac App Store and writeup in the New York Times.
We spent the remainder of the year building additional features into Photo Remote and released our second mobile helper app for iOS, Home Inventory Mobile Backup.
That old saying, “What goes up, must come down”, is true, except in Home Inventory’s case down was a higher level than before. It was finally selling well enough, month after month, for us to make a decent income. While we wouldn’t be joining a country club in the foreseeable future, we were able to bring in enough for Diane to quit her job to focus on Binary Formations too.
Sandboxes and Version 3
OS X 10.7 (Lion) included a new security feature called the sandbox. A “sandboxed” application has a limited view of the computer on which it is running and can only access the parts of the file system, features of the OS, and devices to which it is entitled. The idea was to make OS X more secure by restricting apps so they could do only what they needed and nothing more.
Getting Home Inventory to work within the security sandbox turned out to be a long and arduous process. Apple continued to tweak and expand the sandbox’s capabilities with each update to OS X 10.7 and by the time we began beta testing the sandboxed version of Home Inventory in mid-2012, Apple had begun releasing beta versions of OS X 10.8 (Mountain Lion) to developers.
Partway through the Mountain Lion beta cycle, Apple released a beta version of 10.8 where Home Inventory would crash every time it tried to open an inventory file. It took several days, but I finally found the problem and it was a bug in the security sandbox, not Home Inventory. After notifying Apple about the bug, they were very helpful in working with us to try and find a way around the problem. Unfortunately, there was no work around to be had. We would simply have to wait for the bug to be fixed. To make matters worse, we were told it likely wouldn’t come until after OS X 10.8 was officially released.
Since a fix was at least a month away, we decided to spruce up the look of the interface a bit. At first the UI updates were fairly minor and mainly cosmetic, but once we got into it, we decided to expand the work into a significant overhaul of Home Inventory’s user interface and add a number of additional new features to boot. What was originally intended to be version 2.7 morphed into a full on major update, enough to warrant a change in the major version number.
I felt strongly this was the best work we had ever done and boy was it rewarded. After Home Inventory 3 released in March 2013, Apple awarded it with an Editor’s Choice pick and banner feature on the Mac App Store. Apple also included Home Inventory as part of its Best of 2013 roundup. What began as one of the worst development experiences I’ve ever had turned into something that I was the most proud of.
Home Inventory in 2015
We have no plans of slowing down, even at the ripe old age of ten. Version 3.3 of Home Inventory should be out later this month (January) with a refreshed look to the user interface, among other goodies. We will also be releasing a brand new iOS helper app alongside it to replace Photo Remote. There will also be other updates to Home Inventory and its helper apps throughout the year.
Ten years is a long time to do anything. Even though we call ourselves independent software developers, we would never have been able to make this work without a lot of outside help. So to everyone who purchased Home Inventory, sent us feature suggestions, reported bugs, gave their valuable time as beta testers, reviewed Home Inventory, and told their friends and colleagues about it, on behalf of Diane and myself, I would like to offer you our heartfelt thanks and gratitude. We hope our software has exceeded your expectations and we promise you we will continue to do our best to do so in the future.