Josh started doing Cocoa programming before it was cool. Even though he sometimes flirts with iOS, he always returns to the Mac. He works at GitHub, mostly on GitHub for Mac.
Cocoa apps spend a lot of time waiting and then reacting. We wait for the user to do something in the UI. Wait for a network call to respond. Wait for an asynchronous operation to complete. Wait for some dependent value to change. And then they react. But all those things—all that waiting and reacting—is usually handled in many disparate ways. That makes it hard for us to reason about them collectively, chain them, or compose them in any uniform, high-level way. We can do better. ReactiveCocoa is a framework for composing and transforming sequences of values. We'll talk about how we can use ReacticeCocoa to write better, more succinct and more expressive code.
Objective-C's a lovely language and Cocoa provides some great frameworks, but there's a ton we can learn from other programming languages and communities. We'll look at how other programming communities solve some common problems and what we can steal from them to make Cocoa development better.
The variables, they aren’t a'changing. Immutability is a wonderful thing. It makes code easier to reason about, change, and multithread. But at some level, change has to happen. Immutable apps don't win ADAs. We'll philosophize about the anatomy of bugs and reasoning about code, and then delve into the implementation details of maximizing immutability while still allowing for change.