As I wrote in a previous article, my last attempt at making an app had problems. I'm pleased to announce today that I've finally launched something much better.

Parts was an app to keep up with items you needed to buy for projects. It could remember where you were when you found an item, what the item looked like and how much it costs so you didn't have to. I removed Parts from sale shortly after it's release because of its problems. Chainguard is my attempt to make a better version of this app.

First there were a host of design problems to address:

  1. Lists could not be renamed. This meant typos lived on forever unless you wanted to delete your list and try again. Chainguard's UI allows people to simply tap on the title of a list and rename it. You can rename lists in Chainguard easily

  2. I was trying to be clever in Parts and make the app parse an item's name and price all in the same text field sort of like how the app Fantastical works. This proved to be more confusing than useful and most people did not realize it was capable of this unless I specifically explained it to them. Chainguard is much less clever. This is much easier to figure out.

  3. The price input keyboard in Parts did not allow users to input decimal values. This was silly. Chainguard fixes this problem. Decimal Input For The Win!

  4. Parts had no sample data. First time users would find themselves with an empty list and an unfriendly experience. Chainguard fixes this by asking if the user would like a sample list on launch. The first submission of Chainguard simply included this sample list, but the Apple Review Board decided that was not good because it put data into a user's Documents folder without any action from the user. The Documents folder is only for data a user has created because iCloud backs up that data automatically. The first time prompt was my solution that allowed Chainguard to make it through the approval process. Now you can choose to add some sample data.

  5. Parts suffered from my lack of design abilities. With the help of smart people like Dave Wiskus, Chainguard looks much more like something I can be proud of.

  6. The name Parts was a poor choice. Search for "Parts" in the app store and you'll find over 1000 results. On a good day, my app was number 20 or so in that list, which is not great. Chainguard is a much better name since it is less generic. On launch day today, my app is the 3rd result for the word "Chainguard" and I'm hoping that it will move up to the 1st result soon.

  7. Parts asked for a user's location soon as you launched the app. To a first time user, this made it unclear exactly why Parts wanted their location. Chainguard is much smarter and doesn't ask for a user's location until they decide they want to record the location of a newfound item. Better Location-Permission Context

  8. Parts tried to use iCloud's document sharing feature to sync lists across devices. This proved to be a major technical problem that results in awful user problems such as missing images. Losing a user's data makes me sad, so this needed to end. Chainguard does not try to be to slick and avoids syncing through iCloud for now. I'd rather have data that doesn't sync than data that might disappear.

Now I have an app I can be proud of. It is not the best app ever created, but it is definitely an app I can show people without shame. It solves a real problem for me and hopefully for other people as well. It does this without loading screens, forced logins, or any of the other upsetting features I've built for my clients' apps.

You can find it here. I hope you enjoy it!

Chainguard Logo