19 Jan

I had a little trouble getting Old School DM 1.2 out the door, but it’s done.  And I’ve mad significant progress on Hex Map.

Let me give you a little peek into the iPhone app development process.  A couple of months ago, after I had my first “universal” app done (meaning an app that runs on both iPhone and iPad with different interfaces), I thought “why not make Old School DM universal.  So I clicked the button in XCode (the application Apple provides to do iOS development) to make the app universal.  This basically creates some placeholder code so that I as the developer can implement rules about how the app should work on iPads and iPhones.  After a couple of hours I realized that, frankly, Old School DM as my first app is rather kludgy and would be “non-trivial” to make universal.  I’d rather spend the time implementing new features in Old School DM or working on Hex Map than making Old School DM work better an iPad.  So then I settled down to implementing the new features and forgot all about this “universal” stuff. 

Until Monday, when Apple released version 1.2 to the App Store.  I quickly starting rounding up the iPhones, iPod touches, and iPad in the household to update the app on each.  Imagine my chagrin when I started up the app on the iPad and it didn’t work right!  Instead of seamlessly taking the encounters I had created in the app and presenting them within a new “Misc. Encounters” adventure, I’m looking at a screen titled “Items” with none of the expected button.  Oh crud.  After confirming that the problem was confined to the iPad, I posted a warning to the forum and added a warning to the description in the App Store (basically “If you have an iPad don’t buy this app or upgrade!”).  That was no fun.  Then I fired up XCode to figure out what’s wrong.  I had tested the app on the iPad, right?

Remember that proverbial button I pushed to make the app “universal?”  Well, when I decided to abandon that and switch back to iPhone/iPod touch, I didn’t do it right.  I did it well enough so that resulting app was clearly identified as, and acted like, an iPhone app, but it still had some iPad specific code.  So when the app was run on an iPad instead of an iPhone, the user was presented with a mix of my app and some placeholder code.  Oops.  I would have seen this immediately if I had tested the app on the iPad or even on the iPad simulator.  But I hadn’t, so now I was in the awkward position of having a wait a full week for Apple to get around to re-reviewing and re-approving the app.  Or maybe not.  It turns out that Apple has an Expedited Review Process for emergencies.  To make a long-story a little shorter, Apple approved my request for an expedited review and the fixed version 1.2.1 version was posted to the App Store about a day after 1.2 had been release.  Yay, thank you Apple for bailing me out even though it was my own darn fault.

On a more interesting note, I have made substantial progress on Hex Map over the last week or so.  Users are no doubt aware that the current version (1.0.2.) doesn’t save their work.  So every time you leave the app, you have to cross your fingers and hope your map will still be there when you come back.  (Technically, the way this works is that if another app needs more memory than is readily available, the OS will tell every background app “free up as much memory as you can or I’m going to shut you down.”  If, after all the apps have tightened their belts, the running app still doesn’t have enough memory, background apps are shut down.  A well-behaved app is aware of this possibility and saves its work, so that when the user comes back to it, it can restore the session and the user never even knows that the app had been shut down.)  I’ve fixed that.  Now the app continually saves your work so that you can pick up where you left off no matter what.  (As it should have all along, but I was learning a lot of new stuff with this app, so it made some sense to simplify by deferring that piece.) 

In some ways that’s a “big deal.”  It took quite a bit of work to implement that and it addresses a critical limitation of the app.  But on the other hand, it’s not very exciting.  I had been thinking I would hold off on releasing this version until I could include some of the more substantives suggestions people have been making, but I think I’m going to after all.  The upside to releasing a version that just adds this save capability is that people immediately get a more stable product to use.  The downside is that people might think “In the two months since the last release all they’ve added is some back-end save thing that should have been there from the beginning?? Why are they ignoring all the suggestions people have been making?”  To which my answer is: a. there is no “they;” it’s just me and I have a day job; b. no I’m not ignoring the suggestions; I’m looking forward to working on them; and c. forgive me for investing my time on the app that people have actually paid for for a couple months.  Does that sound too defensive?

So anyway, that’s where we are.  Look for a new (boring) release of Hex Map shortly (available in early February probably) and a more substantial release to follow.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: