A short time ago, I finished Iteration 2 of the development of Fort Collins for Kids. Writing the app to run on both the iPad and iPhone was a challenge. I had always heard that building a nice-looking app for both devices meant designing two different apps. While I understood that intuitively, I blissfully ignored that and tried to fit the same UI paradigm into both versions. Then I fretted for awhile at the ugliness of the iPad version.
Two edit buttons visible at the same time? I got to that point by taking the same basic interaction of the iPhone app and slapping it into a split view controller.
Even worse in my mind is that clicking the edit attraction button brings up another view controller rather than just enabling editing in the existing view controller.
All of it worked, but it wasn’t going to meet anybody’s definition of good user interface. I realized I had three choices:
- Rewrite the iPad application to use a different user interface structure.
- Make the app only run on the iPhone.
- Keep it ugly.
The first choice is the obvious answer, but I belatedly remembered that the app I’m building now is nothing but an editor to build the database file for the real app that I plan to put in the app store. Making the perfect editor app is an interesting goal, but not when it’s delaying my progress like this.
Once I came to this realization, the decision became easier. Entering data on the iPad app would be easier than doing so with only an iPhone version, so I decided to just stick with option #3.
This did lead to another decision, though- the final Fort Collins for Kids application will be iPhone-only. The primary use case will use the iPhone, and the extra work to make it run on the iPad just isn’t worth it.
Once I made it past this barrier, the rest was surprisingly easy. I got the app working with Core Data, and included Save and Cancel buttons when editing the individual attractions.
In my next post, I’ll talk about the design of the editor app after iteration 2, and then discuss my plans for the next iteration.