The much awaited iOS 6 is here and hopefully you have already downloaded it. This is not another post bashing the new Maps functionality, but this is a quick review of all of the new goodies available to iOS 6 developers. iOS 6 adds features to the SDK but not the language, unlike what happened with iOS 5 when it introduced Automatic Reference Counting (ARC). So if you are new to iOS development then there is no major change between the two versions and you can start with either. However, you should still be aware of the major new features in iOS 6.
Here are five iOS 6 features you could incorporate into your app:
There is a new Social framework which provides a simple interface for accessing a user’s social media accounts such as: Twitter, Facebook and Chinese Weibo services. You can either deal with this manually or simply use UIKit’s UIActivityViewController for displaying the various actions to the user. The UIActivityViewController takes is initialized using a list of activities such as: Twitter, Facebook, Weibo, Message, Mail, Print, Pasteboard, Contact and Camera roll. The data used by an activity is passed in as an argument (activityitems) when creating the UIActivityViewController.
iOS apps are always trying to innovate on UI design and find new ways to visualize information. Prior to iOS 6 managing custom views and layouts required writing a lot of code. Thanks to Collection Views, you have an elegant way of managing view layouts and architecture while binding the views to an underlying data model. Collection Views have a feature called Flow Layout which help to create linear layouts like a grid but can also be used to create custom layouts. Collections Views are similar in concept to Table Views because they use similar protocols like data sources and delegates, but go beyond more than just creating a list.
Android developers have enjoyed relative layouts from the very beginning but iOS has had no such luck. All views were fixed in place. If you wanted to support multiple orientations then you had to create two separate views or get creative with your code. iOS 6 introduces Auto Layout which makes it easier to place a view relative to the super view and then have the layout manager figure out positioning based on orientation or even screen size. It also helps deal with backward compatibility because of the varying screen sizes between iPhone 5 and the previous versions.
There are way too many reminders apps but it would be wise to leverage the existing reminders app baked in the OS. It syncs with iCloud so it means that the user has ubiquitous access. iOS 6 includes interfaces for creating and accessing reminders and a reminder can be based on proximity or time of day.
This is an important feature from a user’s perspective because a lot of app makers were abusing the address book and uploading it to their servers unbeknownst to their user. The user now has to give explicit permission before your app can be allowed to use any of this data: Contacts, Calendars, Reminders and Photo Library. A user now has the power to approve or deny an app from accessing their personal data, which means app developers have to do a better job at communicating the need for access to such data. You can provide descriptions in the info.plist for how you intend to use the data.
There are several other features in iOS 6 that might be relevant to you depending on the kind of app you are creating. If there any cool features that you have discovered please share them in the comments.