This question is unlikely to help any future visitors; it is only relevant to a small geographic area, a specific moment in time, or an extraordinarily narrow situation that is not generally applicable to the worldwide audience of the internet. For help making this question more broadly applicable, visit the help center.
Closed 11 years ago.
I am digging deeper into iOS application coding, and am running across the usual problem of trying to decide what versions of the iOS base I would like to focus on.
The application I am focusing mostly on is an older one of mine, DumTek, a Middle Eastern drumming tutor. It runs currently on anything back to 3.0, and might have even worked further back. I do use iAd but those are easy to enable or disable for different versions.
It's clear that Apple does not want me to make applications that go back too far. I have an older 3.x device which I mostly use for development, but that version of the OS and even 4.x are lacking some pretty cool features I'd like to use. I could enable or disable features depending on OS support, but I fear that will complicate things immediately and make maintenance harder. It also greatly increases my on-device testing footprint.
I am inclined to decide that I should just support 5.x so I can use iCloud for personal data storage, but that is not 100% necessary. I could say for 5.x devices the option to use iCloud is there, but for 4.x devices it stores locally only. I could also continue to support 3.x devices by disabling all of these new features.
So, in summary:
Should I abandon 3.x, even though not everyone has upgraded to 5.x capable devices?
Should I abandon 4.x and focus entirely on 5.x devices?
This is a fundamentally difficult question to answer, and depends on lot on who you think your customers are, and how complicated your code would get. No one can offer super-specific insight about your business case without knowing a lot more about it.
As you're determined, there are two considerations:
Whether you're targeting devices that can't run iOS 4 or 5.
Trading off your long term technical complexity vs potential users.
Re: #1, there are some devices that are stuck on iOS 3.x forever (iPhone 2G, early iPod touches). There are some that probably are stuck on iOS 4.x forever, but I'm not sure where that line is.
In general, iOS users who can upgrade, do so quickly (I don't have a link for this but maybe others do--- I've certainly seen this of my users).
TL;DR: A reasonable rule of thumb in general is, unless you're making a point of supporting legacy devices or laggard users, you're pretty much OK requiring the latest major version of iOS. iOS 5.x is still very new, but within a month or two it will be effectively universal on devices that support it.
Typically support up to one version behind. I'd say abandon supporting 3.x explicitly, but still support 4.x until adoption of 5.0 increases.
http://insights.chitika.com/2011/ios5-breaks-into-the-market-with-record-numbers/
You should be able to soft-implement iCloud just like with iAd between 3 and 4, and have users on 4.x use whatever prior storage version you've been using in the app.
However, regardless of what you do, make sure your App Store data (and info files) reflect the minimum iOS required for your app... I updated my app to use 4.0 features, and forgot to update these, and as a result all of my 3.x users updated to the new version and get a crashing app - poisoned my reviews forever.
There may be some statistical evidence suggesting that users of devices running old OS versions tend very disproportionately to not be spending money on new apps. You will have to decide if that small and shrinking customer base is worth your development time, versus spending that same time on other apps/endeviors for the larger customer base running newer OS versions and buying more apps.
The developers of instapaper are one possible source for OS versions percentages using that popular app.
Related
The skinny: my app works excellently in iOS 5.x. However, certain features do not work so well in 4.x. All is resolved with an update to 5.x.
Option 1 - Good programmer: find out what was done in my app with these particular features and why they don't work in 4.x.
Option 2 - Lazy programmer: detect the version of iOS the user is running (I'm already aware that this is not advised) and suggest they upgrade if it's older. Even further, lead them to Settings/Software Update through the use of iPhone URL (eg: iossettings://).
Your advise is greatly appreciated.
This question may not suit StackOverflow very well, but I'll provide my thoughts. Support the platform or don't support the platform. If you don't support iOS 4, then don't support it and compile the app to require iOS5. If you do support it, then fix the bugs. Don't support it but nag the user. That's just lazy as you say.
Many apps have already moved to iOS5-only. Unless your market is unusual and is particularly likely to have iOS4, then I would drop iOS4 support and move on. The time you waste supporting it won't translate into enough sales to cover it for most apps IMO. And the bad reviews you get on iOS4 will outweigh the few extra sales you might get there. Pick an audience and delight them.
Most people are running iOS 4 because their devices don't support iOS 5. Option 1 makes a lot more sense. Or just don't support iOS 4 at all.
I am developing iPhone application which involves the frameworks available from iOS 3.2 (Core Text, etc..) for rapid development, but the client requires deployment target to be iOS 3.0
The dilemma is either drop the comparability requirement together with development cost but narrow the potential user range or to take an significant extra effort to develop application compatible with older iOS.
The dilemma comes from the opinion that the users who do not update their iPhones are the ones who do not use AppStore, do not buy apps, etc... so keeping developing for them does not have marketing sense.
Is this true? Do you know any reliable resource/research regarding the subject?
As i see it - Apple is one of the companies with the highest upgrading percentages, most users upgrade to a steady release no longer than 3-4 months after its out (the more savvy ones will upgrade almost immediately usually),
Honestly i think the number of users who are actively downloading apps that DON'T have iOS > 3 is low enough to "ignore" it when needed.
If the decision was left to me i would go for > 3.2 as you need Core Text as you said and the downside isn't that high .
Thats my personal opinion about it :)
Cheers.
Definitely don't waste your time. Virtually EVERYONE is on iOS 4+ now, and virtually everyone will be on iOS 5 by early next year.
Also, please use the search function next time, this question has been asked many times before.
If you are selling such a massive huge number of apps that even a tiny percentage increase in sales can pay the salary of full time programmers and QA testers, and your app is usable without the newer APIs, then maybe it's worth supporting ancient OS versions.
If not, it's most likely not worth it, as
1) the smaller feature set allowed by not using the newest APIs, and
2) the longer development and testing time as well, might cost you more new sales than you would get from customers with ancient devices; and
3) people who don't upgrade their OS or their devices don't buy nearly as many apps as people running more up-to-date OS versions.
How can I decide the oldest iOS version to support in my app?
Are there any kind of usage / installation statistics to make this decision easier?
Not officially, but a few of the big developers release statistics on their blogs. Instapaper is a good example. I'm sure there are more if you google around, but for me, its once a version hits 5% or less users, its ok to scrap support for it. (I recently stopped supporting iOS 3.x).
You could also check in your app and send it to a server or something to log and check your own statistics.
A tip from the other perspective. A lot of new features were introduced in iOS 3.2, even a lot of stuff that's not whiz-bang, but you might want to make use of, like gesture recognizers. You're probably likely to accidentally use a few minor features that didn't exist prior to 3.2 when coding, and then when you test on an old device you'll discover you need to rewrite that code. So I would say target at least 3.2.
Some developers are constrained by the oldest OS for which they want to keep a running and non-updated iOS test device. You should not set the Deployment target lower than the lowest OS on which you plan on doing actual device testing.
Note that you should not use raw OS user base statistics, as users of devices running older OS versions seem to be far less likely to buy or download new apps than those users who buy new devices and/or update to the latest iOS version.
I have edited this OS 3.2 question based on advice that it could infringe Apple's NDA which is something I have no desire to do. For what its worth I didn't reveal anything likely to upset their lawyers. And in my opinion the SDK is their IP, and therefore it's their decision regarding the terms we agree to when optionally downloading it.
Without breaking NDA I can summarize that it asked for opinion on whether OS features of iPad were likely to become part of the iPhone OS. But consider the question withdrawn...
It is very likely that by the time the iPad comes out, there will be a new version of the iPhone OS. Whether that's 3.2 or whether it gets bumped all the way up to 4.0 is likely going to be on how much new stuff there is; though my bet is that Apple has worked its way through a lot of engineering resources for the iPad and as such, there won't be that much new-and-noteworthy in the next iPhone/iPad release. We may have to wait longer for other long-desired features (like background tasks).
The new OS (3.0+) adds more features which speed up the development (like working with the lists etc). On the other hand there could be (potentially) a lot of users somewhere still running OS 2.2.
Is there any place to look for statistics? Could someone offer an advice on the target OS for a new iPhone app scheduled for Christmas release?
Based on Admob data, adoption rates of the earlier SDK releases have been pretty good in past. It takes a couple of months to reach over 60% adoption. See Admob stats
On the otherhand, I just saw another Admob report, which indicated that iPod Touch users are more likely to buy apps and they are not that likely to upgrade.
However, I'd bet on 3.0 for Christmas market and next year, if you need something from 3.0 SDK.
Given this data, if you're only supporting iPhones there's no reason not to go 3.0 only. If iPod touches are an important part of your audience, it may by a harder decision.
However, I'd wager that the people willing to pay for your app are also willing to pay for the 3.0 upgrade for their iPod touch, so they can get the latest and greatest app.
Finally, in my opinion, if there's a significant draw to 3.0 for development reasons, I'd say go for it. I'm writing a 3.0 iPhone app at the moment, due for release in the next few weeks, and I didn't even consider 2.x - Core Data is too much of a draw for me, even though I can achieve persistence with SQLite.
It depends. If you want to take the advantage of the new features you must use the SDK 3, if you don't need them you can just stick to the old one.
The problem why users stick to old soft has two sources in my opinion:
iPod Touch users needs to pay for the upgrade and not all of them will want to do that
iPhone OS 3.0 is significantly slower then 2.0, it has some nice adds but it's so slow that sometimes I regret upgrading my iPhone 3G (I think it's less noticeable on 3GS)