S Link
Migrating to Swift for iOS Developers
5-day class for iOS developers: Migrate your own Obj-C app to Swift, and explore new iOS 8 features. First class led by Homebrew pro developer Max Howell.
Swift Around the Web
Hacked Up Incremental Compilation in Swift
From @andy_matuschak "If you too are driven nuts by Swift's non-incremental compilation as you iterate, here's the awful stopgap I'm using: http://cl.ly/YwXc". Sounds like Apple is working on this from the Twitter comments, but I'm definitely not the only frustrated one out there...
Swift: Interesting Facts Infographic
"15% of StackOverflow users who have asked / answered questions about Swift are not Objective-C developers" and other very interesting Swift facts...
Swift Style Guide: December 2014 Update
As I keep using Swift more and more, I'm coming to the same conclusion as @jeremywsherman did a few weeks ago in this blog post - "Swift isn’t too young to have a style: It’s just too big to be confined to having a single style."
However, I really like some styles included in this Swift Style Guide - especially the part about creating a different extension for every protocol conformance.
Bindings, Generics, Swift and MVVM
This is an excellent explanation of very advanced iOS App architecture using Swift. I finally understand Boxing! Enjoy.
Coding
Parse Local Datastore for iOS
This is that one feature missing from Parse that almost made it deal-breaker for me. I'm excited they've finally added data persistence! Oh, and if that isn't enough, they've also added dead simple Crash Reporting. Great end-of-the-year presents for iOS devs!
Debugging
IMHO, Debugging is the most important skill to have as a programmer. This issue of @objcio includes super advanced techniques to become better at debugging iOS apps.
Apple News
Xcode 6.2 beta 2, including iOS 8.2 SDK with WatchKit
WatchKit Beta 2 is here! And there is now new and exciting added functionality of opening the parent iOS app from the Watch app:
"When you call the openParentApplication:reply: method, iOS launches or wakes up the parent app in the background and calls the application:handleWatchKitExtensionRequest:reply: method of its app delegate. The app delegate can use the provided dictionary to perform any requests and return a reply to the WatchKit app." - WatchKit App Architecture
WatchKit
As @flogehring points out, Apple has updated the WatchKit resources to include Sketch templates! Goodbye Photoshop.
What Happened to NSMethodSignature?
The Swift Blog is back! Apple attempts to answer a radar they received around dynamic dispatch, but this time, there is some anger and controversy about their answer....
Design
5 Quick Things We’ve Learned About Designing Apps for Apple Watch
"Given that we won’t have access to hardware for some time, it’s important we begin to anticipate design considerations now, rather than just reacting at launch." Agreed! It's hard to design without the hardware in place (some even 3D-printed a prototype), but the tips sound spot-on.
Other Cool Stuff
What colour is it?
I'd love this as an app for the Apple Watch. It's so zen to just keep looking at it. Thanks @johnpolacek for pointing this out.
In Case You Missed It
WatchKit: Open Your iOS App From The Watch
The most exciting part of the XCode 6.2 Beta 2 release was the new added ability to open the iOS app from the Apple Watch and even pass information while doing so! It’s super easy to do.
WatchKit: A Quick Reply
At the moment when the iOS Application gets the WatchKit extension request, it can also send back a reply to the Watch App. This is the part of WatchKit I’ve been playing with.
Tutorials
Videos
Functional Voodoo
Introduction to Function Currying in Swift
I'm still trying to wrap my head around currying, especially when to use it in my code. I really enjoyed the part in this blog post about how to convert an existing UIKit function into a curried function. Overall, great explanation, and hopefully I'll find more use-cases to actually curry my own functions! For those who are still wondering about curried functions, here is one practical use-case for a curried function.
An introduction to functional programming
"The code is written imperatively. A functional version would be declarative. It would describe what to do rather than how to do it." This is just one of the many great tips in this article. Very beginner-friendly explanations.
Railway oriented programming
How to code for the happy path. Love this concept! Note that this is written in F#, but the concepts can definitely be applied in Swift. Video version here.
WATCH
WatchKit Data Sharing (Video)
The hardest part of WatchKit is figuring out how to share data between your iOS App and Watch App Extension. So stay calm and watch @_DavidSmith's walk-through of sharing data via App Groups.
Swift Thoughts
I can't be more excited about the WATCH. Apple has added a massive improvement to WatchKit this week - the ability to open up the iOS App from the Watch. We can expect more to come in January before the WATCH is actually released "early in 2015". But I'll be honest, all the App Store rejection stories of Extensions (aka Widgets) are not very encouraging when it comes to what kind of WATCH apps we're expected to build.
I'm worried that devs who are "too creative" with taking advantage of the WATCH platform will be rejected. It's an exciting platform, and we all get to be first to develop for it, but it's unclear whether Apple will allow us to build things beyond their vision and expectations.