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:
- 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 ofOSSpinLock
“compatible” with iOS)- Cleaner Swift API
Performance improvements
_NSDictionaryM
combines buffers for 33-50% fewer mallocs sourceCFStringCreateCopy
early-outs for tagged pointers now, which makes it 4x faster for ~40% of strings sourceNSArray
andCFArrayCreate*
will now return_NSArrayI
and_NSArrayM
instances on iOS/watchOS/tvOS as they have for some time on macOS sourceCF_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 moreSFSpeechRecognizer
you can guess what it does- Unified Log API