Apple Bites Developers and Customers

Apple is trying to throw a bone to users of its older devices. The bone is more of a boomerang that’s going to bounce back and hit users and developers in the back of the head.

A number of sites are reporting today that Apple has made a change to the iOS App Store such that if a user tries to install an app on a device that can’t support it, they’ll be offered the option of installing an older version of the app.

As an example, consider my first generation iPad. It cannot be upgraded to any version of iOS newer than 5.1.1. Now consider app X, which was originally written for iOS 4, and then was later updated to require iOS 5 in version 2.0; in version 3.0 it was again updated to require iOS 6. The latest and greatest enhancement to version 3.5 requires iOS 7, but 3.5 isn’t in the store yet, since iOS 7 won’t be released until tomorrow.

If I had tried to install X before Apple’s App Store change, I would have gotten a message telling me that it was not compatible with my device and that I needed to upgrade to iOS 6 — which I can’t do. Today, if I try to install it, I’ll get a message telling me that version 3.0 isn’t compatible with my device and offering me the option of installing version 2.0 instead.

Sounds like a nice, customer-friendly change, doesn’t it? Most of the sites reporting on the change are certainly describing it that way. Unfortunately, it’s not that simple.

Consider that there was a reason why app X was updated. Developers don’t enforce a requirement for a particular version of iOS just because they can. They enforce it because the app uses an operating system function that isn’t available in earlier versions of the OS. So when iOS 6 came out, the developers of X started using some spiffy new feature — let’s say they started using the Passbook functionality to support gift cards. That functionality is only available to iOS 6 users, thus the restriction of X version 3.0 to iOS 6.

As a user, I may or may not understand that restriction — there’s a lot of feedback in the App Store that suggests that I don’t. So when I hear about the cool new gift card feature, I go to X’s page to install the app. I get a generic message that tells me I have to install an older version. It doesn’t explain what I don’t get by installing the older version, so I go ahead and install it, and I can’t find the gift card feature. What do I do? I immediately go back to the app store and post a one star rating, possibly with a helpful review that says “This app sucks. Gift card functionality is missing. Don’t use!”

Wait, it gets even better. Suppose I didn’t care about the gift card feature, but I like some of the features that are present in version 2.0. I keep the app on my iPad and use it for a couple of weeks, and then I discover bug: the app crashes if I try to use it after 5pm on Thursdays. (I’m assuming a lot here: most users aren’t going to go much beyond “the app crashes”. But I’m being generous.) Since I’m being generous, I report the bug to the developers directly instread of just leaving bad feedback in the App Store. Now the developers have a choice. They can:

  1. Tell me that version 2.0 isn’t supported any more. Now I’m pissed off. They lose a customer and I leave lousy feedback.
  2. Do the research to figure out why the app crashes on Thursday evenings and it turns out it’s only present in 2.0. Now they have a choice: do they fix the bug and release a version 2.1 for just those of us who can’t upgrade to 3.0? That’s going to increase development and testing time, so probably not. Again, I’m pissed off.
  3. Maybe they do the research and discover that it’s also present in version 3.0. At least now the time they spend doing the research and fixing the bug (and QA testing the fix) benefits their current customers. But they still have to decide whether to do a 2.1 release.

One more scenario: Many apps that require communication with a server turn off the communication for versions that have aged beyond a certain point. Consider our app X again. The makers were planning to turn off support for version 2.0 when 3.5 goes live in the App Store tomorrow. Apple has no way of knowing that they’ve turned it off, so when I come to the store this weekend and install the app it launches, but can’t connect to the server and I can’t use it. Hopefully the developers included a polite message in the app explaining that the version I’m trying to use is too old and I need to upgrade, but since I can’t upgrade, I’m pissed again.

What’s the poor developer going to do now? Apple pushes developers to adopt new OS functionality as quickly as possible, but this new App Store feature is going to punish them if they do.

No matter what, the result of Apple’s “customer-friendly” move is pissed off customers, and in many cases, additional work for developers.

Thanks, Apple.