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).
Related
I am developing app that only support iOS 8.. not compatible for iPhone 6 & iPhone 6 plus. so i have a query related that i have to add #3x size icons in Image Assets? having confusion on it..
OK I asked the question on the Apple Developer Forum and here is an answer I got in return:
That is a given by Apple's design. Apps already in the wild perform
whatever OS magic to support those devices. You are not required to
explicitly support them (but they should still run in emulation mode).
Also you may note every second game on the App Store states things
like "will not run on anything before iPad 2" and that kind of thing
and that's merely a designer/technical choice Apple seem happy with
regardless of many customers not reading these things or understanding
them and buying anyway.
Now this is someone's opinion (much like the answers and comments here), however the answer does seem to make sense.
However the only real way to know if Apple will reject the app is to submit it (it's a hit and miss process).
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.
me and my friend develop iPad application (a lot of CoreGraphics stuff). But we can't find an agreement. I tell him that testing on device is essential, he tells me that testing on iPhone 3G/3GS will be enough (I have both devices). Can you tell me, probably we really can test our app on 3GS? The main thing is that interface will be iPad designed, so I even not sure how we'll do that...
UPDATED: It is iPad only software, UI is designed for 1024x768
For a high quality product, you have to test on the device. The performance of the iPad is different, and if you have any interaction which involves threading, that can lead to race conditions that you might not find on the iPhone (slower) or the simulator (too fast). I've also seen a number of students run into memory issues that they didn't find on simulator, but that they discover on device.
This doesn't mean you have to buy a device - you can either solicit a friend with an iPad to be a beta tester, or you can lurk in a Starbucks or Peet's. You'd be surprised how many people will bring in iPads, and how many of them are willing to try out a new application.
You can use the simulator, but that's not enough. It is essential that you test your app on an actual device, because the performance on the simulator is vastly different than the device.
If you don't have the money or the iPad isn't available where you are, then ask someone who has one to be a beta tester.
IMHO testing on the device is one of the first rules of developing for a mobile platform.
Apple strongly recommends you test on device before releasing. The iPad and the iPhone are running two different versions of the OS on two different hardwares. Some functions are not really emulated on the simulator. You're asking for trouble.
On the other hand, if you don't have an iPad and you need to ship, you can always roll the dice.
We've ended up having it fail on different devices. Being a small company (about 30 people), we have quite a few different iPhones floating around. Even though we have pretty much every version covered, we still don't cover all releases of the OS. We've caught several bugs internally but there still seem to be some that happen out in the wild that just require different hardware/software configurations. In short, test on as many as possible, but it is very unlikely that you will ever be able to test on all software/hardware combinations.
I'd recommend having the latest iPhone, one that is one or two generations old, and probably the same for the iPad (when it ends up having older hardware versions), but DEFINITELY have both one iPhone and one iPad (and maybe even an iPod touch).
Use the iPad simulator in the iPhone SDK 3.2.
While the performance level can vary, so it certainly would be best to test on the actual device, don't let it be a barrier. You can use the performance analysis tools in the SDK to find problems.
You might try a beta release anyway.
Not a must but highly recommended. I cannot imagine what is worse than someone reports a bug but you have no way to confirm it's true or false. The iPad is faster than 3Gs generally speaking. Of course, your partner may have a "time to market" concern. So, there is no fix answer to this question.
It can be done but is not recommended. I had a iPad app in the store on April 1 before the iPad was released on April 3. It had been tested on real iPhones and the iPad simulator in the SDK. I don't recommend it but there was no choice at the time.
If the performance is acceptable on an actual iPhone 3G, it should be fine on the iPad which has a faster CPU.
You can test your application on simulator. but it is not enough to upload your application on app store because some memory issues generated on device which cannot be produced on simulator. So, better to test your application at least once before uploading on app store. You have to also check your application under performance tools like "leaks".
I'm building an iPhone application with a base SDK target of 3.1.x. I've got a friend who offered to test it on the OS 4.0 beta, but I'm wondering in advance if I should bother. Will my application run under 4.0 or is it not backwards compatible? I have to imagine it will since apps built for 2.x run on 3.x just fine AFAIK. Any gotchas?
This information is still under NDA and therefore cannot be discussed here, except what was mentioned at th keynote and is thus public.
That said...
I can see the announced multitasking as a gotcha in terms of memory, performance and application state. Testing on OS 4 seems like a good idea in light of that. However, I your friend's device is not a latest-gen hardware device (iPhone 3GS or iPod touch 3rd generation), you will not get test results that deal with multitasking.
Also, remember that when installing the iPhone OS beta, you will need to add your friends UDID to your list of testing devices in your devloper portal or else the device will lock up when you upgrade.
In case you or someone reading this needs to know:
To upgrade, you can either use XCode's Organizer or simply use iTunes. Hold the "option" key and click on the "restore" button. A window will pop up asking you what firmware to use.
Again, thes kind of questions are not yet really legal outside of Apple's develope forum.
I hope this helps. Good luck and happy developing!!
I've been using 4.0 beta for a few weeks now, and haven't run into any problems with my / App Store OS 3 apps. I don't think there were any changes in OS 4 that would break existing OS 3 apps but I can't say so with complete certainty.
Most likely any features from 3.0+ will be in 4.0. Features in 2.x may be removed.
No way to know for certain unless you can use the beta or wait until the official release.
You should always test on as many devices as possible. As mentioned, OS 4 is particularly good to test with just to make sure you interact well with the new multitasking features (which is public knowledge so it's not like saying anything about that would go against the NDA).
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)