WWDC Videos    (List of all Videos

WatchKit videos:

  1. WatchKit-in-depth 1 & WatchKit-in-depth 2
  2. WatchKit Tips & Tricks *
  3. Layout & Animation for WatchKit
  4. Introducing WatchKit for watchOS2 (Intro WatchKit, Connectivity & ClockKit)

Other Watch videos:

  1. Creating Complications with ClockKit
  2. Apple Watch Accessibility
  3. Introducing Watch Connectivity
  4. Performance on iOS & watchOS
  5. Building Watch Apps
  6. Achieving All-day Battery Life

Design for Watch:

Watch OS2

1. New architecture (comparing architectures in watch OS2 vs OS1):

  • Watch Extension now must be implemented using WatchOS SDK (limited System frameworks)
  • Networking now done on the Watch itself (Watch can use WIFI even outside of Phone range!)
  • Communication with Phone app: Extension object & Delegate

2. Watch Connectivity:  Two-way communication between your Watch app and the Phone app.

4 modes of communicating to iPhone app: (Apple Link) 1. Application context mode:

Use this mode to send small amounts of state information to a counterpart app. The receiving app should use the information to synchronize its behavior or update its interface. For example, a Watch app might use the data to update the contents of its glance. 2. User information transfer mode:

Use this mode to send messages in the background. The receiving process need not be running for the data to be transferred. Data is transferred in the background and queued for delivery.

3. File transfer mode:

  • transferFile:userInfo:

Use this mode to transfer files between apps. The receiving app must move the file to a new location if it intends to keep it. Files not moved in the session:didReceiveFile:method are deleted after that method returns. 4. Interactive messaging mode:

Use this mode to send data immediately to a counterpart app. If you do not want a response, you may specify nil for the replyHandler parameter.

The counterpart app must be reachable before calling this method. The iOS app is always considered reachable, and calling this method from your Watch app wakes up the iOS app in the background as needed. The Watch app is considered reachable only while it is installed and running.

3. System Frameworks available for Watch OS 2 Screen Shot 2015-06-09 at 12.41.11 pm

4. New UI: Complications & PickerView

4.1 PickerView:

List_PickerViewStack_PickerViewChoosing Values Screen Shot 2015-06-15 at 11.41.36 am Now we can use Digital Crown to pick values on the PickerView. Digital Crown can also be used to change value on the progress bar.

4.2 Complications (CLOCK KIT)

Complication is like widget – a small element that can be placed on the Clock face. Need to add ClockKit framework. There are many types of complications – we can choose a Face template and so provide data for it. We don’t have control over placement of the complications. ClockKit will call methods of complication data-source (CLKComplicationDataSource protocol) to get the meta-information & past, present and future data (entries) to display.

The Entries contain DATA and the TEMPLATE – and the TIME to display it. Using Digital Crown, we can go TIME TRAVEL mode to visit the entries.

5. Animation API 

The Animations are available for WKInterfaceController (class reference link).

– Attribute ‘animate‘ – YES means the animated background image will start automatically after being loaded.

- animateWithDuration:animations: (New in watchOS 2.0) will perform animation. To use completionBlock for this function, use this trick : put animation in a NSOperation, then completionBlock on another NSOperation, add a dependancy so this block depends on the other block. See Video Advanced NSOperations

iOS 9: 

  1. Multi-taslking: Slide Over, Split View, Picture in Picture 
  2. Search: Deep Link (NSUserActivity API), Content Indexing (Core Spotlight API)
  3. Games: SceneKit, SpriteKit, Metal new stuffs. GameplayKit (StateMachine). ReplayKit (Record video). Model I/O (physics)
  4. App Thinning: app optimized for downloader’s devices. Smaller, more convenient update.
  5. Resources-on-demand
  6. Bitcode
  7. Stack Layout
  8. UI Automation Bundle
  9. HomeKit: More types of accessories supported.
  10. HealthKit: 
  11. MapKit: Transit & FlyOver
  12. CloudKit: CloudKit JS – web interface for same data!
  13. Safari: app extension for Safari.
  14. News Publisher: Apple News create magazines!

XCode 7: 

  1. Free Provisioning: anyone can test on device now, not required Apple Developer account.
  2. One Account for Mac, iOS and Safari development !
  3. App Crash Report: either TestFlight, AppleStore or uploaded, crash logs will be de-symbolicated and links to actual code.

OS X El Capitan

  1. Swift 2: becomes Open Source. New enhancements.
  2. Metal API: GPU-CPU cooperation.
  3. ForceTouch API: pressure detection using ForceTouch trackpad. 
  4. Photos Extension: access to custom filters/ editing tools from Photos. 

Other Enhancements:

  1. Security
  2. Networking
  3. Management
  4. App Distribution

Some other features will also work better with new iOS 9:

  1. App Extension
  2. Handoff
  3. iBeacon
  4. TouchID
  5. AirPlay