The brave new iOS 7 is almost ready to shine, with the official release scheduled for Fall 2013. It's probably too early to make judgements about upcoming changes, since iOS 7 is constantly evolving and Apple is releasing updated SDK once every two weeks or so (as of today, beta 6 is the latest version). But even right now we can make some predictions on how the new OS will affect mobile development, especially when updating apps that are already in the App Store and on users’ devices.
Last week, our developers gathered for a iOS 7 round table to discuss what’s to come. Because of NDA we can’t reveal all the material, yet some details are already available online and you might find it very useful.
The potential impact of iOS 7 release this fall could be roughly divided into two main categories: changes in design and changes in coding.
The new iOS design has been a hot topic since the beginning of summer. You might have read a lot about what it will bring to the user. Some users love it, some hate it, but what does this new design mean for developers?
For developers, project managers, and business owners who already have apps in the App Store the new design brings the necessity to add extra time and budget on design customization in cases when:
- You’re updating an iOS 6 or earlier app
While standard elements of iOS UI will look differently in iOS 7, customized elements will stay the same. This may result in some very noticeable design inconsistencies. So, if you’re updating an older app, you should add extra working hours for design optimization to make new standard elements and old customized elements match.
- You want the new app version to have the iOS 6 interface
The only way to reproduce the ‘iOS Classic’ style in iOS 7 will be by customization.
As for the iPad UI, it'll have the same changes as in the iPhone. However, keep in mind that Apple started working on iPad OS version later than on the iPhone's, so right now the iPad version might be less stable.
Certain changes in App Store requirements and technical guidelines will make it necessary to re-write apps that are already in the store. The changes include, but are not limited to, the following:
Applications that use -[UIDevice uniqueIdentifier] will be banned from AppStore. In iOS 7, an app calling this removed API won’t be returned UDID, but will return a 40-character string starting with FFFFFFFF, followed by the hex value of -[UIDevice identifierForVendor].
Similarly, in iOS7 MAC address ceases to exist as a unique identifier because it will always be returned one and the same string - 02:00:00:00:00:00.
New permissions will be required:
- To initiate sound recording
- To initiate video recording (China only)
New class properties
For certain classes, method calls will be replaced by properties.
iOS 6.1 [NSNetService hostName]
iOS 7 NSNetService.hostName
Starting with iOS 7, it will be forbidden to create subclasses based on the classes of AddressBookUI framework. In iOS 7, if an application uses such a subclass, the initialization attempt for this class will return nil. Note: In applications built for previous iOS versions only an alert will be displayed.
The option which determines the opacity of superlayers - UIViewGroupOpacity - has switched its default value from NO to YES. Now it allows more effective rendering, while this can backfire significantly on performance.