iOS SDK Release Notes for iOS 7.0

Contents:

Introduction

iOS SDK 7.0 provides support for developing iOS apps, and it includes the complete set of Xcode tools, compilers, and frameworks for creating apps for iOS and OS X. These tools include the Xcode IDE and the Instruments analysis tool, among many others.

With this software you can develop apps for iPhone, iPad, or iPod touch running iOS 7. You can also test your apps using the included iOS Simulator, which supports iOS 7. iOS SDK 7.0 requires a Mac computer running OS X v10.8.3 (Mountain Lion) or later.

This version of iOS is intended for installation only on devices registered with the Apple Developer Program. Attempting to install this version of iOS in an unauthorized manner could put your device in an unusable state.

For more information and additional support resources, visit http://developer.apple.com/programs/ios/.

Bug Reporting

To report any bugs not mentioned in the Notes and Known Issues section, use the Apple Bug Reporter on the Apple Developer website (http://developer.apple.com/bugreporter/). Additionally, you may discuss these issues and iOS SDK 7.0 in the Apple Developer Forums: http://devforums.apple.com. To get more information about iCloud for Developers, go to http://developer.apple.com/icloud.

Notes and Known Issues

The following issues relate to using iOS SDK 7.0 to develop code.

AirDrop

Notes

“Contacts Only” support requires that:

  • You are logged into iCloud.

  • The sender and receiver have each other’s Apple ID email addresses in Contacts on their devices.

Known Issues

  • “Contact Only” currently requires that you have an active Internet connection.

  • Occasionally, AirDrop will exhibit unreliability in discovery and/or data transfer to peers over Wi-Fi.

  • The App Store should support the ability to find an app capable of opening a received document based on the document’s Uniform Type Identifier (UTI). Currently, just a blank screen is displayed.

AV Foundation

Notes

AVCaptureSession now uses your app’s AVAudioSession by default.

Known Issues

AVCaptureSession is unable to produce samples to its AVCaptureAudioDataOutput when the app is running in the background.

Calendar

Known Issues

Edits made to iCloud Calendar events off-device will not push to the device.

Workaround: Update the calendar manually or trigger a fetch by modifying an event on-device.

Car Display

Known Issues

Support for Car Display will be provided once compatible systems are available.

Core Animation

Notes

When the UIViewGroupOpacity key is not present, the default value is now YES. The default was previously NO.

This means that subviews of a transparent view will first be composited onto that transparent view, then the precomposited subtree will be drawn as a whole onto the background. A NO setting results in less expensive, but also less accurate, compositing: each view in the transparent subtree is composited onto what’s underneath it, according to the parent’s opacity, in the normal painter’s algorithm order.

Core Data

Known Issues

Moving data from a local sandbox to iCloud using migratePersistentStore causes a crash. Instead, manually migrate the data store by iterating over the objects in the local data store file.

Game Center

Known Issues

  • When adding new Apple IDs to Game Center, they must be added through the Game Center app and not Settings.

  • If you launch a Game Center app while not logged into Game Center, the Game Center login sheet may be unreadable.

Game Kit

Known Issues

  • The API for sending reminders is present but unimplemented in this seed.

  • The API for loading leaderboard sets might need to be called a second time for it to succeed.

iCloud

Notes

Activation Lock, a new feature of Find My iPhone, is turned on automatically when Find My iPhone is enabled on any device running iOS 7. Activation Lock requires users to enter their Apple ID and password to turn off Find My iPhone, sign out of iCloud, erase the device, or reactivate the device after an erase. It’s important to sign out of iCloud, or choose Settings > General > Erase All Content and Settings, before transferring a device to a new user to allow them to use the device.

Known Issues

  • Signing out of an iCloud account with Find My iPhone turned on requires you to enter your Apple ID password. However, in some cases, the keyboard does not appear.

    Workaround: Double-tapping the home button will bring up the keyboard.

  • On rare occasions, users might experience difficulties setting up iCloud Keychain on some of their devices.

    Workaround: A temporary Reset iCloud Keychain button is available in iCloud Settings > Account > Account Security.

  • After users change their iCloud Security Code to Simple or Complex, they will not be able to recover their keychain items from the secure backup.

    Workaround: Change the country code field under Account Security so that the user can receive the SMS Verification Code to complete the recovery process.

  • Sometimes when creating a new Apple ID and choosing to use iCloud in Setup Assistant, iCloud will not be turned on.

    Workround: Go to Settings/iCloud and sign in with your Apple ID.

  • iCloud Keychain users who set up an additional device will receive an approval request to the other devices with iCloud Keychain turned on. The approval request will not be displayed if their screens are off and the devices are idle.

    Workaround: Wake up any peer device to accept the approval request.

  • Users signing out of iCloud by deleting their iCloud account, erasing all contents and settings, or erasing the device via Find My iPhone and signing back in will not be presented with the correct iCloud Keychain setup screens.

    Workaround: Use the seed-only iCloud Keychain Reset button.

  • Users who have a single device with iCloud Keychain on will not be presented with the correct iCloud Keychain setup screens after restoring from a backup.

    Workaround: Use the seed-only iCloud Keychain Reset button.

  • When setting up iCloud Keychain, many iCloud Security Code candidates will be rejected for being too weak.

    Workaround: Choose a 4-digit iCloud Security Code that does not have an obvious pattern.

  • Restoring your device from the same device’s iCloud backup will lose all passwords for Wi-Fi, profiles, accounts, and apps.

  • When just Calendars or just Reminders is toggled off then back on again in iCloud settings, data may not resync to the device.

    Workaround: Turn off both Calendars and Reminders, and then turn them both back on.

  • Nonpurchased ePubs and PDFs will not be restored when iCloud-restoring an iOS 7 device with a pre-iOS 7 backup. Purchased content will be restored without issue.

    Workaround: Use iTunes sync.

  • In iOS 7, Find My iPhone and Bookmarks toggles are no longer supported on secondary iCloud accounts. When you update your device with either of these options enabled on a secondary iCloud account, they will be turned off with no user notification.

    Workaround: Set up the primary iCloud account via Settings/iCloud and then enable Find My iPhone or Bookmarks.

  • Users cannot use Simple or Complex iCloud Security Codes to recover their keychain items from their secure backup on iPhone 4.

    Workaround: Use Random iCloud Security Codes to backup keychain items.

Location Services

Known Issues

  • Location Services will be off by default after updating from prior releases. This prohibits Find My iPhone from working.

    Workaround: Turn on Location Services in Settings > Privacy > Location Services.

  • In this seed, GPS-based location is nonfunctional on iPhone 4. This includes AGPS call flows used for 911 emergency services location requests. Wi-Fi and cellular-based location remain functional.

MapKit

Notes

If the calls to renderInContext on the layer backing an MKMapView are made off the main thread, they should be eliminated or moved to the main thread. Failure to do so can cause an app crash. Instead of using renderInContext, use the new MKMapSnapshotter APIs.

Known Issues

  • Using +[MKMapCamera cameraLookingAtCenterCoordinate:fromEyeCoordinate:eyeAltitude:] may result in the wrong map heading being chosen.

  • Using +[MKMapSnapshot pointForCoordinate:] returns the wrong result for nonsquare snapshots.

Multitasking

Known Issues

  • Silent pushes will always wake the device.

  • Currently, there is no API that lets you inspect the settings controlling your app’s background behavior.

Music Player

Known Issues

MPMediaPickerController has been disabled for this seed. It will immediately return as if the user canceled the selection.

Networking

Notes

  • Cellular fallback is a technology that will attempt to connect over the cellular interface when a connection over the Wi-Fi interface does not succeed. There are a number of cases where connection failures may occur over Wi-Fi, such as a cable modem in need of a reboot or a firewall that blocks access to certain resources.

    If your app restricts network operations over the cellular network, verify that your code is using the proper API to implement that policy.

    For example, if your app watches SCNetworkReachability for the kSCNetworkReachabilityFlagsIsWWAN to monitor when Wi-Fi is available, it may not behave correctly under cellular fallback.

    If an app uses this method and then attempts to connect, thinking it will get a connection over Wi-Fi, the app may inadvertently end up with a connection over the cellular network. The lack of thekSCNetworkReachabilityFlagsIsWWAN is not a guarantee that your connection will not go over cellular. If your code needs to enforce that a connection not go over cellular, it needs to specify that when making a networking request.

    Instead, for CFNetwork code using CFSocketStreamCFHTTPStream, or similar APIs, set the kCFStreamPropertyNoCellular property to true on the CF object before connecting.

    For NSURLRequests, call [request setAllowsCellularAccess: false].

    In addition to making sure your code will never be connected over cellular because of cellular fallback, this call ensures that your code will never be connected over cellular because of the VPN or convoluted routing problems (connecting to IPv6 over cellular because only IPv4 is available over Wi-Fi, etc.).

    To verify that your app is behaving properly, you should test against a broken Wi-Fi network. The easiest way to set up a broken Wi-Fi network is to set up an Apple AirPort Base Station or other Wi-Fi access point to hand out a DHCP address and leave the access point disconnected from the Internet. Another simple way of testing is to unplug the cable or DSL line from your cable or DLS modem.

  • Two low-level networking APIs that used to return a MAC address now return the fixed value 02:00:00:00:00:00. The APIs in question are sysctl (NET_RT_IFLIST) and ioctl (SIOCGIFCONF). Developers using the value of the MAC address should migrate to identifiers such as -[UIDevice identifierForVendor]. This change affects all apps running on iOS 7.

Newsstand

Known Issues

Newsstand background downloads that use HTTP basic or digest authentication will prompt the user with authorization alerts (NSURLConnectionDelegate callbacks forconnectionShouldUseCredentialStorage and willSendRequestForAuthenticationChallenge are not called correctly).

Nike + iPod

Known Issues

The Nike + iPod app is not included in this seed.

Objective-C Runtime

Notes

Due to changes in how the isa field is implemented, *self may change during enumeration (for example, if the container is retained).

Workaround: When implementing countByEnumeratingWithState, do not set state->mutationsPtr = self.

Phone

Known Issues

If you select Voicemail and then another option, such as Contacts, and then return to Voicemail, the Phone app hangs. You will need to kill the Phone app and relaunch it.

Reminders

Known Issues

Reminders may become unusable after the user creates a new list.

Safari

Known Issues

  • Safari website credentials do not always autofill between mobile and desktop versions.

    Workaround: Use the desktop version if the site offers it.

  • Users cannot delete their passwords via Safari Settings > Autofill.

  • The SafariServices addToReadingList API doesn't work on devices. However, it works fine on iOS Simulator.

  • If a user deletes a saved credit card number (from Autofill), it will still autofill.

    Workaround: After deleting a credit card from Autofill, force-quit Safari or reboot the device.

Security

Notes

  • -[UIDevice uniqueIdentifier] is no longer accepted in submissions to the App Store. In iOS 7, apps that are already on the store or on users’ devices that call this removed API will no longer be returned the UDID. Instead, -[UIDevice uniqueIdentifier] will return a 40-character string starting with FFFFFFFF, followed by the hex value of -[UIDevice identifierForVendor]. It is important to consider how this will affect existing apps. Consider submitting updates that no longer access the UDID.

  • iOS now requests user consent for apps to use the microphone hardware on all iOS 6 devices. For devices sold in China, iOS will also request user consent for apps to use the camera hardware. The operating system will present the consent alert when you set the category of the instantiated AVAudioSesison. The AVAudioSessionCategories that will present the alert areAVAudioSessionCategoryRecord and AVAudioSessionCategoryPlayAndRecord.

    If the user doesn’t allow access, the audio session data will be all zeros (silence). For devices where camera access is requested and denied by the user, the video capture session is a black screen.

  • The API gethostuuid() has been removed and will not be accepted for submission to the store regardless of the targeted OS. For existing apps running on iOS 7, the function will return a uuid_trepresentation of the vendor identifier (-[UIDevice identifierForVendor]).

Known Issues

Changing the Require Passcode time setting after a restore from backup will require a reboot for the change to take effect.

Settings

Known Issues

  • In General > Background App Refresh, the per-app settings are not honored.

  • In Notification Center, when selecting an alert style for an app, the examples for None, Banners, and Alerts are not displayed.

Siri

Known Issues

The new Siri voices are not in this seed.

Social

Notes

Up through iOS 6, when using TWTweetComposeViewController and SLComposeViewController (the latter only for Twitter and Weibo, but not Facebook), if the caller supplies a completionHandler, the supplied completionHandler is responsible for dismissing the view controller. As of iOS 7, if the app links against the iOS 7 SDK, the view controller will dismiss itself even if the caller supplies acompletionHandler. To avoid this, the caller’s completionHandler should not dismiss the view controller.

Known Issues

When using the iOS 6.1 SDK on OS X v10.8 Mountain Lion, if you use the iOS 5.0 or iOS 5.1 Legacy SDK in iOS Simulator, you will not be able to use Twitter features: attempting to sign in to Twitter via the Settings pane will fail, and Twitter.framework will not work correctly. If you need to test Twitter features, you will need to choose either an iOS 6.1 or iOS 6.0 Simulator run destination, or you can test with iOS 5.x on a device.

Springboard

Notes

  • Active touches are no longer canceled when the user takes a screenshot.

  • Dynamic wallpaper is not available on iPhone 4.

Known Issues

When restoring from an iCloud backup on a device with hundreds of apps, Springboard may crash repeatedly.

Sync

Known Issues

The Wi-Fi sync option in iTunes is checked, but Wi-Fi devices do not appear in iTunes.

Workaround: On OS X, install the iOS 7.0 SDK after installing iTunes. Wi-Fi sync is not supported on Windows.

UIKit

Notes

  • +[UIPasteboard pasteboardWithName:create:] and +[UIPasteboard pasteboardWithUniqueName] now unique the given name to allow only those apps in the same application group to access the pasteboard. If the developer attempts to create a pasteboard with a name that already exists and they are not part of the same app suite, they will get their own unique and private pasteboard. Note that this does not affect the system provided pasteboards, general, and find.

  • Blurred layers are not available on iPhone 4.

  • Parallax is not available on iPhone 4.

  • Letterpress text is not available on iPhone 4.

Known Issues

  • When a device without a passcode is connected to an untrusted computer, iTunes will tell the user to approve on the phone, yet the phone never asks the user to approve. The phone is trusted anyway, so there is no functional impact, but the UI is missing.

  • UIPickerView with custom views doesn't show the views in the selection indicator.

  • UIRefreshControl and the associated table view are hidden under the nav bar when setTranslucent: is NO.

  • Auto Layout constraints do not take bar height into account, which leads to issues during rotation or when the height of the status bar changes.

  • UIButtonTypeInfoLightUIButtonTypeInfoDark, and UIButtonTypeDetailDisclosure buttons all look the same.

  • The UIImagePickerController does not show a live preview when using custom overlays.

  • Print Center is not functional. Seeing print job progress, job name, or job preview icon is not available in this seed. To ensure that the job name is correct for print jobs, use the Printer Simulator app in Xcode and check the log.

  • When using Auto Layout to position a UIButton, if you set the content compression resistance or content hugging priority to minimum, the button will have ambiguous layout.

    Workaround: Don’t use a content compression resistance or content hugging priority of less than 2 for UIButton.

  • UISwitchonTintColors is always green irrespective of what it’s set to.

  • The title of the UIRefreshControl appears below the navigation bar.

USB Tethering

Known Issues

Personal Hotspot (Internet Tethering) will not work if this seed of the iOS SDK 7.0 is installed.

Voice Memos

Known Issues

The VoiceMemos app is not available in this seed.

VoiceOver

Known Issues

  • Maps does not work with VoiceOver.

  • Siri and VoiceOver do not always work together properly.

  • Reminders does not work with VoiceOver.

Weather

Notes

Weather conditions are not animated on iPhone 4.

WebKit

Notes

  • Previously, when the viewport parameters were modified, the old parameters were never discarded. This caused the viewport parameters to be additive.

    For example, if you started with width=device-width and then changed it to initial-scale=1.0, you ended up with a computed viewport of .

    In iOS 7, this has been addressed. Now you end up with with a computed viewport of initial-scale=1.0.

  • Previously, when using <meta name="viewport" content="initial-scale=1.0, user-scalable=1">, the scale could be incorrect after rotation.

    Now, if a user has not scaled the page explicitly, the page is restored to its initial scale. Also, the current scale is now correctly restricted within the min-scale, max-scale bounds.

Known Issues

  • Some images for Retina display devices appear at twice the size that they should instead of being scaled down 50%. This issue can also occur with any image to be scaled that is larger than its container and that uses either the background-size property or the -webkit-background-size property. This issue affects both native apps that display web content and web pages viewed in Safari for iPhone.

    The background CSS shorthand property now resets the value of the background-size property to auto when background size is not specified. This new behavior is per the CSS spec, and the old behavior is available only for apps linked to an SDK prior to iOS 7.0 when running on iOS 7 or later.

    Workaround: Specify the background-size property or the -webkit-background-size property after the background shorthand property in the CSS stylesheet for the web content being displayed.

  • When scrolling a page with animations, the animations stop and do not resume when the scrolling has stopped.


'iOS' 카테고리의 다른 글

iOS 7.1 beta 5 Release Notes  (0) 2014.02.05
iOS Developer Library - What's New in iOS7  (0) 2013.06.11
iOS 7 Design Resources PDF 입니다.  (0) 2013.06.11

 

iOS 7.0

iOS 7 is a major update with compelling features for developers to incorporate into their apps. The UI has been completely redesigned. In addition, iOS 7 introduces a new animation system for creating 2D and 2.5D games. Multitasking enhancements, peer-to-peer connectivity, and many other important features make iOS 7 the most significant release since the first iPhone SDK.

This article summarizes the key developer-related features introduced in iOS 7. This version of the operating system runs on current iOS-based devices. In addition to describing the key new features, this article lists the documents that describe those features in more detail.

For late-breaking news and information about known issues, see iOS 7 Release Notes. For the complete list of new APIs added in iOS 7, see iOS 7.0 API Diffs.

User Interface Changes

iOS 7 includes many new features intended to help you create great user interfaces.

A New Design

The iOS 7 UI has been completely redesigned. Throughout the system, a sharpened focus on functionality and on the user's content informs every aspect of design. Translucency, refined visual touches—and fluid, realistic motion—impart clarity, depth, and vitality to the user experience. Whether you're creating a new app or updating an existing one, keep these qualities in mind as you work on the design.

Apps compiled against the iOS 7 SDK automatically receive the new appearance for any standard system views when the app is run on iOS 7. If you use Auto Layout to set the size and position of your views, those views are repositioned as needed. But there may still be additional work to do to make sure your interface still has the appearance you want. Similarly, if you customize your app’s views, you may need to make changes to support the new appearance fully.

For guidance on how to design apps that take full advantage of the new look in iOS 7, see iOS 7 Design Resources.

UIKit Dynamics

Apps can now specify dynamic behaviors for UIView objects and for other objects that conform to the UIDynamicItem protocol. (Objects that conform to this protocol are called dynamic items.) Dynamic behaviors offer a way to improve the user experience of your app by incorporating real-world behavior and characteristics, such as gravity, into your app’s animations. UIKit supports the following types of dynamic behaviors:

  • UIAttachmentBehavior object specifies a connection between two dynamic items or between an item and a point. When one item (or point) moves, the attached item also moves. The connection is not completely static, though. An attachment behavior has damping and oscillation properties that determine how the behavior changes over time.

  • UICollisionBehavior object lets dynamic items participate in collisions with each other and with the behavior’s specified boundaries. The behavior also lets those items respond appropriately to collisions.

  • UIGravityBehavior object specifies a gravity vector for its dynamic items. Dynamic items accelerate in the vector’s direction until they collide with other appropriately configured items or with a boundary.

  • UIPushBehavior object specifies a continuous or instantaneous force vector for its dynamic items.

  • UISnapBehavior object specifies a snap point for a dynamic item. The item snaps to the point with a configured effect. For example, it can snap to the point as if it were attached to a spring.

Dynamic behaviors become active when you add them to an animator object, which is an instance of the UIDynamicAnimator class. The animator provides the context in which dynamic behaviors execute. A given dynamic item can have multiple behaviors, but all of those behaviors must be animated by the same animator object.

For information about the behaviors you can apply, see UIKit Framework Reference.

Text Kit

Text Kit is a full-featured, high-level framework for apps that need to handle text that has all the characteristics of fine typography. Text Kit can lay out styled text into paragraphs, columns, and pages; it easily flows text around arbitrary regions such as graphics; and it manages multiple fonts. Text Kit is integrated with all UIKit text-based controls to enable applications to create, edit, display, and store text more easily—and with less code than was previously possible in iOS.

Text Kit comprises new classes plus extensions to existing classes, including the following:

For more information about Text Kit, see Text Programming Guide for iOS.

Multitasking Enhancements

iOS 7 supports the following new background execution modes for apps:

  • Apps that regularly require new content can register with the system and be woken up or launched periodically to download that content in the background. To register, include the UIBackgroundModes key with the fetch value in your app’s Info.plist file and set the minimum time you want between fetch operations using the setMinimumBackgroundFetchInterval: method. You must also implement the application:performFetchWithCompletionHandler: method in your app delegate to perform any downloads.

  • Apps that use push notifications to notify the user that new content is available can now use those notifications to initiate background download operations. To support this mode, include the UIBackgroundModes key with the remote-notification value in your app’s Info.plist file. Your app delegate must also implement the application:didReceiveRemoteNotification:fetchCompletionHandler: method.

Apps supporting either the fetch or remote-notification background modes may be launched or moved from the suspended to background state at appropriate times. In the case of the fetch background mode, the system uses available information to determine the best time to launch or wake apps. For example, it does so when networking condition are good or when the device is already awake. Apps supporting the remote-notification background mode may be woken up when a new push notification arrives but before that notification is delivered to the user. The app can use the interval to download new content and have that content ready to present to the user when the notification is subsequently delivered.

To handle the downloading of content in the background, apps should use the new NSURLSession class. This class improves on the existing NSURLConnection class by providing a simple, task-based interface for initiating and processing NSURLRequest objects. A single NSURLSession object can initiate multiple download and upload tasks, and through its delegate can handle any authentication requests coming from the server.

For more information about the new background modes, see “App States and Multitasking” in iOS App Programming Guide.

Games

iOS 7 includes enhanced support for games.

Sprite Kit Framework

The Sprite Kit framework (SpriteKit.framework) provides a hardware-accelerated animation system optimized for creating 2D and 2.5D games. Sprite Kit provides the infrastructure that most games need, including a graphics rendering and animation system, sound playback support, and a physics simulation engine. Using Sprite Kit frees you from creating these things yourself and lets you focus on the design of your content and the high-level interactions for that content.

Content in a Sprite Kit app is organized into scenes. A scene can include textured objects, video, path-based shapes, Core Image filters, and other special effects. Sprite Kit takes those objects and determines the most efficient way to render them onscreen. When it comes time to animate the content in your scenes, you can use Sprite Kit to specify explicit actions you want to perform or use the physics simulation engine to define physical behaviors (such as gravity, attraction, or repulsion) for your objects.

In addition to the Sprite Kit framework, there are Xcode tools for creating particle emitter effects and texture atlases. You can use the Xcode tools to manage app assets and update Sprite Kit scenes quickly.

For more information about how to use Sprite Kit, see Sprite Kit Programming Guide. To see an example of how to use Sprite Kit to build a working app, seecode:Explained Adventure.

Game Controller Framework

The Game Controller framework (GameController.framework) lets you discover and configure Made-for-iPhone/iPod/iPad (MFi) game controller hardware in your app. Game controllers can be devices connected physically to an iOS device or connected wirelessly over Bluetooth. The Game Controller framework notifies your app when controllers become available and lets you specify which controller inputs are relevant to your app.

For more information about supporting game controllers, Game Controller Programming Guide.

Game Center Improvements

Game Center includes the following improvements:

  • Exchanges give players an opportunity to initiate actions with other players, even when it is not their turn. You can use this feature to implement simultaneous turns, player chats, and trading between players when it is not their turn.

  • The limit on per-app leaderboards has been raised from 25 to 100. You can also organize your leaderboards using a GKLeaderboardSet object, which increases the limit to 500.

  • You can add conditions to challenges that define when the challenge has been met. For example, a challenge to beat a time in a driving game might stipulate that other players must use the same vehicle.

  • The framework has improved its authentication support and added other features to prevent cheating.

For more information about how to use the new Game Center features, see Game Center Programming Guide. For information about the classes of the Game Kit framework, see Game Kit Framework Reference.

Maps

The Map Kit framework (MapKit.framework) includes numerous improvements and features for apps that use map-based information. Apps that use maps to display location-based information can now take full advantage of the 3D map support found in the Maps app, including controlling the viewing perspective programmatically. Map Kit includes other changes that enhance maps in your app.

  • Overlays can be placed at different levels in the map content, so that they appear above or below other relevant data.

  • You can apply an MKMapCamera object to a map to add position, tilt, and heading information to their appearance. Camera information imparts a 3D viewing experience onto your map like the one provided by Maps.

  • The MKDirections class lets you ask for direction-related route information from Apple. You can use that route information to create overlays for display on your own maps.

  • The MKGeodesicPolyline class lets you create a line-based overlay that follows the curvature of the earth.

  • Apps can use the MKMapSnapshotter class to capture map-based images.

  • The visual representation of overlays is now based on the MKOverlayRenderer class, which replaces overlay views and offers a simpler rendering approach.

  • Apps can now supplement or replace a map’s existing tiles using the MKTileOverlay and MKTileOverlayRenderer classes.

For more information about the classes of the Map Kit framework, see Map Kit Framework Reference.

AirDrop

AirDrop lets users share photos, documents, URLs, and other kinds of data with nearby devices. AirDrop support is now built-in to the existingUIActivityViewController class. This class displays different options for sharing the content that you specify. If you are not yet using this class, you should consider adding it to your interface.

For more information about using an activity view controller to share data, see UIActivityViewController Class Reference

Inter-App Audio

The Audio Unit framework (AudioUnit.framework) adds support for Inter-App Audio, which enables the ability to send MIDI commands and stream audio between apps on the same device. For example, you might use this feature to record music from an app acting as an instrument or use it to send audio to another app for processing. To vend your app’s audio data, publish a AURemoteIO instance as an audio component that is visible to other processes. to use audio features from another app, use the audio component discovery interfaces in iOS 7.

For information about the new interfaces, see the framework header files. For general information about the interfaces of this framework, see Audio Toolbox Framework Reference.

Peer-to-Peer Connectivity

The Multipeer Connectivity framework (MultipeerConnectivity.framework) supports the discovery of nearby devices and the direct communication with those devices without requiring Internet connectivity. This framework makes it possible to create multipeer sessions easily and to support reliable in-order data transmission and real-time data transmission. With this framework, your app can communicate with nearby devices and seamlessly exchange data.

The framework provides programmatic and UI-based options for discovering and managing network services. Apps can integrate the MCPeerPickerViewControllerclass into their UI to display a list of peer devices for the user to choose from. Alternatively, you can use the MCNearbyServiceBrowser class to look for and manage peer devices programmatically.

For more information about the interfaces of this framework, see Multipeer Connectivity Framework Reference.

New Frameworks

iOS 7 includes the following new frameworks:

  • The Game Controller framework provides an interface for communicating with game-related hardware; see “Game Controller Framework”.

  • The Sprite Kit framework provides support for sprite-based animations and graphics rendering; see “Sprite Kit Framework.”

  • The Multipeer Connectivity framework provides peer-to-peer networking for apps; see “Peer-to-Peer Connectivity.”

  • The JavaScript Core framework (JavaScriptCore.framework) provides Objective-C wrapper classes for many standard JavaScript objects. Use this framework to evaluate JavaScript code and parse JSON data. For information about the classes of this framework, see the header files.

  • The Media Accessibility framework (MediaAccessibility.framework) manages the presentation of closed-caption content in your media files. This framework works in conjunction with new settings that let the user enable the display of closed captions.

  • The Safari Services framework (SafariServices.framework) provides support for programmatically adding URLs to the user’s Safari reading list. For information about the class provided by this framework, see the framework header files.

Additional Framework Enhancements

In addition to the items discussed in the preceding sections, the following frameworks have significant enhancements. For a complete list of new interfaces, see iOS 7.0 API Diffs.

UIKit Framework

The UIKit framework (UIKit.framework) includes the following enhancements:

  • All UI elements have been updated to present the new look associated with iOS 7.

  • UIKit Dynamics lets you mimic real-world effects such as gravity in your animations; see “UIKit Dynamics.”

  • Text Kit provides sophisticated text editing and display capabilities; see “Text Kit.”

  • The UIView class defines the following additions:

    • The tintColor property applies a tint color that affects both the view and its subviews. For information on how to apply tint colors, see iOS 7 UI Transition Guide.

    • You can create keyframe-based animations using views. You can also make changes to your views and specifically prevent any animations from being performed.

  • The UIViewController class defines the following additions:

    • View controller transitions can be customized, driven interactively, or replaced altogether with ones you designate.

    • View controllers can now specify their preferred status bar style and visibility. The system uses the provided information to manage the status bar style as new view controllers appear. You can also control how this behavior is applied using the UIViewControllerBasedStatusBarAppearance key in your app’sInfo.plist file.

  • The UIMotionEffect class defines the basic behavior for motion effects, which are objects that define how a view responds to device-based motion.

  • Collection views support UIKit Dynamics. Using this support, you can apply behavior objects to layout attributes to animate the corresponding items in the collection.

  • The imageNamed: method of UIImage supports retrieving images stored in image asset catalogs, which are a way to manage and optimize assets that have multiple sizes and resolutions. You create image asset catalogs in Xcode.

  • There is a new snapshot method on UIView and UIScreen creates a view that you can use to present your app’s content.

  • The UIKeyCommand class wraps keyboard events received from an external hardware keyboard. These events are delivered to the app’s responder chain for processing.

  • UIFontDescriptor object describes a font using a dictionary of attributes. Use font descriptors to interoperate with other platforms.

  • The UIFont and UIFontDescriptor classes support dynamic text sizing, which improves legibility for text in apps. With this feature, the user controls the desired font size that all apps in the system should use.

  • The UIActivity class now supports new activity types, including activities for sending items via AirDrop, adding items to a Safari reading list, and posting content to Flickr, Tencent Weibo, and Vimeo.

  • The UIApplicationDelegate protocol adds methods for handling background fetch behaviors.

  • UIKit adds support for running in a guided-access mode, which allows an app to lock itself to prevent modification by the user. This app is intended for institutions such as schools where users bring their own devices but need to run apps provided by the institution.

  • State restoration now allows the saving and restoration of any object. Objects adopting the UIStateRestoring protocol can write out state information when the app moves to the background and have that state restored during subsequent launches.

  • Table views now support estimating the height of rows and other elements, which improves scrolling performance.

For information about the classes of this framework, see UIKit Framework Reference.

Store Kit Framework

The Store Kit framework (StoreKit.framework) has migrated to a new receipt system that developers can use to verify in-app purchases on the device itself. You can also use it to verify the app purchase receipt on the server.

For more information about how to use this new receipt system, see Receipt Validation Programming Guide.

Security Framework

The Security framework (Security.framework) adds support for syncing passwords between user's devices via iCloud. Apps can mark their keychain items for iCloud via a new keychain attribute (kSecAttrSyncronizable).

For more information about this attribute, see the framework header files. For general information about the keychain, see the Keychain Services Programming Guide.

Pass Kit Framework

The Pass Kit framework (PassKit.framework) includes new APIs for adding multiple passes at once, along with these additions to the pass file format:

  • New keys specify the expiration date for a pass.

  • You can specify that a pass is relevant only when it is in the vicinity of specific Bluetooth beacons.

  • New attributes control how a pass is displayed. You can group passes together, display links with custom text on the back of a pass, and control how time values are displayed on the pass.

  • You can now associate extra data with a pass. This data is available to your app but not displayed to the user.

  • You can designate which data detectors to apply to the fields of your passes.

For information about how to use Pass Kit in your app, see Passbook Programming Guide. For information about the pass file format, see Passbook Package Format Reference.

OpenGL ES

OpenGL ES includes the following new extensions:

  • The EXT_sRGB extension adds support for sRGB framebuffer operations.

  • The GL_APPLE_pvrtc_sRGB extension adds support for sRGB texture data compressed in the PVRTC texture format.

  • The GL_APPLE_draw_instanced and GL_APPLE_instanced_arrays extensions can improve rendering performance when your app draws multiple instances of the same object. You use a single call to draw instances of the same object. You add variation to each instance by specifying how fast each vertex attribute advances or by referencing an ID for each instance in your shader.

As always, check for the existence of an extension before using it in your app.

Also, textures can now be accessed in vertex shaders; query the value of the MAX_VERTEX_TEXTURE_IMAGE_UNITS attribute to determine the exact number of textures you can access.

MessageUI Framework

In the MessageUI framework, the MFMessageComposeViewController class adds support for attaching files to messages. For information about the new interfaces, see the framework header files.

For information about the classes of this framework, see Message UI Framework Reference.

Media Player Framework

In the Media Player framework, the MPVolumeView class provides support for determining whether wireless routes such as AirPlay and Bluetooth are available for the user to select. You can also determine whether one of these wireless routes is currently active. For information about the new interfaces, see the framework header files. For information about the classes of Media Player framework, see Media Player Framework Reference.

Map Kit Framework

The Map Kit framework (MapKit.framework) includes changes that are described in “Maps.”

For information about the classes of this framework, see Map Kit Framework Reference.

Image I/O Framework

The Image I/O framework (ImageIO.framework) now has interfaces for getting and setting image metadata.

For information about the new interfaces, see the framework header files. For information about the classes of this framework, see Image I/O Reference Collection.

iAd Framework

The iAd framework (iAd.framework) includes two extensions to other frameworks that make it easier to incorporate ads into your app’s content:

  • The framework introduces new methods on the MPMoviePlayerController class that let you run ads before a movie.

  • The framework extends the UIViewController class to make it easier to create ad-supported content. You can now configure your view controllers to display ads before displaying the actual content they manage.

For information about the new interfaces, see the framework header files. For information about the classes of this framework, see Ad Support Framework Reference.

Game Kit Framework

The Game Kit framework (GameKit.framework) includes numerous changes, which are described in “Game Center Improvements.”

For information about the classes of this framework, see Game Kit Framework Reference.

Foundation Framework

The Foundation framework (Foundation.framework) includes the following enhancements:

  • The NSURLSession class is a new class for managing the acquisition of network-based resources in the background. This class serves as a replacement for theNSURLConnection class and its delegate; it also replaces the NSURLDownload class and its delegate.

  • The NSURLComponents class is a new class for parsing the components of a URL. This class supports the URI standard (rfc3986/STD66) for parsing URLs.

  • The NSNetService and NSNetServiceBrowser classes support peer-to-peer discovery over Bluetooth and Wi-Fi.

  • The NSURLCredential and NSURLCredentialStorage classes let you create credentials with a synchronizable policy and provide the option of removing credentials with a synchronizable policy from iCloud.

  • The NSURLCacheNSURLCredentialStorageNSHTTPCookieStorage classes now support for the asynchronous processing of storage requests.

  • The NSCalendar class supports new calendar types.

For information about the new interfaces, see the framework header files and Foundation release notes. For general information about the classes of this framework, see Foundation Framework Reference.

Core Telephony Framework

The Core Telephony framework (CoreTelephony.framework) lets you get information about the type of radio technology in use by the device, the current signal strength, and the cell ID serving the device. Apps developed in conjunction with a carrier can also authenticate their apps against a particular subscriber for that carrier.

For information about the new interfaces, see the framework header files. For general information about the classes of the Core Telephony framework, see Core Telephony Framework Reference

Core Motion Framework

The Core Motion framework (CoreMotion.framework) adds support for step counting and motion tracking. With step counting, the framework detects movements that correspond to user motion and uses that information to report the number of steps to your app. Because the system detects the motion, the system can continue to gather step data even when your app is not running. Alongside this feature, the framework can also distinguish different types of motion, including different motions reflective of travel by walking, by running, or by automobile. Navigation apps might use that data to change the type of directions they give to users.

For information about the new interfaces, see the framework header files. For general information about the classes of this framework, see Core Motion Framework Reference.

Core Location Framework

The Core Location framework (CoreLocation.framework) supports ranging using Bluetooth devices. Ranging lets you determine the relative range of nearby Bluetooth devices and respond appropriately. For example, a museum might place Bluetooth beacons in its galleries and provide visitors with an app that displays information as the user enters and exits those galleries. The framework also supports deferring the delivery of location updates until a specific time has elapsed or the user has moved a minimum distance.

For general information about the classes of this framework, see Core Location Framework Reference.

Core Foundation Framework

The Core Foundation framework (CoreFoundation.framework) now supports scheduling stream objects on dispatch queues. For information about the new interfaces, see the framework header files.

For general information about the interfaces of this framework, see Core Foundation Framework Reference.

Core Bluetooth Framework

The Core Bluetooth framework (CoreBluetooth.framework) includes the following enhancements:

  • The framework supports saving state information for central and peripheral objects and restoring that state at app launch time. You can use this feature to support long-term actions involving Bluetooth devices.

  • The central and peripheral classes now use an NSUUID object to store unique identifiers.

  • You can now retrieve peripheral objects from a central manager synchronously.

For information about the new interfaces, see the framework header files. For general information about the classes of this framework, see Core Bluetooth Framework Reference.

AV Foundation Framework

The AV Foundation framework (AVFoundation.framework) includes the following enhancements:

  • The AVAudioSession class supports the following new behaviors:

    • Support for selecting the preferred audio input, including audio from built-in microphones

    • Support for multichannel input and output

  • The AVVideoCompositing and related classes let you support custom video compositors.

  • The AVSpeechSynthesizer and related classes provide speech synthesis capabilities.

  • The capture classes add support and interfaces for the following features:

    • Discovery of a camera’s supported formats

    • Support for 60 fps recording

    • Video zoom (true and digital) in recordings and video preview, including custom ramping

    • Real-time discovery of machine-readable barcode metadata

    • Autofocus range restriction

    • Access to the clocks used during capture

  • There are new metadata key spaces for supported ISO formats such as MPEG-4 and 3GPP and improved support for filtering metadata items when copying those items from source assets to output files using the AVAssetExportSession class.

  • The AVAssetWriter class provides assistance in formulating output settings and there are new level constants for H.264 encoding.

  • The AVPlayerLayer class adds the videoRect property, which you can use to get the size and position of the video image.

  • The AVPlayerItem class supports the following changes:

    • Asset properties can be loaded automatically when AVPlayerItem objects are prepared for playback.

    • When you link your app against iOS SDK 7, the behavior when getting the values of player item properties—such as the duration, or tracks, orpresentationSize properties—is different than pervious versions of iOS. The properties of this class now return a default value and no longer block your app if the AVPlayerItem object is is not yet ready to play. As soon as the player item’s status changes to AVPlayerItemStatusReadyToPlay, the getters reflect the actual values of the underlying media resource. If you use key-value observing to monitor changes to the properties, your observers are notified as soon as changes are available.

  • The AVPlayerItemLegibleOutput class can process timed text from media files.

  • The AVAssetResourceLoadingDelegate protocol now supports loading of arbitrary ranges of bytes from a media resource.

For information about the new interfaces, see the framework header files. For general information about the classes of this framework, see AV Foundation Framework Reference.

Accelerate Framework

The Accelerate framework (Accelerate.framework) includes the following enhancements:

  • Improved support for manipulating Core Graphics data types

  • Support for working with grayscale images of 1, 2, or 4 bits per pixel

  • New routines for converting images between different formats and transforming image contents

  • Support for biquad (IIR) operations

For information about the new interfaces, see the framework header files. For general information about the functions and types of this framework, see Accelerate Framework Reference.

Objective-C

The Objective-C programming language has been enhanced to support modules, resulting in faster builds and shorter project indexing times. Module support is enabled in all new projects created using Xcode 5. If you have existing projects, you must enable this support explicitly by modifying your project’s Enable Modules setting.

Deprecated APIs

From time to time, Apple adds deprecation macros to APIs to indicate that those APIs should no longer be used in active development. When a deprecation occurs, it is not an immediate end-of-life to the specified API. Instead, it is the beginning of a grace period for transitioning off that API and onto newer and more modern replacements. Deprecated APIs typically remain present and usable in the system for a reasonable amount of time past the release in which they were deprecated. However, active development on them ceases and the APIs receive only minor changes—to accommodate security patches or to fix other critical bugs. Deprecated APIs may be removed entirely from a future version of the operating system.

As a developer, it is important that you avoid using deprecated APIs in your code as soon as possible. At a minimum, new code you write should never use deprecated APIs. And if you have existing code that uses deprecated APIs, update that code as soon as possible. Fortunately, the compiler generates warnings whenever it spots the use of a deprecated API in your code and you can use those warnings to track down and remove all references to those APIs.

This release includes deprecations in the following technology areas:

  • The Map Kit framework includes deprecations for the MKOverlayView class and its various subclasses. The existing overlay views have been replaced with an updated set of overlay renderer objects that descend from the MKOverlayRenderer class. For more information about the classes of this framework, see Map Kit Framework Reference.

  • The AudioSession API in the Audio Toolbox framework is deprecated. Applications should use the AVAudioSession class in the AV Foundation framework instead.

  • The CLRegion class in the Core Location framework is replaced by the CLCircularRegion class. The CLRegion class continues to exist as an abstract base class that supports both geographic and beacon regions.

  • The UUID property of the CBCentral class is deprecated. To specify the unique ID of your central objects, use the identifier property instead.

  • The Game Kit framework contains assorted deprecations intended to clean up the existing API and provide better support for new features.

  • The UIKit framework contains the following deprecations:

    • The wantsFullScreenLayout property of UIViewController is deprecated. In iOS 7 and later, view controllers always support full screen layout.

    • The UIPopoverController class no longer supports the notion of an arrow direction; it supports a presentation direction.

    • 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 gethostuuid function in the libsyscall library is deprecated.

  • In iOS 7 and later, if you ask for the MAC address of an iOS device, the system returns the value 02:00:00:00:00:00. If you need to identify the device, use theidentifierForVendor property of UIDevice instead. (Apps that need an identifier for their own advertising purposes should consider using theadvertisingIdentifier property of ASIdentifierManager instead.)

For a complete list of specific API deprecations, see iOS 7.0 API Diffs.


'iOS' 카테고리의 다른 글

iOS SDK 릴리즈 노트 iOS7  (0) 2013.06.11
iOS 7 Design Resources PDF 입니다.  (0) 2013.06.11
iOS 7 beta for Developers  (0) 2013.06.11

 


iOS7 UIKit User Interface Catalog

UIKitUICatalog.pdf



iOS 7 UI Transition Guide

TransitionGuide.pdf



iOS Human Interface Guidelines

MobileHIG.vol1.egg

MobileHIG.vol2.egg




ps. 외부 링크 거실땐 반드시 댓글로 명시해주세요


'iOS' 카테고리의 다른 글

iOS Developer Library - What's New in iOS7  (0) 2013.06.11
iOS 7 beta for Developers  (0) 2013.06.11
[apple]iOS 6.1 Xcode 4.6 업데이트  (0) 2013.01.29

 


iOS 7 beta for Developers

Reimagine your apps on iOS 7. Download the SDK today and take advantage of the new multitasking APIs, dynamic motion controls in UIKit, AirDrop, Sprite Kit, enhanced video APIs, new features in Game Center and Map Kit, and so much more.

Design and Develop for iOS 7

User Interface

Elevate the content of your apps and make your user interface come alive on iOS 7. Adopt the new design to simplify and revitalize your app with clarity, translucency, and depth. UIKit allows you to incorporate realistic motion and transitions with new APIs that enable your user interface to respond to every touch and swipe by following the behaviors and physical constraints you define. Take advantage of powerful new text layout tools and dynamic type that respect the design principals of iOS 7.

AirDrop

Share photos, documents, URLs and other types of data with multiple devices nearby by adding AirDrop support to your app. By simply adding the Activity sheet, all the details of sharing your content peer-to-peer is handled for you—no network or setup required. And with Wi-Fi peer-to-peer technology you can use the same underlying technology to directly connect with multiple devices nearby, and let your users easily share information with each other.

Multitasking

Keep the content of your app up-to-date by adopting the new multitasking APIs in iOS 7. The new services allow your app to update information and download content in the background without draining the battery unnecessarily. The updates can happen at opportunistic times and are intelligently scheduled according to usage, so your app can update content in the background just when your users need it.

Games

Create new immersive experiences using the latest game technologies in iOS 7. Develop high-performance 2D games with the powerful new Sprite Kit framework, which combines everything you need to animate sprites, simulate physics and create beautiful particle systems all in one easy-to-use set of APIs. Hand the controls over to your users by adding support for upcoming MFi game controllers to your game. And the re-designed Game Center adds more modes for turn-based games and more leaderboards, as well as allowing you to authenticate players, and securely transmit game scores and achievements.

Camera, Photos, and Video

Let your users capture and compose photos and videos just the way they want. Capture video at 60fps, so you can replay dramatic scenes in slow motion. Get a closer look by directly controlling the zoom level of the camera. Create video effects and transitions by combining multiple video tracks using the custom video compositing APIs. Scan and recognize barcodes with the camera.

Accessories

Enhance your apps with support for new types of accessories. Location beacons are a new class of low-powered, low-cost transmitters that can notify nearby iOS 7 devices of their presence. Location beacons will provide apps a whole new level of location awareness, such as trail markers in a park, exhibits in a museum or product displays in stores. Other new features include the ability to setup and configure Wi-Fi accessories, such as AirPlay speakers, directly from iOS. And iOS 7 works with more Bluetooth LE profiles, including time, notifications, keyboards, and stereo sound.

Inter-App Audio

Now your apps can make beautiful music together. With Inter-App Audio, apps can register their audio streams to share with other apps. For example, a series of apps could publish audio streams of instrument tracks while another uses the combination of these streams to compose a song. Inter-App Audio also provides for MIDI control of audio rendering, remotely launching other registered Inter-App Audio apps and more.

Map Kit

Take your apps in new directions with the new features of Map Kit. iOS 7 introduces directions APIs, enabling you to guide users to their destinations from within your app. Allow your users to rotate and move around the map in 3D using updated views and controls. And you have even more control of overlays, making it possible to place them at different layers or replace portions of the map altogether.


Device Support for iOS 7 beta

iOS 7 beta supports iPhone 4, iPhone 4S, iPhone 5, and iPod touch (5th generation). Support for iPad 2, iPad with Retina display, and iPad mini is coming later this summer.


'iOS' 카테고리의 다른 글

iOS 7 Design Resources PDF 입니다.  (0) 2013.06.11
[apple]iOS 6.1 Xcode 4.6 업데이트  (0) 2013.01.29
[object-c] 형변환  (0) 2013.01.17

 

+ Recent posts