Why rewrite a successful iOS app?

The Backpacker Checklist has been a modestly successful app for me in Apple’s App Store since 2009.  The app focuses on a very specific market: lightweight backpackers.  These fanatics are people who are looking to maximize their enjoyment of nature and part of that means not overburdening themselves with excessive weight in their backpacks.

There are lots of tips and tricks out there and some wonderful subject matter experts.  As a group, these backpackers love to shave off every excess gram of weight possible so they can enjoy their hiking.  Of course, there is always an ongoing balance because no one wants to be caught in the wilderness unprepared when bad weather rolls in.  Being certain you have all of the appropriate gear can make the difference between an enjoyable outing and some seriously bad consequences.

So I created The Backpacker Checklist for lightweight backpackers with two primary goals:

  • To help decide what gear to bring on any given adventure
  • To make it clear how much all of planned the gear weighs

As I was developing the app and using it myself I found that there were also some secondary goals that I felt were important:

  • To print or share the current packing list
  • To share tips amongst all users of the app (I was hopeful a community would grow organically, meaning without me doing anything!)
  • To show weights in English (for my own ease) and metric units (for better precision)

And so was born the original Backpacker Checklist.

People discovered the app in the App Store based on, I assume, keyword searching.  I made minimal efforts to promote the app outside of the App Store.  I wrote a few “articles” on topics such as “Experiences with a Tyvek Bivy”, “Sharing Food and Backpacking”, and “Zip Lock Bags Rule!”.  I hoped that people would find the articles in the Ezine and from their come to my web pages and discover the app.  My memory is now vague, but I think I tried to find  and contact some magazine authors to give them free downloads of the app in hopes that they would write a positive review.  I’m not sure I actually made actual contact with anybody through the articles or magazine writers because I received no replies or feedback. 

That was the extent of my promotional effort.

Despite my actual lack of effort people found the app.  I suspect this was primarily due to the tight focus on a niche market of enthusiastic backpackers.  Over the years, thousands of people have purchased the app and, I hope, have enjoyed using it.  A few users have actually sent me emails with usability questions/issues.  Other users have written feedback into the reviews on the App Store.

Based on the user interactions I have made some enhancements to the app.  However, when Apple introduced iOS 6 they introduced a new interface and required that all updated apps contain the interface updates.  For me, as a solo developer, that was a big hurdle.  My daytime job requirements had increased and I just didn’t have the time to make a good effort to update the app.

So, why rewrite a successful iOS app?

Well, it’s been a few years.  I feel bad letting the app just sit there.  I feel like I’m letting down users.  So I had been considering updating the app.  Naturally there are pros and cons. The biggest pro is that I like the topic of the project and I like the app itself.

In order for Apple to allow an update at this point, I’d need to update at least the user interface to iOS 8 (at least it was 8 when I started the update!) Updating the user interface is not a small task. At the same time I wanted to make sure to use auto layout so that I could provide an native iPad version of the app in addition to supporting all iPhones. And if I’m going to support both iPads and iPhones then it seems obvious that the app should synchronize list information across all of your devices. I considered whether to use a third party solution (which could enable Android or web UI later) or use Apple’s Core Data. Core Data is the reasonable solution for the lone wolf working on nights and weekends. Core Data drawback is that it is incompatible with original data format and I don’t think I can write a reasonable data conversion plus I’m dropping some features like putting one item inside another item.

Oh that interface!

As I mentioned, the original Backpacker Checklist was written in 2009, many versions of iOS ago. Since then, iOS has evolved into a more elegant user interface that is much flatter, having also eschewed skeuomorphism.    The user interface elements on the screen are much simpler and clearer.

Getting rid of default data

The original Backpacker Checklist came with a database of several hundred items along with weights for many of them. I spent a lot of time gathering all that information to make it easy for a new user. Some users wanted to be able get rid of all that “seed” information and just enter their own information. It hadn’t occurred that there might be anyone who wouldn’t want all that useful info…Putting in so much effort, I just assumed everyone would be delighted and that I’d go to sleep each night to the sounds of thunderous applause.  Well not everyone was so appreciative. And those users had to tap into each item, scroll to the delete button and then tap the delete button for every single item they wanted to delete. Ouch, that sucks. The app needed a way to let a user delete all of the defaults easily. And, as long as we’re thinking about this, they ought to be able to add them again if they want.

Sharing or printing a list

At the time that I wrote the original version of the app there was a limit of 3,000 characters in the body of an email. And there sure wasn’t AirPrint yet. I thought users would need to be able to somehow share their lists. I had wanted to enable users to send their checklist by email but 3,000 characters is a short packing list. So I came up with a labor-intensive (for me) work around. I wrote a whole web site to which you can upload from the original Backpacker Checklist. You can then share your list with friends by sending them the URL to your list. (In case you’re wondering, the site, including the web services for the app, is written in Python with Django.)

For the new version we don’t need the web site anymore because emails can be much larger. A bit more simplicity in the app itself.  I like that!

Update data to Core Data

If they had Core Data on iOS in 2009 I must have written off as too complicated. Having invested the time to learn how it works and how it can integrate with the UI, NOT using Core Data seems too expensive. The Core Data framework takes care of so much heavy lifting that I feel like I’d be crazy not to use it now.

New Features for Backpacker Checklist

Templates: each packing list is unique but many times there is a lot of overlap. When I do a 3-night backpacking trip I usually have most of the same gear. And then I add a down jacket for winter. Or a bathing suit for summer. But mostly the same. So why not have a template? A template is used to create a new list. The new list contains everything indicated in the template. After that you can change the list to your heart’s content without affecting the template. This makes it super easy to start over with a new list for each adventure.

Cross-device support: it just works. The app is designed to work across all sizes of devices. Plus it uses iCloud to synchronize across all of your devices.

Adding to lists: the original app always showed all of your gear and you could change the status to indicate whether items should be packed and whether they have been packed. With the new app you can choose from amongst all of your gear and quickly check the items you want to add to each of your lists. Then, while reviewing on the main screen you simply tap to indicate that items have been packed.

Apple Watch: speaking of tapping to indicate when items are packed, wouldn’t it be simpler if you didn’t have to pull out your phone each time you pack something? I thought so. And I have an Apple Watch. So I added a Watch interface in which you can check/uncheck items indicating whether they’re packed.

Adding the Watch interface was exciting. I sat on the couch with my Watch on my wrist, my iPhone on the armrest, and an iPad on the center cushion. I checked an item on my Watch, saw the iPhone update immediately, and then the iPad update a moment later….elation! I was yelling to my wife “ya gotta come see this!” She politely ooh-ed and ash-ed but she wasn’t quite as excited as I was.


The Backpacker Checklist has been a good app.  With little marketing many users have found it and made use of it.  And there is definitely room for improvement.  Apple’s changes to the iOS system (UI enhancements plus underlying framework capabilities) require a huge overhaul to the app.  And, in my judgement, it’s too much to hope to do a simple upgrade to the original app.  So we are introducing a brand new app.  If you write to me prestonrohner at me dot com I’ll be happy to give you a free download.  I expect I’ll start off with a free version anyway to try to “get the word out there” about the app.

May your load continuously lighten!

This entry was posted in Technical. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *