THE MENTAL BLOG
THE MENTAL BLOG
2010
At some point, it seems that every software developer writes their own Twitter client, RSS reader, or Shopping List app. This is probably because everyone uses these sorts of apps, and they never quite work the way you want them to. Needless to say, developing your own is generally a waste of time, and very few of these apps make their way into the wild.
That's how our latest iPhone app, Shopping Buddy, got started. Marcello Luppi from Wrinkly Pea Design, the company that does the design for all of our apps, had an itch to scratch. He had tried a bunch of shopping list apps, and none of them worked how he wanted them to. To begin with, all of the apps required you to pull your iPhone out of your pocket every two minutes to check off items, and see what you needed to buy next. When Marcello put it to me that there must be a better way, I had to admit that it annoyed the hell out of me too — I do the weekly grocery shopping in our household.
Marcello's idea was to have the shopping list sorted according to the route you follow, and then to have the items read to you by the iPhone. You could use the headphone clicker to advance or repeat the latest items.
Sounded like a good idea to me, except that I soon realized the headphone clicker was off limits to developers outside of Apple, so we needed a different approach. We opted instead to use gestures that you could carry out with the phone still in your pocket. Initially, we tried single and double taps, but the single taps turned out to be too easy to trigger accidentally. (Who would have thought that the denim in your jeans could actually trigger touch events?) We settled on a double tap for repeating the latest item, and a long swipe for moving on to the next items.
Within a few weeks, I was able to throw together a prototype called 'Sound Shopper'. (At that time, the whole shopping robot concept, which is in the shipping product, had not crystallized.) This prototype worked well enough to start testing for real shopping. We were both happy with the concept, and have been shopping this way for the last few months. (Hint: Do your shopping with just one earbud in — it makes you feel like a secret service agent.)
Another hurdle we had to overcome while developing the app was how to convert text into speech. Marcello was in favor of recording your own voice for the items in your list, which is an option we supported in the final product, but I was convinced most people are too lazy for that. We needed some Text-to-Speech (TTS) technology, and there was nothing Apple made available for the purpose.
A bit of searching turned up an open source project called Flite. Someone even had it working on the iPhone, and had posted instructions on how to do it. I played with it for a couple of hours, got it compiling, but could not get it to make a peep.
At this point I decided to just buy an iPhone-ready copy of the source code, which was available from TOMSOFT for $99. I could have persisted on my own for a few more hours, but at some point you are better off cutting your loses and buying a solution, which worked out great for us.
Installing Flite wasn't the end of the story though, because Text-to-Speech is an expensive operation to do on slow hardware like the iPhone, and Flite couldn't generate sound in real time. Luckily, with this type of application, it is not really necessary to have real time TTS. To get around the problem, we ship sound files for all of the standard products inside the app, and when someone adds a new item, it is converted to a sound file in the background, before it is needed in the shopping list. In this way, all speech is effectively cached in sound files, and need only be generated once.
After you have a working prototype, it was just a question of making it beautiful, and improving the UI. This typically takes much longer than you think, sometimes even longer than getting the original app up and running. It took us probably a month or two on and off to complete Shopping Buddy, bolts and all.
The end result is pretty much what Marcello and I had in mind for 'our' shopping list app. Even if you don't use the sound features, it is still a very good shopping app. We were just as determined that it be easy to add products and generate a new list as we were to include the text-to-speech capability.
Shopping Buddy is also an experiment in App Store sales models. We are giving the app away free, with an In App Purchase option to upgrade to a Pro version with more functionality (eg multiple stores, recorded and written notes, quick text list). We'll have to wait and see if it works better than a traditional upfront sales model.
In any case, you may as well get your copy now. It won't cost a penny, and you can hear for yourself whether you think the talking shopping list has a future.
Shopping Lists and Twitter Clients
20/03/10
Developing a Twitter client or Shopping List App for the iPhone almost seems like a Software Developer’s rite of passage. Shopping Buddy is our contribution to this tradition, with one big twist — it talks.