Blynken's bummed too Last year I launched my first app that wasn’t funded by a client or employer. It’s called Parts. I never expected it to make millions of dollars, but I had hoped it might at least make enough to pay the rent or some such. In total, it made $44 according to AppViz (a great tool by the way).

After some time being bummed out about this, working on client stuff,
and considering attempting other apps, I thought it would be worth
considering what was wrong with the app, and why it basically failed.

Parts was originally intended to be “your purchasing todo list”. It was supposed to be your assistant when you looked for capacitors and pickups for your guitar customization, or the handlebars and cranks for your next bike build. It would accompany you while visited shops in your travels, and it would make sure you didn’t forget where you found that perfect pickguard. Parts was meant for anyone who couldn’t (or didn’t want to) buy a certain item right at the moment they found it in a shop.

I’ve spoken with some of the app’s users, along with a group of
developers and designers whom I respect, to get their opinions on the
app—the good, bad, and the ugly. The results were interesting, and I
thought I would share them for anyone else working on their first app.

So, here lies my attempt at understanding what sucked about Parts:

Design Problems

  • You can’t rename lists once they’ve been named. Typos live forever.
  • Most people didn’t realize the app could parse an item’s price and an item’s name in the same input field. Secret feature
  • When editing a part, the keyboard I chose for an item’s price didn’t allow for decimal values. No decimals
  • Parts should have first-launched with some sample data to help explain the app’s abilities. I have been hearing this advice since before the iPhone came out, and yet, for some reason I didn’t do it.
  • Various UI details were not implemented well. This was my first go at an app for iOS 7, and it was designed when there weren’t have many iOS 7 apps to use for guidance. And it shows.
  • The name Parts was a bad choice. Search the app store for “parts” and you’ll find at least 1,500 results. Worse, my app isn’t even usually in the first 20 in the list.
  • It was unclear to users why the app wanted to know the user’s location. To me, the app’s ability to remember where you were when you found something is a big part of what makes it useful. If the user doesn’t know why it’s happening, then it’s not helpful.

    But... why?

  • Parts made use of iCloud’s document sharing to share lists with other people. What people really needed was a way to send plain text or html that could be read by anyone, even without the app.

Technical Problems

Parts was based on UIDocument. I thought this would work well since iCloud’s UIDocument syncing is supposed to work better/easier than iCloud’s Core Data syncing. This makes it a huge pain to build many useful features, such as showing a list’s remaining price before you open a list, or adding cross-list search type features.

The Solution

Sometimes, you need to build an entire thing to really get a feel for how it should be designed. Many of the things I’ve learned about the problem Parts is trying to solve didn’t become clear until I had a mostly-built app, or even after it was published to the App Store.

A big thing I will change is switching to using Core Data rather than UIDocument at the base of the app. The app will lose syncing, but gain the ability to easily have features like “show me items on any list that are closest to my location” or “show me items that cost less than this much because I only have $100 to spend on hobbies this month”. It will also mean I can be more confident that the app won’t have problems with losing a user’s image data (which happens often right now, sadly).

As a developer, it’s easy to think the solution to a problem lies purely in code. However, my website and marketing information about the ap were also not awesome. I have enlisted the help of a friend who is much better at this who will be teaching me how to improve thi aspect.

Death to Parts, long live codename Manifest. I don’t know exactly what it will be called, but it will no longer be called Parts. For now I’ll call it Manifest, because that sounds cool at the moment.

On the plus side, an app that does poorly has very few people to disappoint when it tries to become better. I’ve learned quite a bit from making this app and everything that has happened since then.