A repo with the talks I've given at conferences, etc
Swift Summit 2015: Back to the Futures
Presentation on the problems with traditional asynchronous, callback-based APIs in Objective-C, NSError
-based error handling, and how we can do both a lot better in Swift, for example, by implementing a simple Future
API.
RACDC 2015: RAC3, A Real World Use Case (aka ReactiveChess)
Overview of how WatchChess was implemented using ReactiveCocoa 3.0, sharing a few tricks that I learned during its development.
NSMeetup San Francisco - July 2015: Swift Sync and Async Error Handling
Showing some of the problems with traditional synchronous and asynchronous error handling in Objective-C, and how we can do better in Swift with Result
, some kind of Future
API, and comparing it with the new Swift 2 throws
syntax.
iOS Conf Singapore - October 2015: Swift Sync and Async Error Handling
Showing some of the problems with traditional synchronous and asynchronous error handling in Objective-C, and how we can do better in Swift with Result
, some kind of Future
API, and comparing it with the new Swift 2 throws
syntax.
Swift Summit San Francisco - October 2015: Asynchronous Code with ReactiveCocoa
Introduction to the ideas behind ReactiveCocoa, and why they're valuable.
Swift User Group - April 2016: Building Fabric.app in Swift
Collection to tidbits about the things I learned while building the Fabric app
RACDC 2016: Building Fabric.app with ReactiveCocoa
Overview of how the Fabric App was built by taking advantage of some of ReactiveCocoa's features.
NSSpain 2016: Building Fabric.app in Swift
Overview of some of the technical decisions made during the development of the Fabric app for iOS.
- Slides
- [Video] TBD
Swift Summit San Francisco - November 2016: Rubik's Cubes and Genetic Algorithms in Swift
Genetic Algorithms are a fascinating way of solving problems in computer science which lie in between programming and biology. I implemented one in Swift to solve Rubik's Cubes, and you won't believe what happened next.
try! Swift Tokyo - March 2018: Optimizing Swift code for separation of concerns and simplicity
Separating concerns in code is often seen as a premature optimization when code doesn’t need to be reused, but it has huge implications in our ability to comprehend what code does. Let’s explore examples of this in Swift in what I like to call “separating what code does from how it does what it does”.