WWDC 2015

102 Platform state of the union

This 2 hours long session sums up the technical aspect of latest platforms for OSX EL capitan, iOS 9 and watchOS 2.

this is a good blog post of summary for replayKit , GamePlayKit , HomeKit and Search

Xcode 7 free native development and deploy to device

Apple Developer Program merging into one for any platform and paid once only.

App thinning

App Slicing

A app bundle contains every platform resources needed.

  • 32 bit / 64 bit
  • Images 1x/ 2x/ 3x
  • GPU shaders (low /high)

Running on a device just need one set of components

App store will deliver needed for the user and thus reducing size of apps.

if using asset catalogs, that will done automatically.

On demand resources

Sliced for device. Hosted by Apple. Downloaded when needed. Reclaimed the space where needed.

e.x. tutorial resources game-level resources..

Bitcode

intermediate binary format for submitting to app store. App Store deliver full binary and optimized with latest compiler available.

therefore , if there are new CPU architecture , develoeprs are not needed to resubmit the app.

iOS 9 default on WatchOS 2 mandatory

Starting from iOS 9

Developers are allowed to submit 64 bit only binary.

watchOS2

Extension runs on Watch instead of on iPhone

WatchConnectivity.framework for watch connections

NSURLSession

Customized Complication

  • Schedule Updates (update all local schedule data)
  • Push Updates

Time Travel

New feature of WatchOS2

Demo Transit to native app WatchOS1 to WatchOS2 migrator

replace openParentApplication with WatchConnectivity interact with digital crown WKInterfacePicker and WKPickerItem Style List stack sequence

watch Simulator -> full watchOS simulator

Foundation

new compression algorithm lvfse battery improvement Security Two-factor authencitation

  • NSURLSession
  • exception domains in info.plist IPv6 support
  • use the networking frameworks
  • avoid use IPv4-specific APIs
  • Avoid hard coded addresses

iOS 9 submission requirement : support IPv6

internationalization

App store sales

  1. US
  2. Japan
  3. Chinese

new internationalizaton formatter

NSPersonNameComponentsFormatter

full support in UI elements like layout , system gestures

if use autolayout, right to left languages are supported automatically

for custom View Controller,

 UIView.userInterfaceLayoutDirectionForSemanticContentAttribute()

Universal Links

  1. Register app links
  2. NSUserActivity ( same as hand-off )
application:continueUserActivity:restorationHandler

Search

  1. App Search
  • CoreSpotlight
  • App Indexing extension
  • NSUserActivity
  • Web markup ( from the website mirroring of the app)

multitasking

SlideOver

Split View

-> Adaptive UI

pick a layout and adapt window changes

  • Dynamic Type
  • Auto layout
  • Size Classes

  • Adopt Adaptive UI
  • Use a launch storyboard
  • Support all orientations

Picture in Picture

Support background media playback Enable picture in picture

  • AVPlayerViewController
  • WKWebview
  • AVPictureInPictureController

Window Management in Mac

Force Touch

  • NSPressureConfguration
  • NSGestureRecoginzer
  • NSView.pressureChangeWithEvent()
  • NSEventType.EventTypePressure

iCloud drive native app (enable in setting)

CloudKit dashboard

  • Cloud Web Services
  • Full access via JSON
  • JSLibrary
  • Secure sign in with Apple ID

Swift 2

Open source to Linux with compilers and libraries.

  • Error Handling
  • Availability checking
if #available(iOS 9.0, *)

fluent language for generic functions

guard for early exit

Generic for Object

Xcode new feature Header file view (by removing implmentation) Rich comments

StackView hidden view inside StackView -> auto adjust

Storyboard reference > connections with different storyboard files (no need to put all scenes in a storyboard)

on demend resource tags (custom tags)

resource download orders and dwonload priorities

New Xcode profiling tools

Crash logs > open in projects > focus on crash codes

Testing

  • user interface testing
  • Code coverage (see the proportion of codes are already tested)

right click on test cases to see test report UI testing -> record button -> auto generate UI test code

GameKit

New Xcode editor for scenes and 3d Models

Game logics

can use without game as well

Replay Kit

save game replays

can use without game as well