Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 10 years ago.
Improve this question
I am rather new to iOS development. I have previously developed several apps for Androud and i want to code them for iOS.
These apps will user CoreLocation, AVFoundation and such - mainly apps for music and localized events.
My question is: which iphone model should I buy to test my aps.
I am currently considering either 3GS or iPhone4. Some friends that develop for iOS recommended to buy 3GS - it can run iOS6 and packs all the necessary features - gps, accelerometer, compass.
I would actually go for iPhone 4 for the following reasons:
Retina screen which is found in many other devices (iPhone 4S, iPhone 5, 2 generations of iPod Touch), which is critical to verifying your interface looks sane
iPhone 4 is more likely to support future versions of iOS. Having a HUGE adoption rate it might be very critical for live apps (when you run into a bug and have to reproduce it)
If I'm not mistaken, multitasking is not supported by 3gs, which also might cause some bugs.
The amount of users with iPhone 4 devices is quite big according to many surveys and will (if have not already) outgrow 3gs owners.
iPhone 4 is just so much better :)
Don't always buy the weakest possible model out of all options. The 3GS can run iOS 6, and it has all the "core" features, yes, but there's no signs of life for it in the near future. You may start developing apps tomorrow, the day after iOS 7 gets released, and it turns out there's no support for the iPhone 3GS.
If you're really serious about it you should at least get an iPhone 4S, or at the very very least, an iPhone 4. If you buy an iPhone 3GS it may be a waste of money in the long run.
If that doesn't cut it for you, an iPod Touch 5 or iPod Touch 4 will be great for development with a few limitations, but both of them will be supported for a longer time than the 3GS (My guess).
The more devices available to you the better. Your friends suggestion of a 3GS might be a bit too old, but if your app runs well on hardware that is going on 4 years old then you will be sure that it'll be well optomized for the iPhone 5 and beyond.
Having an iPhone 5 available would be very useful for testing the different aspect ratio and how it affects your apps as well. The iPhone 5 will also future proof you for a bit as the 3GS will likely not support iOS7.
So basically, if can afford to get an old used iPhone 3GS and an iPhone 5 (or equivilent generation of iPod Touch), I'd get both.
It is upto you to decide what phone best works with you.
Do you want to develop for iPhone 3GS? Most likely in the next revision of the iPhone, Apple will drop support for 3GS. So to future-proof yourself a bit, I would go with 4s. This way you can have 2 years worth of development time with the device and also work on stuff which is not available on the 3GS.
Also 3GS may have some hardware missing which is found on the 4S (I don't have the exact list at the moment)
Ideally I would choose a 3GS and an iPhone 4+ as they are quite different.
The 3GS is best for testing that yr App will run with only 256MB of memory. The later phones have 512MB+. The 3GS also tests non retina screen usage. Later phones have the hi-res screen.
Without both types you can't truly test them. The simulator helps but isn't a 100% test.
The simulator from Keynote works wonders and emulates over 2200 devices.
http://mite.keynote.com/
Related
Does Apple provide data about iPhone models currently in circulation? I can only find data about iOS versions. I'm about to port a game from Android and I'm wondering if I need to worry about any models lower than the iPhone4, most specifically the 3GS? If they're less than a couple of % of the current market share then I won't worry about it.
Do Apple, or anyone else provide this data?
It's worth noting that the iPhone 3GS is the most recent iPhone model which cannot run iOS 7.
Apple provide information on OS version (but not device) here:
https://developer.apple.com/support/appstore/
As at August 24 2014, the splits were:
iOS 7: 91%
iOS 6: 8%
pre-iOS 6: 1%
That gives a cap of 8% of total iOS users using the iPhone 3GS. In practice, it will be much less than that, because there are also some iPads and iPod touches which don't support iOS7, plus people on later devices who have chosen not to upgrade.
Stats from one of our own popular apps which is run almost exclusively on iPhone show that <3% of users are on iOS 6 or earlier with a screen size of 320x480 (and therefore no more than 3% of users are on iPhone 3GS).
As regards porting or creating a new app, I would need a very strong motivation to support iOS 6. My default position would be iOS 7.1 or above.
I recently gave my iPhone 4 to a friend so I don't have a Retina 3,5" Device anymore.
I wondered if theres a way without much tweaking the app code to get the 3,5" Version on the iPhone 5(like an App which isn't optimized).
If you do not include (or temporarily remove) Default-568h#2x.png if will run as a 3,5" app.
The simplest way would be to test on the iPhone simulator and change the hardware from retina 4 inch to retina 3.5 inch!
Or ask your friend to borrow their phone and test it on the device which involves certificates so it's slightly more inconvenient.
Either way, it's not too hard to test on multiple devices. Additionally, if you have an iPod touch that is older than the 5th generation, that works too.
Generally you can purchase, cheaply, used iPod touches online to use for development testing. Good luck!
I am building an iOS application for public release, and I would like to develop it against iOS 4, as I see from the instapaper stats from November that iOS 5 has a 48% market share, which is good, but my app will probably not be used by these early adopters, and it's probably not going to be enough to force them to upgrade.
The issue is that I only have an iPhone 4S, which shipped with iOS 5. I have been unable to find an iOS build for my 4S, which upon reflection makes sense. Nontheless, I'd like to know if there is some sort of unofficial build for the 4S or some way to make the iPhone 4 version work on the 4S.
I'm pretty sure that the answer is going to end up being "Buy a 3GS/iPod touch for development". Would that necessarily be worth it or should I just tough it out? I'm pretty sure that most iOS 4 users will upgrade eventually. Does anyone have any stats on how long it took iOS 3 users to move on?
I would still suggest getting a used iPhone 3GS. Even if you are able to install iOS 4 on the 4S you still wouldn't be able to do any performance testing, but it's highly likely that someone who still uses iOS 4 has a 3GS.
For your first cut testing, you can use the simulator which, will allow you to test for iOS 4.3
Ideally you need to get hold of the appropriate devices to test your app. You say you're supporting iOS 4, but do you mean 4.2 or 4.3? If 4.2 then you'll be supporting iPhone 3G, if 4.3 then 3GS upwards.
There are testing services out there, just search "iPhone testing services". I've never used them myself, so can't vouch for any of them, but the cost may be less than investing in actual devices.
I kept a 3G and 3GS for testing, but to be honest, even though my main app supports 4.2, I rarely do any testing for older OS versions outside the simulator. I gave the 3GS to my father on condition he tested for me when asked… but of course I had to upgrade it to iOS 5 for him, so it's of little practical value, apart from testing at different screen res.
I would suggest you develop your app with minimum version 4.0 (or other) set. Then you test that on your iOS 5 iphone. I did it with my apps and it works great.
You can test on the lower version simulator or for final testing you could borrow a friend's device or similar.
As I understand (and believe), the compiler would stop you if you included features that are not 4.0 (or the set version) compatible.
Buying lower iOS is not worth it. If you can you should borrow it. In the simulator you can also make the iOS version to lower version to test. Also you can try ad hoc distribution to check how your app performs on other ios before releasing on appstore
I'm curious about how people test their apps In general.
I recently uploaded an app and wanted to reach as many iOS' as possible so i targeted it to 3.0. I did test on iphone 3, iphone 4 and 3GS but found out that there was an obscure sizing of a button image on a specific ios version.
In general how do you guys test for different versions?
Do people actually keep 3, 3gs and 4. Then on each, do people test on the various versions of ios within each of the phones. Yuck, anything to make this easier?
For the simulator, each xcode download contains only latest os and hardware to target. It would be nice if it could keep older os versions on the simulator to test with, is this possible?
My apps are CPU demanding, so optimizing for each device is big issue for me, so I keep an 3G, 3GS, 4, a 2G iPod Touch, and an iPad around for testing.
It's not always necessary though. Most cases you probably don't have heavy, time critical code, that needs to be optimized, so an iPhone 3GS at a minimum, possibly an iPhone 4 (for high DPI testing, although the simular may be fine for this), and an iPad (if you support it) is all you need.
If you keep your device images in your XCode organizer, you can reflash your device with all the OS version you want to QA on. It really depends on what you need. Unfortunately you can't go back and find older OS versions and install them if you didn't get them before they became out of date (partly because of the checksum process that calls back to Apple after you update to a new version, that attempts to prevent downgrading or upgrading to versions with security holes).
Can i develop and test iphone native applications on windows pc and testing in any iphone simulator? If no then, What is minimum hardware and software requirements for Iphone native apps development. I want to make development environment setup in minimum possible price.
Intel-based Mac (can be a Mac Mini; I prefer a MacBook Pro that I can take with me and develop in a variety of locations, office, a playground while kids play, when I travel...)
Xcode (free download)
Optional software I use all the time:
Adobe Photoshop (or similar bitmap
and/or vector based image editing
software)
Logic Pro (or similar sound editing software with a library of
sfx)
The optional stuff is not something I needed as much for other software development. It seems that on the iPhone, the audio/visual experience is as much a selling point as the functionality of the app.
As for whether a simulator is good enough, I have to say NO! The iPhone Simulator is adequate for simple apps, but it operates at a faster processing speed than iPhones and iPhone Touches, making your app run faster than it would in the real world. It also behaves differently in a number of ways, which makes it important to have a 'real' alternative. In fact, during a day of development, I may use the iPhone Simulator for 80% of the test builds, and an iPhone OS device for the other 20% in order to make sure I am on the right track. I have two iPhones with 3.0 and 2.0 software, plus two iPod Touches. The 2.0 iPhone is the 3G, which is the slowest, then the iPod Touches are a bit faster, and the iPhone 3Gs is the fastest of the bunch. I test with all to make sure the user experience doesn't get too sluggish on the slowest.
You basically need an Intel-based Mac. You can find used Mac mini's for cheap (and use an existing monitor and USB keyboard/mouse).
If you're serious about iPhone development, buy a refurbished Mac Mini and a refurbished iPhone to test it on. If you just want to play around first, search Stack Overflow for the thousand other questions that answer how to do iPhone development on windows.
If you're serious about iPhone development, buy a refurbished Mac Mini and a refurbished iPhone to test it on.I prefer to use mac-Mini or an intel based mac.You can do almost all testing on Simulator except these few which requires original hardware(Gps,Opening another iPhone app from your native app).In terms of memory simulator doesn't have it's own memory it depends on your hardware memory so if you want to develop a good bug free app go purchase an iPhone.