iOS 7 only is the only sane thing to do
berzniz.com
berzniz.com
I think a reasonable prime directive for API developers is that if hardware can do something then software shouldn't be prevented from running on it. Sure there are arguments for speed/responsiveness but most of these are straw men because the real bottlenecks are somewhere else (reading from flash memory, internet lag etc). The only real hardware constraints I hit daily are limitations in OpenGL or limited ram (which wouldn't be an issue if proper virtual memory had been in place from the beginning so we didn't have to use mmap).
This kind of software "truthiness" is taking us further and further from computer science.
The truth is that the original iPad had very little RAM. I imagine there is a very good reason that iOS 6 (and up) didn't make it onto that device.
Does anyone here know if that's also true for iOS devices? I'm quite sure that the big app spenders would be the people who continuously upgrade. There might still be a significant population who does not upgrade to make financial sense for still targeting 5.1 with new apps. I don't know, but my guess would be "not so much".
Apple is making it really hard to support a version that you didn't target from day 1. And it is hard to target older versions from day one
Realistically speaking, it's going to cost me a $1,000-$10,000 more to develop for 5.1 rather than develop just for 7 (extra device, extra design, extra testing time, potentially extra development time). If you didn't originally develop for 5.1 and it doesn't cost you as much, you are not serious (or severely underestimate your costs).
I'm not developing apps for iOS, but I'm not sure if I started tomorrow, and released (say) in two months, that it would be financially justified to target 5.1
You have probably heard something like "[After Feb 1] new apps [...] must be built with the latest version of Xcode 5 and must be optimized for iOS 7."
That only means you must use the latest dev kit and satisfy some other requirements. It does not mean that you need to disable support for older OSes.
See http://www.iphonehacks.com/2013/07/ios-7-uses-retina-assets-... and http://bendodson.com/weblog/2013/10/16/dropping-non-retina-s...
UIViewController Containment APIs. iOS 5.
Custom Tab Bar. iOS 5
Custom Navigation bar. iOS 5
HTML Strings. iOS 7
@2x only. iOS 7
Flat out. iOS 7
viewDidUnload. iOS 6
AutoLayout. iOS 6
UIDynamics. iOS 7
Receding keyboard like the messages app. iOS 7
My next app updates will also be iOS7 only, since I know the iOS6 version will still be around. Makes it much easier to decide to use newer features.
One open issue is that from time to time a breaking change to our API is needed and a force-upgrade is forced on the app users. We try to avoid it, but it happens.
The next time this happens, it's really goodbye iOS 6 users.
Assuming you want it to look exactly the same on both. I have an app that offers a flat, stylised look on iOS 6 and a completely native iOS 7 look on iOS 7.
It's just a little more work. Facebook looks the same on iOS 6 even now that it supports iOS 7.
If you are mostly using native UI with only a few customisations, I don't see the problem.
But even then you can port it to native UIKit (which is a good idea either way), and then make iOS 7 frameworks optional, and add a few UIAppearance calls for iOS 6. The last two pieces are extra effort that might not worth it for < 30% of your users, but it's still completely possible.
If you're using the native UI stuff, it will, generally, look native on both versions. If you're doing your _own_ UI, of course, it gets messier.
sigh..
For those curious, you can simply set a boolean on any UIScrollView or subclass to make the keyboard recede like in the Messages app.
https://developer.apple.com/library/ios/documentation/UIKit/...
/**
* Recedes keyboard.
*/
void recedeKeyboard() {Old code had nasty things like traversing the UIView hierarchy and removing unwanted UIViews.
Old code had deprecation warnings.
Old code is not optimized. Apple are doing a much better job at creating great working UIKit controls for us.
Any day that I delete code is a good day.
Less code to maintain >>> custom written code that might be prone to break on newer versions of the OS. It's definitely what I would do.
My apps' interfaces are entirely customized, so everything looks roughly the same across the major versions. I've shifted to a flatter appearance since iOS 7, but I've held onto certain things from older ones that I like better such as borders on buttons where the button status is not clear from the context, filled toolbar icons (I hate the stenciled ones), and a shadowing level somewhere between iOS 6 and 7.
I originally wrote game code with OpenGL ES, and then tried very hard to make the same code work on a Mac with regular OpenGL. It took more time than it should have to see results and it wasn’t that fun. About all I can say is that I learned a lot and OpenGL clearly runs efficiently.
After seeing Sprite Kit (Mac OS X Mavericks and iOS 7 only) and working with it, I am now completely devoted to these latest OSes. That framework has solved virtually all of my Mac/iOS parity issues, while allowing code to be almost identical in ways that really impressed me. Sprite Kit requires far less effort and it produces far greater results. About the only downside I see is that there would be no hope of porting my code to something like an Android phone (and I don’t happen to care about that).
It doesn’t hurt that Mavericks is free so about the only device left out in the cold is my old iPad. I decided that I was probably holding myself back by trying to support it anyway; the device is quite slow compared to almost any other iPad. I will likely just buy a new iPad.
I've been programming on a daily basis for iOS even before the SDK came out (ohhh those reverse engineering days...!). Two years ago I left the job and since then I've always wondered what were the relevant changes in the SDK, just in case I get back to programming iOS again. And here we have it!
This makes me want to vomit. I can't wait until implementing flashy UI is so trivial and common that shallow things like this don't actually affect an application's perceived value. I don't remember the transition to GUI in the 80s as being as shallow as the mobile app market is.
Also, perception is reality.
Seriously though, you contest the idea that an interface with interactions which hide complexity and have been shown to be pretty intuitive could be decisive in how users value a product?
Don't bet on UX enhancements ever going away, by the way; people come up with new things all the time. Pull-to-refresh didn't come from any platform vendor; it came from a third party Twitter client.
Then you weren't there. I'm pretty sure the first caveman to use a different pigment in cave paintings got the same shallow reactions.
Pull to refresh isn't flashy, shallow or trivial, and it shouldn't bring on emesis: It is a simple, convenient user interaction that saves putting a big refresh button or the like.
Done with (IIRC) PhoneGap, AngularJS and ClojureScript. The actual utility as a weather app is debatable (I like it), but the UI is beautiful and responsive, especially considering it's PhoneGap!
The only sane thing to do is have it recycled.