Over-Reactive? Complex data flows, especially in an asynchronous environment, _are_ complicated and hard; maybe the problem is _there_, not in a tool designed to help model and reason about them in a formal manner.
Modeling polymorphic relationships in Swift (spoiler: enums seem pretty cool) In traditional Objective-C code, we’d typically use protocols to express a polymorphic relationship. In Swift, we can take advantage of the language’s powerful enumerations to model these relationships, eliminate runtime type checks, and remove room for error in client code.
App Transport Security: What, Why, How? In this talk, I answer all your questions about App Transport Security: What is it? Why does it matter? How do you make your server compatible with it, and how do you configure your app to talk to non-compliant servers? Which other apps are using ATS?
‘Obviously super complex’: evaluating software architecture as simple vs. easy I have a problem with the characterization of VIPER, right out of the gate, as across-the-board “obviously super complex”, for a few reasons.
String is not a sufficient type: how using your type system can help you make better software We deal with types, explicitly or implicitly—depending on our language of choice—every day. We often use them without even thinking about them, or we consider them an annoyance when we’re just trying to get something done. This brief talk presents an accessible metaphor to help explain that type sy…
Working with custom UIView designated initializers I have a UIView subclass, with a custom designated initializer. How should I handle the requirement to override initWithCoder:?
Cocoa’s mutable-subclass pattern is an antipattern We know we can’t mutate a mutable array while enumerating, and yes, we have to take care to avoid that. But wait a second—why is that *our* problem, as users of Apple’s Foundation framework?
Be Proactive: Use Reactive A high-level, easy-to-grasp intro to the core concepts behind reactive programming.
Casting in Swift 1.2: a brief summary Swift 1.2, in beta with Xcode 6.3, makes some changes to casting. Here’s how as, as?, and as! work: * as is for guaranteed conversions. That is, use as when the compiler can type-check that the conversion is valid; and Swift won’t compile a as cast it …
IBOutlet declarations in Swift Xcode’s default IBOutlet declarations are weak references to implicitly unwrapped optionals. This is wrong.
Subjective-C: I use property (dot) syntax liberally I have long argued that methods which look, walk, and talk like getter methods should be called with dot syntax.
A list of Auto Layout DSLs, Categories, Etc. Everyone has their own Auto Layout helpers. Here’s a list.
Why non-engineers should care about “Technical Debt” Technical debt is an abstract concept, but it will impact your customers in tangible ways.