Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Support legacy iPhone users

Tags:

iphone

ios4

Now that iPhone SDK 4.0 is available for download, and iOS 4.0 will be available for consumers shortly, does it make sense to start using the new features available in the 4.0 OS?

My primary concern is that using the 4.0 features mandates that end users also update their phones/ipods to 4.0. While this process is pretty painless, is it a reasonable expect most users to update? The application itself doesn't really need anything introduced in the new OS but some of the traditional animation techniques are now "discouraged" in favor of their block-based counterparts. This is fine for me, I'd prefer to use block methods, but I'm concerned that this is a hassle for end users.

So what's the general experience on this? Do you plunge ahead with the latest and greatest or stick with the current version?

p.s. This assumes GM installs of the OS on end users when it is available - not beta.

like image 646
Paul Alexander Avatar asked Jun 21 '10 21:06

Paul Alexander


People also ask

What does legacy mean for iPhone?

A Legacy Contact is someone you choose to have access to the data in your Apple account after your death.

Is there a way to unlock a deceased person's iPhone?

Request access with a court order or other legal documentation. In the U.S. and other locales, you can request access to a deceased person's Apple ID and data with a court order that names you as the rightful inheritor of your loved one's personal information.

How do I access a deceased person's iCloud?

Obtain a court order And in fact, Apple's official policy for recovering a deceased person's Apple ID requires you to provide a court order stating the following information: The name and Apple ID of the deceased person. The name of the next of kin who is requesting access to the decedent's account.


2 Answers

It depends. You have at least 3 options and the best way to go depends on your app's requirements:

  1. Your app doesn't require any iOS 4.0 APIs - you should build with BaseSDK 4.0, but set Target Deployment to the minimum version you must have (ie: 3.0).
    Advantages: (1) Your app to run on any device that has at least that Target Deployment version and (2) it will support fast App switching on devices that have iOS 4.0. Disadvantages: You can't use any APIs from after your Target Deployment version.

  2. Your app would be better with 4.0 APIs but it would still be usable without them - if you can conditionally use 4.0 APIs either by providing reduced functionality when on pre iOS 4.0 devices or by providing similar functionality while using different APIs when on pre 4.0 devices, then you can build with BaseSDK 4.0, set Target Deployment to to the minimum version you must have (ie: 3.0) and conditionally use the iOS 4.0 API calls. Advantages: you can run on all devices that have at least your minimum iOS version. Disadvantages: all those conditional calls can get complicated.

  3. Your app requires some iOS 4.0 APIs in order to function - Here you have no choice. Build with BaseSDK 4.0, set Target Deployment 4.0 and use those 4.0 APIs.
    Advantage: code is simpler, no conditionals for iOS version Disadvantages: Your app won't run on iPads yet (they get 4.0 in "Fall 2010"), your app will never run on iPhones earlier than 3G (they don't get 4.0) and some iOS 4.0 features won't work on iPhone 3G.

In all cases, your Base SDK will be 4.0, your Target Deployment will the minimum that you require, and if you need a newer API you can conditionally use it if the device has it.

Just by compiling with BaseSDK 4.0 you will get fast app switching on 4.0 devices even if you don't use any 4.0 features. All apps should at least do that even if they target iOS 2.0. Don't use the 4.0 features if you don't need them and you can target a broader range of older devices and devices that haven't upgraded.

This recent answer on SO summarizes how to do this setup for BaseSDK and Target Deployment and how to conditionally use APIs to target multiple firmware versions.

like image 189
progrmr Avatar answered Sep 17 '22 13:09

progrmr


The recommended configuration is to set Base SDK to highest (i.e. 4.0) and Deployment Target to appropriate version (depends what framework feature is used in your app).

Of course, the app can always check OS version and skip calls to un-supported frameworks. It is a common technique to build iPad and iPhone universal apps.

like image 43
ohho Avatar answered Sep 20 '22 13:09

ohho