Database Reference
In-Depth Information
There's no way to build forward-compatibility into a server, and the client will still have
to conditionalize on what comes back in the payload from the server. So, we're back
to square one.
Option 3: App Store Version Roulette
What you'd really like to do is to match a specific server version to a specific app version,
so that you keep down the conditional code inside your app and reduce your testing
matrix nightmare. Your Android brethren have this base covered, because you can
directly download Android applications to the phone without going through an app
store, at least with most carriers. But along with the added security of the iTunes App
Store, you also lose the ability to directly install apps, unless you're a developer.
What you can do is place multiple products in the app store, each basically a version
of the application specific to a given server backend. So, in essence, you'd have Buggy
Whip Chat for Server Version 1.0, Buggy Whip Chat for Server Version 2.0, etc. This
allows you to have customized maintenance releases inside of each API version, but
make a clean cutoff on the functionality axis.
There are a few problems with this technique, alas. First off, you've now shifted the
responsibility of applying conditionalization logic on to the end user. They may have
no idea what version of the backend software they are connecting. This means that
their IT department is going to have to communicate this information to the users, and
then update the information if they ever upgrade their server software.
More alarmingly, you're now potentially spamming the App Store with multiple ver-
sions of the same product. How many versions of the same app will Apple allow before
they pull the plug, perhaps without notice? It took a trip to WWDC and a one-on-one
with senior management of the App Store to get an answer for my company; you may
not have the time and resources to do the same.
Option 4: Exotic Distribution Methods
If the customer base is small enough and the revenue from the app high enough, you
might consider doing a custom Enterprise version of the app for each customer. In other
words, have each customer apply for an Enterprise provisioning certificate, send it to
you, and use it to compile a customer version of the app that the customer can have
their employees directly download.
Another alternative is to use a boutique app store. It isn't well advertised, but Apple
actually has a spin-off company called Apperian, which allows enterprises to create
private-label app stores. It still requires an enterprise-provisioned application, but it
provides a more App Store feeling experience.
 
Search WWH ::




Custom Search