Not a single day goes by without me learning something new about Swift. Over the past few months, I saw several inspiring talks that taught me something new about Swift development. Today, I would like to share three of those talks with you.
Building User Interfaces With Lego Bricks
In his lightning talk at this year's dotSwift conference, Victor Wang shows us a compelling alternative to size classes. Victor emphasizes that the available size classes, compact and regular, are often too limiting.
In his talk, he presents an alternative solution that is declarative, reusable, and configurable. Victor's solution illustrates what is possible if you take a step back and approach the problem from a different angle.
Protocol-Oriented MVVM
Natasha Murashev, also known as Natasha The Robot, gave another inspiring talk at last year's do{iOS} conference. Natasha begins her talk by describing her journey as an Objective-C developer exploring the ins and outs of Swift, learning as she goes.
In her talk, Natasha explains how her journey has led her to POMVVM, the Protocol-Oriented Model-View-ViewModel pattern. POMVVM embraces value types and is driven by protocol-oriented programming. The result is an API that is both expressive and extensible. It is a compelling solution to a common problem and it feels very Swifty.
Touch Handling
Watching a talk by Andy Matuschak is always worth your time. A few months ago, Andy gave a talk at React.js Conf about touch handling on iOS. In his talk, Andy explains how the first version of iOS shipped with a touch API that worked very similar to that of the DOM, using event capturing and event bubbling.
But it quickly became clear that the approach was flawed and wouldn't be able to support complex and more advanced multitouch interactions. The current version of iOS doesn't have a single, monolithic state machine for touch handling. Each touch event has an independent state machine and a declarative representation of rules ties everything together.
It is interesting to see how a different approach to a problem can have a significant impact on performance and usability. It also shows that Apple isn't shy to start over with a clean slate to push the limits of what is possible.