iOS 7 – Key Features for Developers
iOS 7 introduces the following new frameworks
Sprite Kit – The Sprite Kit provides a hardware accelerated animation systems for 2D or 2.5D games. It also provides graphics rendering and animation, sound playback support and physics simulation.
Game Controller – This allows developers configure Made-for-iPhone/iPod/iPad (MFi) game controller hardware in your app. The controllers must be optional and a way must be provided for players to use the game without a controller.
Peer-to-Peer Connectivity – The peer-to-peer connectivity supports discovering nearby devices and directs communication without an Internet connection.
Media Accessibility – This manages the presentation of closed-captioned content in your media files.
Safari Services – Support for programmatically adding URLs to the user’s Safari reading list.
64 Bit Support
Apps will support compilation in 64-bit runtime. All system libraries and frameworks support 64-bit mode, so that they can be used in both 32-bit and 64-bit apps. The advantage is when compiled for the 64-bit runtime, apps may run faster due of the availability of extra processor resources in 64-bit mode.
Also porting code will have lesser issues since iOS uses the same LP64 model which is used by OS X and other 64-bit UNIX systems
AirDrop lets users share photos, documents, URLs, and other kinds of data with nearby devices.
In addition to the new features there are lots of changes in the existing features. Following are the key highlights.
The iOS 7 user interface has been completely redesigned. Every nook and corner of the UI has been redesigned from icons, colors, typography, and button to general look and feel of the entire OS. The emphasis is on translucent and transparent design.
Apps compiled against the iOS 7 SDK will automatically have the new appearance for any standard system views when it is run on iOS 7. However if the app’s views are customized, then changes have to be made appropriately to support the new appearance.
Also when Auto Layout feature is used to set the size and position of the views, they are repositioned automatically.
Dynamic Behaviors for Views – The individual views in the apps can have dynamic behaviors like incorporating the real world behavior and characteristics such as gravity into the app’s animations. This is available when the views conform to UIDynamicItem protocol which is newly introduced in iOS 7.
Text Kit – A set of classes from UIKit classes, is for managing text and fine typography. Text Kit can lay out styled text into paragraphs, columns, and pages. Text Kit is integrated with all UIKit text-based controls to enable apps to create, edit, display, and store text more easily than ever before.
iOS 7 supports two new background execution modes for apps
Apps that regularly update their content by contacting a server can register with the system and be launched periodically to retrieve that content in the background.
Apps that use push notifications to notify the user that new content is available can fetch the content in the background.
Apps that now take full advantage of the 3D map support found in the Maps app, including controlling the viewing perspective programmatically.
Using a feature called Exchanges players initiate actions with other players, even when it is not their turn. This feature can be used to implement simultaneous turns, player chats, and trading between players. The limit on Leaderboards per app has been raised to 100 from 25. The authentication support has been improved and features added to prevent cheating.
The audio unit framework adds support for Inter-App audio which enables stream audio between apps on the same device.
OpenGL ES version 3.0 is supported and adds new features to OpenGL ES 2.0.
The Objective-C programming language has been enhanced to support modules, which makes the builds faster and shortens the project indexing times. Module support is enabled in all new projects created using Xcode 5.
The UIKit framework deprecates the following
The wantsFullScreenLayout property of UIViewController is deprecated. In iOS 7, view controllers always support full screen.
UIColor objects that provided background textures for earlier versions of iOS are gone.
Many drawing additions to the NSString class are deprecated in favor of newer variants.
The MKOverlayView class and its various subclasses have been deprecated from Map Kit framework and have been replaced by new MKOverlayRenderer class.
The Audio Session API in the Audio Toolbox framework is deprecated. Use AVAudioSession class in the AV Foundation framework instead.
The CLRegion class in the Core Location framework is replaced by the CLCircularRegion class.
Following existing mechanisms of getting the unique identifiers are deprecated.
uniqueIdentifier of UIDevice. This was already deprecated in iOS 5 but in iOS 7 it is completely removed.
MAC Address. In iOS 7, requesting a MAC address will return the value 02:00:00:00:00:00.
gethostuuid function in the libsyscall library.
The UUID property of the CBCentral class has been deprecated. For specifying the unique ID of your central objects, use the identifier property instead.
To use an unique identifier for identifying the device consider using one of these
identifierForVendor property of UIDevice
advertisingIdentifier property of ASIdentifierManager