S Link
Level up in your career
Whether you want to become a Software Architect or become more effective in this role, learn from THE best. Learn more from the experts at O'Reilly
Swift Around the Web
"Weak, Strong, Unowned, Oh My!" - A Guide to References in Swift
When I first started writing Swift code, I was completely confused between weak
and unowned
. I actually used unowned
by default, and when I got crashes, I changed it to weak
... Yes, it was that bad! This guide is the go-to explanation on when to use strong
, weak
, and unowned
. Make sure to read it or watch the video version here if you're at all unclear on this topic!
Failable initializers, revisited
Not sure the title of this post is the best, but it's a MUST READ. I've read through it a few times in the past year. It goes through a great JSON Parsing architecture in Swift, but most importantly, shows how to break out and architect your code well in Swift.
Coding
Mixins and Traits in Swift 2.0
This article helped me take Protocol-Oriented Programming to the next level. I cannot praise it enough. READ IT!
MVVM in Swift
I use the MVVM pattern extensively, and I think it works even better in Swift. So I really appreciate this article by @ashfurrow to forward to others. I've referenced it several times in person and in my talks.
Apple News
Swift is now open source!
No bigger ๐ from Apple than open sourcing Swift this year. But not only that, it's been impressive to watch the Swift team merge PRs and accept Swift Evolution proposals from the community. Check out the latest Swift open source happenings in this week's open source Swift brief by @jesse_squires.
Protocol-Oriented Programming in Swift
If you watch one video from WWDC15, make it this one! This is that game-changing video that showed us the power of protocol extensions in Swift. The Professor of Blowing Your Mind lived up to his title here!
Other Cool Stuff
Making a visionboard in Sketch
I spent this weekend making my very own vision board for 2016. The cool thing about making it with Sketch is that I was able to easily set it as my iPhone Wallpaper, so I'm constantly reminded by my dreams - including successfully organizing my very first Swift conference... in Japan! I wish you all a very Happy New Year๐พ!
Tutorials
Putting a UICollectionView in a UITableViewCell in Swift
Putting a UICollectionView in a UITableViewCell is a super common UI pattern in iOS, yet there are definitely some gotchas. Great tutorial (in Swift!) by @ashfurrow that I know I'll be referencing a few times in my career!
Videos
Controlling Complexity in Swift by Andy Matuschak
When I first started writing my apps in Swift, I just naturally ended up writing Objective-C code in Swift. Sure, I had some tuples here and there, and sometimes my enums had powerful helper functions in them, but I didn't start making the transition to Swift thinking until listening to @andy_matuschak really explain how and why we should be using Value Types in Swift. Seriously, if you haven't already, WATCH THIS!
What the 55 Swift Standard Library Protocols Taught Me
As I'm getting closer to understanding Protocol-Oriented Programming, this talk really helped me clear up how to use protocols. @gregheo does an amazing job looking through the Swift Standard Library, and breaking down how the Swift team uses protocols in a super quick and easy-to-understand talk. This really helped me understand the different types of protocols, how to name them, and when to use them.
Functional Voodoo
Swift Functors, Applicatives, and Monads in Pictures
I LOVED the original tutorials as soon as I saw them. The pictures are amazing! But translating them to Swift was just what I needed to get a much better understanding of the harder functional concepts.
Approachable Functional Thinking, Using Protocol Extensions
I love how this blog post points out how we can use protocol extensions to write much more readable and friendly code that accomplishes what we aim to accomplish with more extreme functional code. Protocol all the things ๐ป!
๏ฃฟWATCH
watchOS 2 Tutorials
@kristinathai has done an incredible job with publishing watchOS tutorials. They've definitely helped me understand and get up to speed on Apple Watch hacking when I needed it the most.
Swift Code
There have been a lot of really great Swift libraries released this year. It's truly been incredible to follow all of them! But for this list, I want to focus on the ones that keep coming up again and again for me:
- Kingfisher - A lightweight and pure Swift implemented library for downloading and caching image from the web.
- DVR - Network testing for Swift. Video here
- SwiftLint - A tool to enforce Swift style and conventions.
- Koloda - KolodaView is a class designed to simplify the implementation of Tinder like cards on iOS.
- TurtlePlayground - Swift playground using Logo-like commands
Swift Source
Open-source Swift: Booleans
I would love to see a lot more of this type of analysis now that Swift is Open Source and we can see for ourself how the Swift team writes their code! Also, maybe I can understand enough of it to contribute...
Swift Thoughts
I personally LOVE New Years. It's a great time to reflect and start out with a blank slate. Of course, the slate is not completely blank. You build up on all the previous things you've done and things that have happened through serendipity that you never would have guessed. Yet, it always seems like a fresh start is possible. There is so much unknown for the coming year! So much to be discovered!
That is how it feels with Swift. This year brought us a great community, lots of game-changing new Swift features (yay protocol extensions!!!!), and of course the open sourcing of Swift. Next year, we get to start fresh from this amazing place. So much is possible!
So I wanted to focus this issue on how far we've come in 2015. Instead of my usual latest stuff, I've put together a list of the Best of Swift in 2015. If you haven't checked out these resources already, I highly recommend you spend the next few days looking through them so you too can start the New Year with that feeling of Swift possibilities :)
Happy Swift Year! ๐ฅ