Top 10 WWDC 2017 Videos
- 1) Platforms State of the Union – Session 102
- 2) What’s New in Swift – Session 402
- 3) What’s New in Cocoa Touch – Session 201
- 4) Core ML In Depth – Session 710
- 5) Advanced Animations with UIKit – Session 230
- 6) What’s New in CareKit and ResearchKit – Session 232
- 7) Designing Sound – Session 803
- 8) Vision Framework: Building on Core ML – Session 506
- 9) Debugging with Xcode 9 – Session 404
- 10) Updating Your App for iOS 11 – Session 204
- Where to Go From Here?
If you weren’t lucky enough to get a “golden ticket” to WWDC 2017, catching up by watching the videos will be quite a challenge, as there are over 130 WWDC session videos available this year!
There are videos on the newest APIs, such as ARKit, CoreML, Drag and Drop and Vision; ones covering Xcode 9 with new and improved refactoring in Swift, Objective-C and C++, and then there’s everything new in Swift 4, new bits in UIKit, great videos on accessibility and so much more.
What’s a developer to do?
Fear not, as the raywenderlich.com tutorial team and friends have assembled a list of the Top 10 WWDC 2017 videos that cover everything you need to know, in a minimum of time. We consider these “must-see” sessions for developers from all backgrounds and specialties!
$0.playbackRate = 1.4;. You can thank me later! :]
1) Platforms State of the Union – Session 102
If you only have time for one video, this is it!
For developers, the real start of WWDC is the Platforms State of the Union session. The Keynote is a fluffy offering to surprise and delight the general public, investors and Apple faithfuls. The State of the Union, in contrast, is where the really interesting details come out.
This talk surveys the new technologies and outlines which sessions will provide more details on each technology. Here are the highlights of the 2017 Platforms State of the Union:
- Xcode 9 has a brand new source editor rewritten in Swift. The new source editor is more semantic, has tokenized editing from Swift playgrounds as well as an integrated Markdown editor. The best feature? A brand-new refactoring system that supports Swift, Objective-C, C and C++.
- Swift 4 continues to make programing easier, faster, safer and more modern. String handling is vastly improved, with an easier API, greater integration with Unicode and sports a much more responsive UI. The Codable protocol handles encoding and decoding, which makes it possible to handle JSON in Xcode 9. You can blend Xcode 3.2 and Xcode 4 together in your projects, and compiling and blending Swift with Objective-C is now faster than before.
- CoreML makes adopting machine learning in your apps nearly a plug-and-play exercise. Choose a third-party model library, add it to your app and boom, you have a neural network. Add a few lines of code and you can create your own ballpark frank identifier.
- ARKit lets you create Augmented Reality apps on iOS. Using visual-inertial odometry, the framework makes use of the accelerometer and gyro to free up the CPU to track objects in the real world. With Scene Understanding, you can place objects into your AR scene and light them appropriately for increased realism. You can use graphics frameworks like Metal2 in ARKit and even use pre-existing plugins from Unity and Unreal.
There are many more new items covered in the Platform State of the Union than I can address in this article. If you watch no other WWDC 2017 session video, this is definitely the one you want.
2) What’s New in Swift – Session 402
“The What’s New in Swift is so dense this year you can cut it with a knife!” – Me, just now.
The session begins with a shout out to Oleg Begerman’s open source playground that you could use to test Swift 4 before WWDC. Because it’s open source, you can grab a snapshot from swift.org and add it to Xcode since the snapshot is a toolchain item. Xcode 9 now offers refactoring and the possibility to use the toolchain mechanism to roll your own refactoring.
This session is so dense that we can only cover some of the highlights:
privatekeyword has been redefined to reach across multiple extensions in your code while protecting other elements in the same source file.
- Swift 4 introduces building a class with any number of protocols, just as you could in Objective-C. This allows you to code in a more Swift-y style with extensions.
- Source compatibility between Swift 4 and the new Swift 3.2 also has many refinements. As a result, the Swift 4 compiler has a compilation mode that emulates Swift 3. Since it understands the differences between the two, you can update your target to Swift 4 and leave your dependencies in Swift 3. Migrating to Swift 4 is no longer the end of the world and can be done as your development schedule permits.
- Xcode 9 has a new more efficient build system, based on llbuild, that you can opt in to and try out.
- Precompiled Bridging Headers mean that a single header is compiled and shared by every Swift file in your project. Previously, it had to be recompiled for every Swift file.
- Code coverage has improved: you no longer have to compile the entire project to run a test. Now the project is built once and saved.
- Existential copy on write buffers are only used when values are mutated; otherwise, the values are read-only. Previously, large items were moved the more expensive heap, creating a huge performance hit.
- The Swift 4 compiler now can automatically strip away conformances that aren’t used.
- Strings are now Collections instead of arrays of Characters. This means that you can use collection methods like
.split. However, creating splits can create a strings’ owner reference to the original string. To avoid a double reference or possible memory leak, Substring is now a type, with the same behaviors as strings.
- Multi-line literals are a new feature proposed and maintained by the open source community. To use them, simply enclose your multi-line text with triple quotes.
Exclusive Access to Memory makes it easier to deal with local variables and enable programmer and compiler optimizations, since properties sometimes need to be protected during operations. While it may be fine for a variable to be read by two separate processes, writing to the variable should be an exclusive operation. With this new rule in Swift 4, the complier will tell you when this occurs, on a single thread. The new Thread Sanitizer Tool will tell you when this occurs in multi-threaded cases.