WWDC 2015

What's news in Cocoa Touch

iOS 6

  • Autolayout

iOS 7

  • dynamic text

iOS 8

  • Adaptivitiy
    • Size Classes
    • View controllers
    • View controller presentations
    • Search Result
    • Action Sheets

iOS 9

  • Multitasking
  • Picture in Picture
    • Related Session:
      • Getting Started with Multitasking on iPad in iOS 9
      • Multitasking essentials for media-based apps on iPad in iOS 9
      • Optimizing Your app for multitasking in iPad iOS 9

Layout Guides UILayoutGuide

  • UIView
    • MarginLayoutGuide( available Since iOS 8)
    • ReadableContentMargin
      • Make sure the text is readable regardless of users' text size and available spaces

UIStackView

  • adjustable Spacing and alignment
  • nested

Shortcut Bar(above the keyboard)

  • customized via UITextInput protocal
    • func inputAssistantItem
      • leadingButtonGroup
      • trailingButtonGroup

Storyboard

  • link one storyboard to another
  • Unwind segue

Right to left Support

  • UIViewController
    • var semanticContentAttribute (override to return value for custom layout)
  • UIView
    • var semanticContentAttribute (override to return value for custom layout)
  • UIImage

    • func imageFlippedForRightToLeft
    • var isFlippedForRightToLeft
    • Related Session :
      • New UIKit Support for international users interfaces

    Accessibility

    • Change to AVSpeechSynthesis
    • Related Session :
      • iOS Accessbility

Text Editing Gesture( text selection gesture on software keyboard with two fingers dragging)

  • nothing to do to support
  • make sure custom text view gesture is not conflicting

Keyboard commands(Hold command key on hard keyboard)

set discoveryTitles and UIKit will figure out

Touch Events

  • reduce the latency the touch received.
  • Touch predictions (WOW)
  • Advanced Touch input on iOS 9

UIDynamic

  • Support Ellipse and Path Collision Bounds(Only rectangle before)
  • UIFieldBehavoir
    • Linear and Radial Gravity
    • Spring
    • Drag and Velocity
    • Noise And turbulance
    • Electric and Magnetic
    • Or Custom field Evaluator to create own field.
  • new Attachment type
    • Fixed
    • Sliding
    • Pin
    • Limit

Visual Effect

  • Animated Blur radius

API optimizations for Swift

  • Nullability
  • Lightweight generics ( subViews are not id instead of UIVew Type)
  • Related Session :
    • Whats new in Swift

Notifications

  • var behavior
  • var action parameters

Safari

  • SFSafariViewController

New extension point

  • Packet Tunnel Provider
  • App Proxy Provider
  • Filter Control/data provider

Safari Extension point

  • Shared Links
    • Should appear shared Link
  • Content Blocking

SpotLight Extension point

  • Index of application data
  • Index maintenance
  • Related Session :
    • Introducing App Search

Audio Unit Extension point

  • Related Session :
    • Audio unit extension

Contacts

  • New Swift and Objective- API
  • Related Session :
    • Introducing the contacts framework for iOS & OS X

Wallet and PassKit

Core Location

  • updates to background location tracking
  • CLLocationManager
    • request one-time location
    • func requestLocation

MapKit

  • access 3DPlayer flyer View
  • show traffic
  • show compress and scale
  • custom callouts(?)

Health Kit

  • Direct support in WatchOS2

ResearchKit

HomeKit

CloudKit

  • Related Session :
    • Whats new in CloudKit
    • CloudKit tips and tricks

UIDocument

  • no longer a copy of the document

On Demand Resource

  • Hosted on App Store
  • Dynamc load content
  • Base on history
    • user behaviors

App Slicing

  • Automatically tailors the applications
  • New NSDataAsset class

Game centre

ReplayKit

GamePlayKit

  • Related Session :
    • Introducing GamePlayKit

WatchOS2

  • Related Session :
    • Introduction WatchKit for Watch OS 2