This week, I was really lucky to attend a talk by Chris Eidhof about Functional Programming in Swift at the SLUG Meetup. I haven't done much functional programming in my career yet, so it was really cool to have my default OO perspective challenged.
The thing that made me extra excited about functional programming was when Chris explained that functional programming is declarative - it's about what you want to do, not how you want to do it! The power of programming often makes me feel like a sorceress - I just wave my imaginary wand, and poof, the computer does exactly what I want. I like that functional programming falls more in line with this type of thinking :)
The video of the talk will be posted on realm in the next week or so (I'll make sure to send it out when it is!), but meanwhile you can check out Chris's slides here and buy his book on Functional Programming in Swift (I got it earlier this week, and cannot recommend it highly enough!).
A large number of Foundation, UIKit, CoreData, SceneKit, SpriteKit, Metal APIs have been audited for optional conformance, removing a significant number of implicitly unwrapped optionals from their interfaces. This clarifies the nullability of their properties, arguments and return values of their methods. This is an ongoing effort that started shipping in beta 5.
Apple has also posted two not-to-be-missed blog posts on their Swift blog:
Hope you're excited for the announcement next week!!!!
This week, I'm starting off with a functional programming library mentioned by Chris Eidhof that I'll have to look into a lot more now. Enjoy!
- swiftz - Functional programming in Swift
- Swift String Tools - A String extension that allows you to do some very awesome functions effortlessly.
- SwiftState - Elegant state machine for Swift.
- Swifty Login - Just a beautiful login, coded in Swift with Background changing every few seconds with animation.
Random Cool Stuff
Github introduced split diffs this week!
Diffs now come in two flavors, unified and split. Switch between them on pull request, commit, and compare pages using the toggle in the top right of the page. The mode you last used will become your preferred default.