Apps Have to be iOS 7 Compatible by February 1st
Apple recently announced that iOS applications have to be iOS 7 compatible by February, 1st. To submit new applications or application updates to the iTunes Store, developers have to build their applications with XCode 5 and apps have to be optimized for iOS7. Compatibility with iOS 7 includes changing the UI according to the current iOS Human Interface Guidelines and the iOS 7 UI Transition Guide, as well as adopting the new version of the iOS API.
User Interface Changes
The user interface for iOS 7 focuses on clear presentation of content. Developers should avoid graphical elements like skeuomorphism, shadows or borders and use the whole screen to present data to the user. User interface elements have to be nondominant and should not distract to user from the content that is presented. Besides leading to a clearer presentation of content, controls of the new iOS interface design also use less screen space now, so more content can be presented. Apple also advices developers to use auto-layout features as much as possible instead of programatically positioning UI elements.
Handling text with UILabels, UITextFields and UITextViews is now based on TextKit. TextKit brings features like kerning, hyphenation or embedded pictures to text elements. Developers can use different styles of text instead of using point or pixel sized fonts. iOS text styles are similar to text styles in HTML and include values like "headline" or "body". The actual rendering size is calculated by iOS and might depend on zoom settings applied by the user.
Furthermore, iOS 7 also offers new design elements and techniques to UI designers:
- Translucency: Developers can now chose to make views translucent. In contrast to opaque views, they can give the user an idea of the content underneath. According to the iOS User Interface Guidelines, this is especially useful for temporary overlaying views like slide-in menus or settings panels.
- Depth: The User Interface Guidelines also encourage designers to use depth and layering as a way to express the relation between objects presented to the user. To give the impression of depth, iOS provides a pseudo 3D effect in the user interface. When panning or tilting the device, users are able to look beneath objects that are floating above the content.
iOS API Enhancements
iOS 7 comes with three new multitasking modes to keep the state of an application up to date: The "fetch" mode lets apps periodically check for data updates. Developers can define a minimum update interval for applications and iOS will launch the app in the background and call a delegate method to receive new data. Based on situations like good network connection, iOS might even decide to launch an application before its update interval is elapsed. The mode "remote-notification" uses push-notifications to trigger application updates. Until iOS 7, users received a notification, launched an application and had to wait until the app then updated its content. Now, applications receive the notification, update their state in background and notify the user after the update has completed.
MapKit offers advanced overlay handling. Developers can now define different levels to add overlays to a map. Besides, the class MKOverlayView is now deprecated and should be replaced by the new class MKOverlayRenderer. MKDirections lets apps ask for routing information without having to switch to the maps application. With the use of MKMapSnapshotter it is possible to create and display a UIImage of a map region based on parameters like coordinates, altitude or pitch.
Applications can communicate with each other using Airdrop or Peer-to-Peer Connectivity. Both APIs are based on the discovery of nearby devices without having internet connectivity. Apps can register for specific file types and can receive them via Airdrop. iOS will launch the application and call a delegate method when a new file is received. With the help of Peer-to-Peer Connectivity, services can be published and discovered between nearby devices. After establishing a session, devices can exchange arbitrary messages and data.
In case a device does not support iOS 7, it is still possible to provide updates and let users download earlier versions of an application from the app store.