The short life and death of the Compact Dictionary app.
It started with “maven”. A client used that word in a meeting but I couldn’t remember the definition. I usually reach for the Mac Dictionary application but that day I went for my iPhone, forgetting that there was not a house-made dictionary app there.
There are many third-party dictionary apps but they bring their definitions with them. I knew that iOS, like Mac OS, has the definitions built in. I wanted a dictionary app that tapped into those to conserve space on my crowded phone. I wanted a purpose-built app not cluttered with “word of the day” or language blogs. Surely others would appreciate a straightforward dictionary app like this too.
I found no such app in the store (missed warning sign #1) so it was time write my own. My design partner Silvio and I had just finished the complex Blossom Dress Up app, so a simple project seemed appealing, and it would give me a chance to learn some new iOS technologies.
Design and Development
Not only does iOS contain dictionary definitions but it provides a standard UI for displaying them. I just needed to write a wrapper around that UI to let the user type in words and see suggestions. The documentation starts with this note (missed warning sign #2).
It’s very unusual to see usage limitation in the SDK documentation. I scoured the App Store rules for any further mention of dictionary apps, but found nothing. Surely the thorough and highly enforced App Store rules were the final word.
Even the simplest app has tricky parts. One surprising hurdle was getting UIReferenceLibraryViewController to display a custom color scheme. Said too simply, the root view controller creates sub-nav-controllers on the fly, out of reach of ordinary customization. I ended up patching UINavigationBar through a message swizzle (see the source code). Sophisticated technique or awful hack? History will judge.
More hacks were required to fully tame UIReferenceLibraryViewController and overcome performance problems with the word suggestion system, as if they were not built for ready reuse (missed warning sign #3).
Silvio cracked out an icon that was far too good considering that his payment was an afternoon cocktail or two. He even used 3d modeling to make the little book look just right. The guy is a pro. Again, creating software is harder than it looks.
As with any new app launched without fanfare, the free Compact Dictionary rocked the world with a few hundred downloads.
Compact Dictionary was translated to many languages, and somehow caught the eye of a Spanish blog that featured it as “App of the Day”. Overnight the downloads jumped to 15,000 (mostly in Spain). Now we’re rolling.
A few days later, this email arrived from the App Store. The dictionary publisher stated, through Apple, that the definitions are only licensed to Apple and not further sub-licensed to developers. Immediate removal from the store was demanded, and that’s what I did.
I wrote back to the publisher offering the app source code. Maybe they’d like to publish a lightweight dictionary app? No response.
Did Compact Dictionary’s momentary success in the app store cause it to be noticed, and therefore bring on its own death? That would be a sad irony.
Compact Dictionary was in the store for 6 months and was downloaded over 19,000 times in dozens of countries. It remains a learning project, so it’s become the first thing I’ve released on GitHub.