Apple's new interface changes in iOS 7 have roiled some iPhone and iPad customers. But developers have more than enough troubles of their own integrating the major system update. The update is bringing some tough choices to developers, according to developer and author Matt Neuburg, in a fascinating post at TidBITS.
In How iOS 7 Will Affect Developers — and You, Neuburg details developer and user interface issues with the primary interface changes, such as buttons; new UIKit Dynamics animations and blurred transitions; background downloading; text changes; and bugs.
Neuburg shows screenshots of his app Zotz! before and after iOS 7, and discussed the implications for its usability. Unfortunately, the changes necessary to update the code may make it a pain to maintain older code.
Trying to untangle the resulting interface mess is so troublesome that many developers will probably find it not worth their time and effort to maintain compatibility with iOS 6 and before. It’s far simpler to drop iOS 6 support, or to publish two different apps (one for iOS 7 and one for pre–iOS 7), than to rejigger one app to look right on multiple systems. It took me several days to fix the way Zotz looked; by the time I was done, I had a decent iOS 7 interface, but there was no going back.
The settings screen of my Zotz app shows some of the adjustments I had to make in order to deal with changes in how widgets draw themselves. The problem with buttons was particularly acute; the system was no longer showing users that these were buttons — they looked like mere text. To clarify the interface, I ended up drawing my own rather unsatisfactory custom button-like borders. On the left, how it looked in iOS 6; on the right, how I managed to get it to look, eventually, in iOS 7.
The sluggish way that iOS 7 is working on some older hardware will keep many users on the older iOS 6 and even older versions. But as Neuburg suggests, developers may be focused more on dealing with iOS 7 issues, rather than updating for older versions. This could lead to a quick, mass orphaning of these older apps.
Neuburg discussed a number of typographical features in Dynamic Text, about which I posted in the summer. He also talks about the bringing of the Mac's OS X text layout engine to iOS.
How developers will use this new-found power is anybody’s guess, but drawing styled text in sophisticated ways will be vastly easier. Expect to see inline images, tab stops, text “decorations” of various sorts (such as special colored underlines or word backgrounds), and text arranged in interesting shapes. For example, I’m not sure whether or how I could have laid out an illustrated price list in columns in previous versions of iOS, but in iOS 7 it’s easy. (The missing “0” isn’t a mistake; it’s to prove that my tab stop aligns the prices on the decimal point.)
According to Neuburg, iOS 7 is the "buggiest major iOS system release ever." Many apps must include workarounds, he says, and some developers are holding off on upgrades since "fundamental functionality no longer operates correctly." He said there's an interface element that works under iOS 6 and iOS 7.0.3, but breaks under the latest Version 7.1.
Or widgets that worked from iOS 4 through iOS 6 but was broken in iOS 7.
Neuburg's post makes interesting reading. We can hope that the fixes for iOS 7 will keep coming during the holidays and in the new year.