- Soroush's post on programming books: Resources For New Programmers
- Domain-Driven Design: Tackling Complexity in the Heart of Software, by Eric Evans
- Entity vs Value Object: the ultimate list of differences
- Value vs Entity Objects in Domain Driven Design
- Soroush: The Value of Value Objects
- The Swift blog: Value and Reference Types
- Tiny Types
- Soroush's post on enumerations
- Facade Pattern
- DDD: Aggregate
- Strategy Pattern
- Domain Driven Design and Development in Practice
- Episode 3: View Models, Again
- Episode 6: Singletons
A responsibility is an axis of change — a potential motivation for change.
Singletons get a bad rap. Why? Should you use them in your application? And if you've inherited several of them, what should you do?
- Singleton Pattern
- A Controller by Any Other Name (Soroush)
- The Sin in Singleton (Ben Sandofsky)
- singletons.info (Chris's blog posts and other links about singletons)
static letto create singletons in Swift
- Avoiding Singleton Abuse (Stephen Poletto)
This week, Chris and Soroush finally get to the topic they've been waiting for since they started the podcast: reactive programming. Chris gives a high level intro, and they dive into Q&A.
- How Chris and Soroush met
- RACMarbles, which is RxMarbles with RAC terminology!
- A General Theory of Reactivity
- Accidental vs. Essential Complexity (Paper PDF)
- Reactive tooling for iOS/macOS
- The ReactiveCocoa repository contains excellent documentation for the framework and reactive concepts in general
- The introduction to Reactive Programming you've been missing
- ReactiveCocoa Concepts for Asynchronous Libraries
This week, our boys talk about promises: where do they come from, and what they are good for?
- Soroush's post about the experience of writing a Promise class
- Soroush's follow-up post about how easy it is to build cool things with promises
- WWDC video for improved GCD in Swift 3
- Chris Lattner's retrospective on Swift 3
- “First class concurrency: Actors, async/await, atomicity, memory model, and related topics.”
- “Lifetimes” in Rust
- Async and Await in C#
- Common iOS Promise libraries
- Soroush's Promise library
After recording Episode 2, Soroush remembered some other questions about View Models. In this special episode, your hosts answer even more View Model questions.
- Separate Read Model from Write Model to Support Complex Forms
- MVC on Wikipedia
- How MVC works in Smalltalk
- “A hypermedia-driven site provides information to navigate the site's REST interfaces dynamically by including hypermedia links with the responses.”
- ReactiveCocoa Actions
In our second episode, we discuss view models.
Chris starts with a bold definition of what they are, and more importantly, what they aren't. Soroush raises some concerns he's had with view models, and Chris explains his approach. Finally, we touch on how reactive programming is related to view models.
- Soroush's post: MVVM is not very good
- Ash Furrow's response: MVVM is exceptionally ok
- The Facade Pattern
- Canonical MVVM, by Rogelio Gudino, delves into the backstory of how MVVM got started at Microsoft
- Caleb Davenport and Sam Soffes discuss view models for empty states on runtime.fm
- Sources and Sinks
- The ReactiveViewModel README has an excellent description of MVVM architecture and its benefits
- ReactiveCocoa and MVVM, an Introduction, from Bob Spryn, walks through theory and examples of the MVVM architecture, using ReactiveCocoa for bindings
- MVVM in Swift reviews Artsy's experience in transitioning to MVVM in Swift
- C-41 from Ash Furrow is an OSS application demonstrating MVVM
- On Pinboard, Chris has collected a lot of other useful MVVM links
In our first episode, we talk coordinators. What are they? How do you use them? How did they come to be? How do they relate to storyboards? Your intrepid hosts answer these questions and more.