The Apple World Wide Developer Conference (WWDC) 2012 is almost upon us and I think we can expect a whole raft of announcements from Apple about new hardware and software features. Maybe even a new iPhone, a new iPad and a beta version of iOS 6 to play with?
As developers we like big new features and iOS 5 gave us lots of those: Storyboards, automatic reference counting (ARC) and iCloud have had a major impact on my development work over the last 9-12 months. I’m hoping for more of these, but also some more subtle changes that would make app development more straightforward.
One of the strengths of the iOS platform is its standard behaviour, its Human Interface Guidelines (HIG) and the review process that produces reasonably cohesive apps. iPhone and iPad users worldwide know what to expect when they see a Done button or an action sheet with a red “destructive” button title. Nevertheless, most apps aim for some sort of distinctive style and polish. If every iPhone app used the standard pale blue colour scheme and every iPad app was rendered in shades of silver, the whole experience would become rather dull.
There have been styling options for iOS controls as long as I have been writing apps, but they haven’t always covered all controls. Toolbars and navigation bars have pretty much always had the capacity for styling through standard properties but it was sometimes difficult to integrate with the controls that were stubbornly stuck in the standard colour scheme. iOS 5, released last October, extended out-of-the-box styling options with things like tint colours on tab bars and switches.
I’m hoping that the next release of iOS will sweep up the remaining elements that are currently awkward or impossible to style. I’m thinking in particular of table view selection colour, which is is currently grey or blue, and popovers on iPad, which are currently a fixed dark blue.
I’d also like to see standard controls for some of the de-facto standard buttons like the ubiquitous red delete button and the green add-to-table-view button that appear in standard iOS apps like Contacts. As things stand, both of these have to be manufactured by hand, with the temptation of the copy and paste trap that I talked about in my last post.
Go on–admit it! How many of you have searched for “red delete button” and pasted the code you found on stackoverflow.com?
Address Book Framework
Of all the frameworks we cover on Learning Tree’s Building iPhone® and iPad® Applications: Extended Features course, the address book framework is the most awkward.
Most of the common frameworks, even if they are based on low-level C libraries, have an Objective-C wrapper that makes them easy to integrate into an iPhone or iPad project. The address book is an exception where we have to delve into awkward low-level coding, wrestle with memory management and fight with ARC.
I don’t think it will happen but it would be nice to see simple Objective-C classes for the address book–if only to make my slides on working with the address book easier to teach!
Something that is much more likely is a major change to the mapping frameworks. At the moment iOS mapping is heavily dependent on Google Maps and access is restricted to simple map views, satellite images and hybrid views. The option of a terrain view would be useful for some applications I have in mind, and it’s an increasingly common question from my students how they can add custom map tiles to the standard iOS maps.
Changes to iOS mapping are strongly rumoured, with Apple having acquired various mapping companies and expected to break away from the restrictions of Google Maps. With some of these companies specialising in 3D mapping, radical changes to the standard Maps application are likely. Hopefully these changes will be available to developers through the MapKit framework.
I could go on but I’ll leave that as my modest wishlist for iOS 6–along with some great new innovation to go with it of course! What would you like to see in the next version of iOS that would improve your applications or make your development life easier?