WWDC'16 - First Bits

A short digest of mostly low-level things which started to appear on WWDC’16.

APFS - Apple File System

That’s my personal favorite news.

  • For all spectrum of devices
  • Optimized for SSD
  • Encryption
  • Copy on write, snapshots, clones
  • Planned release - 2017
  • Specs and docs will be available after release

There is no information available on how long it has been in work and how long it was tested.

Language(s)

  • Objective-C got __auto_type declarations (source), it can be used like this:
int main() {
   __auto_type foo = @"FINALLY";
   NSLog(@"%@", foo);
}
  • Objective-C got also class properties
  • Swift in Xcode 8 will be presented in 2 flavors: 3.0 and 2.3 for those who want to wait a bit before jumping to 3.0 train and still want to use new SDKs.

Tools

  • new fancy documentation. You have to check it out
  • thread sanitizer
  • address sanitizer (Swift)
  • memory graph debugger
  • automatic code generation for Core Data models
  • new signing system

The “fun” thing though is that all those changes (except signing system) require migration to Swift 3.0 (if you’re using Swift, it looks like for Obj-C there are no constraints).

libdispatch

  • dispatch_assert_queue and similar can be quite handy. See the whole family.
  • assertions if there is a hang detected due to a deadlock in dispatch_barrier_sync
  • os_unfair_lock (kind of OSSpinLock “compatible” with iOS)
  • Cleaner Swift API

Performance improvements

  • _NSDictionaryM combines buffers for 33-50% fewer mallocs source
  • CFStringCreateCopy early-outs for tagged pointers now, which makes it 4x faster for ~40% of strings source
  • NSArray and CFArrayCreate* will now return _NSArrayI and _NSArrayM instances on iOS/watchOS/tvOS as they have for some time on macOS source
  • CF_IS_OBJC is way faster (used in bridging) source
  • plist encoding/decoding should be a bunch faster due to various changes source

Miscellaneous

  • BNNS basic neural network subroutines more
  • SFSpeechRecognizer you can guess what it does
  • Unified Log API

Comments