{
  "$type": "site.standard.document",
  "coverImage": {
    "$type": "blob",
    "ref": {
      "$link": "bafkreig22vyhndrez6rvirftdj6qiyuqba67uxhzrhhfkbudwtqkosxy3u"
    },
    "mimeType": "image/jpeg",
    "size": 94998
  },
  "description": "Here’s my own list of the interesting stuff announced during this year’s WWDC, collected from the keynotes, various Apple docs, blog posts and tweets.\n\nIf you’re planning to watch the videos, I really recommend this Mac app that helps you download and watch them: https://wwdc.io.\n\n(This was originally posted on Gist at https://gist.github.com/mackuba/15994186a4f9d7da3137.)\n\nOS X 10.11 El Capitan\n\n🗄️ http://www.apple.com/osx/elcapitan-preview/\n\nsplit view - two apps side by side on full screen\nimproved Mission Control\nshaking the mouse highlights the cursor\nsmarter Spotlight (Siri-like results, natural language queries, resizable window)\nMail: tabbed compose window as a popup in full screen mode; autosuggests new contacts and events; swipe gestures\nNotes: updated UI, supports checklists and embedded media, syncs through iCloud, attachment browser\nPhotos: sorting albums by date\nSafari: pinned sites, detect and mute audio in tabs\nMaps: public transit\nsignificant performance improvements, mostly thanks to the Metal framework\nnew beach ball cursor\nnew system font (San Francisco)\nSafari developer tools: responsive design mode\nSystem Integrity Protection - limited some privileges of admin accounts (can’t modify system files or access system processes) - can be disabled with a special utility\nredesigned disk utility, new color picker, option to autohide menu bar\n\niOS 9\n\n🗄️ https://www.apple.com/ios/ios9-preview/\n\nmore intelligent Siri\nproactive suggestions in various places\nmore intelligent search feature, extensible by apps\niPad multitasking - slideover, split view, Picture in Picture\nNotes: supports checklists and embedded media, sketch drawing, syncs through iCloud\nPassbook renamed to Wallet, can hold reward cards etc.\nMaps: public transit, finding places nearby\nNews app\niCloud Drive app that shows all contents of your iCloud drive\n“Move to iOS” app (in the App Store) for migrating from Android\niPad keyboard - copy/paste buttons, dragging on the keyboard makes it select text\niPad external keyboard - app switching\nnew app switcher\nlowercase keyboard\nlow power mode\nsmaller download size for OS updates and less free space required to install\npasscodes can be 6 digits long\nto log in on a new device, you need to enter a verification code shown on one of your existing devices\nfull right to left support - in RTL mode, everything is right to left - system controls, layout, gestures, navigation, tab bars etc.\noptimized UI, up to 1h more of battery usage\nnotifications don’t light up the screen if the iPhone is lying face down\npopovers now drop a slight shadow around them on the underlying view\n“share” option added to the popover shown when selecting text\n\nwatchOS 2\n\n🗄️ https://www.apple.com/watchos-2/\n\nnew watch faces (photo, album, timelapse)\ntime travel feature - shows events and predicted status of various things (e.g. weather) in the future or in the past if you’ve missed something\nnight stand mode - landscape display, buttons act as “snooze” and “off”\npub…",
  "path": "/2015/07/05/new-stuff-from-wwdc-2015/",
  "publishedAt": "2015-07-05T19:39:30Z",
  "site": "at://did:plc:oio4hkxaop4ao4wz2pp3f4cr/site.standard.publication/3mn5mackuba26",
  "tags": [
    "Cocoa",
    "iPhone",
    "Mac",
    "WWDC"
  ],
  "textContent": "Here’s my own list of the interesting stuff announced during this year’s WWDC, collected from the keynotes, various Apple docs, blog posts and tweets.\n\nIf you’re planning to watch the videos, I really recommend this Mac app that helps you download and watch them: https://wwdc.io.\n\n(This was originally posted on Gist at https://gist.github.com/mackuba/15994186a4f9d7da3137.)\n\nOS X 10.11 El Capitan\n\n🗄️ http://www.apple.com/osx/elcapitan-preview/\n\nsplit view - two apps side by side on full screen\nimproved Mission Control\nshaking the mouse highlights the cursor\nsmarter Spotlight (Siri-like results, natural language queries, resizable window)\nMail: tabbed compose window as a popup in full screen mode; autosuggests new contacts and events; swipe gestures\nNotes: updated UI, supports checklists and embedded media, syncs through iCloud, attachment browser\nPhotos: sorting albums by date\nSafari: pinned sites, detect and mute audio in tabs\nMaps: public transit\nsignificant performance improvements, mostly thanks to the Metal framework\nnew beach ball cursor\nnew system font (San Francisco)\nSafari developer tools: responsive design mode\nSystem Integrity Protection - limited some privileges of admin accounts (can’t modify system files or access system processes) - can be disabled with a special utility\nredesigned disk utility, new color picker, option to autohide menu bar\n\niOS 9\n\n🗄️ https://www.apple.com/ios/ios9-preview/\n\nmore intelligent Siri\nproactive suggestions in various places\nmore intelligent search feature, extensible by apps\niPad multitasking - slideover, split view, Picture in Picture\nNotes: supports checklists and embedded media, sketch drawing, syncs through iCloud\nPassbook renamed to Wallet, can hold reward cards etc.\nMaps: public transit, finding places nearby\nNews app\niCloud Drive app that shows all contents of your iCloud drive\n“Move to iOS” app (in the App Store) for migrating from Android\niPad keyboard - copy/paste buttons, dragging on the keyboard makes it select text\niPad external keyboard - app switching\nnew app switcher\nlowercase keyboard\nlow power mode\nsmaller download size for OS updates and less free space required to install\npasscodes can be 6 digits long\nto log in on a new device, you need to enter a verification code shown on one of your existing devices\nfull right to left support - in RTL mode, everything is right to left - system controls, layout, gestures, navigation, tab bars etc.\noptimized UI, up to 1h more of battery usage\nnotifications don’t light up the screen if the iPhone is lying face down\npopovers now drop a slight shadow around them on the underlying view\n“share” option added to the popover shown when selecting text\n\nwatchOS 2\n\n🗄️ https://www.apple.com/watchos-2/\n\nnew watch faces (photo, album, timelapse)\ntime travel feature - shows events and predicted status of various things (e.g. weather) in the future or in the past if you’ve missed something\nnight stand mode - landscape display, buttons act as “snooze” and “off”\npublic transit support in maps and siri\nsiri can show glances\nwatch is protected by Activation Lock on startup\n\nFoundation\n\nhttps://developer.apple.com/library/archive/releasenotes/Foundation/RN-FoundationOlderNotes/index.html#X10_11Notes\n\nNSURLConnection is deprecated in favor of NSURLSession\nApp Transport Security: non-encrypted HTTP connections are now blocked by default unless you explicitly add an exception to the plist file (doc 🗄️)\nIPv6 support is now required\n\nusing standard library classes like NSURLSession is recommended\navoid hardcoding IP addresses\nfor testing: OSX can create an IPv6 network for the iPhone\n\nassigning nil to an NSMutableDictionary key through a subscript now removes the key (e.g. dict[@\"key\"] = nil)\nNSNotificationCenter now automatically handles removing deallocated observers (except block-based ones) so you don’t need to unregister manually in dealloc/deinit\nlzfse - new compression algorithm available for compressing data\nNSPersonNamesComponentFormatter - for displaying people’s names in a localized way\nmethods for percent-escaping URL strings were deprecated and replaced with new ones\n\nOS X 10.11 SDK\n\n🗄️ https://developer.apple.com/osx/ \nhttps://developer.apple.com/library/archive/releasenotes/MacOSX/WhatsNewInOSX/Articles/MacOSX10_11.html \nhttps://developer.apple.com/library/archive/releasenotes/AppKit/RN-AppKitOlderNotes/index.html#X10_11Notes\n\nMetal & MetalKit - a framework for doing various operations on the GPU\nphoto app extensions allow you to add filters and other edit tools to Photos\nSafari extensions can now block content (old way of intercepting content in extensions is deprecated)\nweb APIs in Safari for accessing Force Touch trackpad\nMapKit can now be used in apps outside Mac App Store\nAPIs to support force touch trackpads\nNSLayoutGuide - a kind of lightweight subview for defining an AutoLayout section which isn’t actually a real view\nNSLayoutAnchor - a helper for creating AutoLayout constraints in code\n\niOS 9 SDK\n\n🗄️ https://developer.apple.com/ios/ \nhttps://developer.apple.com/library/archive/releasenotes/General/WhatsNewIniOS/Articles/iOS9.html \nhttp://www.hackingwithswift.com/ios9\n\nGeneral:\n\nApp Thinning, App Slicing - optimizes app download for the given device - can choose e.g. only 64-bit code, only 2x images etc. (doc 🗄️)\nOn-Demand Resources: files can be hosted in the App Store separately from the app and downloaded only on demand (Xcode simulates this during debugging, streaming the resources to the device) (doc 🗄️)\nBitcode - code is submitted as intermediate LLVM representation that can be later converted by the App Store to new CPUs and architectures (required for watchOS, recommended and enabled by default for iOS)\nuniversal app links (http) - clicking registered http links opens your app instead of Safari, intended as a replacement for custom URL schemes\napps need to declare used external URL schemes in Info.plist, old apps can only use canOpenURL 50 times to prevent abuse\napp’s iCloud documents can be opened in place inside iCloud Drive app (LSSupportsOpeningDocumentsInPlace)\nusing adaptive layout / size classes is recommended to support iPad multitasking\nPicture in Picture - support via WKWebView and AVPlayerViewController, and a new AVPictureInPictureController\nit’s now allowed to submit 64-bit only apps\ntouch prediction in UIKit\nfull support for right-to-left languages (layout mirroring)\npossibility to define keyboard shortcuts for external keyboards (addKeyCommand)\n\nNew frameworks:\n\nGameplayKit - algorithms and data structures that can be useful for games (but not only) (doc)\nModel I/O - lighting for 3d models\nReplayKit - lets you record gameplay screencasts inside the app\nsearch API (Core Spotlight, search extension and some other ways)\n\nFramework updates:\n\nCore Image: text detection feature (no OCR, just detects that there is a text)\nSFSafariViewController - a view controller for showing a built-in browser inside your app (shares cookies and data with Safari)\n\nUIKit updates:\n\nNSLayoutAnchor - a helper for creating AutoLayout constraints in code\nUIStackView - a layout container for arranging views vertically or horizontally\nUIUserNotificationAction:\n\nnotifications can allow a text response (UIUserNotificationActionBehaviorTextInput)\n\nwatchOS 2 SDK:\n\n🗄️ https://developer.apple.com/watchos/ \n🗄️ https://developer.apple.com/library/watchos/documentation/General/Conceptual/AppleWatch2TransitionGuide/\n\nnative apps - still supplied as an iOS extension, no completely custom views, but the code runs on the watch\n“complications” - tiny widgets that can be displayed inside various watch faces (ClockKit)\n\nyou create a timeline up front - what to show at what time, and watchOS uses this to show up to date data immediately when the screen turns on (also used for time travel - forward and backward)\nscheduled updates - lets you update the data in the timelines at scheduled intervals\npush updates - via push notifications\n\napps can access the Internet through known WiFi networks w/o an iPhone\napps can access microphone, HealthKit including heart rate, HomeKit, accelerometer, taptic engine, crown, play audio and video, record audio, make phone calls\na lot of well known frameworks are available like CoreGraphics, CoreLocation, CoreMotion, CoreData etc.\nWatchConnectivity framework for communication between the extension and the iPhone app\nNSURLSession can be used directly on the watch even if the iPhone is out of range\nWKInterfacePicker control for scrolling through elements with the crown\n\ntvOS 9 SDK:\n\n🗄️ https://developer.apple.com/tvos/\n\nDeveloper tools\n\nSwift 2.0\n\n🗄️ https://developer.apple.com/swift/ \nhttps://mikeash.com/pyblog/friday-qa-2015-06-19-the-best-of-whats-new-in-swift.html \nhttp://airspeedvelocity.net/2015/06/09/changes-to-the-swift-standard-library-in-2-0-beta-1/ \nhttp://www.russbishop.net/swift-2-0\n\nNew/updated ebook is also available.\n\nSwift goes open source and multi-platform! (in autumn, under a permissive license, available for Linux for now)\nnew error handling features (throw, throws & rethrows, try, do/catch, ErrorType)\n\nhttp://www.sunsetlakesoftware.com/2015/06/12/swift-2-error-handling-practice\nhttp://robnapier.net/re-throws\nhttps://gist.github.com/nicklockwood/21495c2015fd2dda56cf\n\ndefer statement (like finally in some languages)\nguard statement - for checking a precondition before continuing execution of the block\n\nhttp://ericcerney.com/swift-guard-statement/\n\ndo-while is renamed to repeat-while\nprotocols now can have default method implementations and helper methods (i.e. they work as mixins)\n\nhttp://nomothetis.svbtle.com/the-ghost-of-swift-bugs-future\n\nprotocols can now be extended with extensions, also with conditions limiting them to a subset of implementing types\npattern matching with case can now be used in other statements like if, for-in etc.\n\nhttp://natashatherobot.com/swift-2-pattern-matching-with-if-case/\nhttp://natashatherobot.com/swift-2-for-in-filtering/\n\nnew optional pattern for matching optionals: case let foo?\n\nhttp://natashatherobot.com/swift-2-pattern-matching-unwrapping-multiple-optionals/\n\nwhere conditions can be used in for-in loops and in the new if-case condition\nglobal functions now follow the same rules for parameter names as methods (i.e. all attributes except the first need to be explicitly used when calling), and the # shorthand for reusing local parameter name for the external name is removed\nnon-generic classes can inherit from generic classes\nSwift closures can now be passed to C functions that expect function pointers in arguments\nAPI availability checking (if #available and @available attribute) + compile errors if you try to use a new API targetting an older OS\nnew attributes: @convention and @warn_unused_result\nbit-map enums (e.g. .Alert | .Badge) are now imported as a new OptionSetType type and handled more like a collection\na lot of new methods added to CollectionType like map, filter etc., global functions like map removed\nprintln renamed to print, pass appendNewLine: false to don’t add a \\n\nnumber types now have initializers taking a String argument\nString is no longer a collection\nfix-it suggestions about changing var to let when possible\nMarkdown syntax supported in documentation comments\nvarious optimizations to compile time and generated code performance (e.g. for closures executed in place)\n\nXcode 7 & dev portals\n\n🗄️ https://developer.apple.com/xcode/ \nhttps://developer.apple.com/library/archive/documentation/DeveloperTools/Conceptual/WhatsNewXcode/Chapters/xcode_7_0.html\n\nMac, iOS and Safari Developer Programs joined into a single Apple Developer Program ( link & link)\nDeveloper Program is no longer required to run apps from Xcode on your iOS device (!)\nin the Developer Portal, you can now register 100 devices of each kind separately (e.g. 100 iPhones, 100 iPods etc.) - including Apple TVs!\niTunes Connect now allows adding a single address to multiple organizations like Developer Program did\nTestFlight: 2000 external testers, 60-day builds\nnew developer forums at forums.developer.apple.com, open to everyone without logging in\nframework for writing UI tests + a test action recording tool (default app templates now automatically add a UI test target)\ncode coverage reporting\nmigration tool for migrating Swift code to 2.0\nAddress Sanitizer - a tool that helps you detect improper memory usage bugs\nFind -> Call Hierarchy for finding method calls in potential stack traces\nintegrated crash log browser for iOS and OSX\nheader file view assistant mode for viewing Swift classes without implementations\nenergy usage gauge for iOS apps\nanimation and level editor for SceneKit and SpriteKit\nIB support for segues between storyboards and placeholders for scenes from other storyboards\nObjC generics (NSArray<NSString*>*) - not actually enforced, mostly for Swift compatibility\nvarious improvements to playgrounds, including possibility to have multiple pages\nCloudKit Web Services 🗄️ - a web service and JS library for accessing iCloud from web apps using JavaScript (includes OAuth-style login with Apple ID)\n\nOther\n\nApple Pay expands to UK\nApple Music launches in 100+ countries, first 3 months free (from the moment of signup)",
  "title": "New stuff from WWDC 2015",
  "updatedAt": "2025-08-20T01:05:55Z"
}