Some TODOs for the new site As I prepare to make this new version of dzombak.com live, I wanted to make a note of some things that are left for me to do.
iOS 8 Extensions Roundup I’m excited to start using iOS 8 extensions, but it’s looking like it’ll be a rough ride for a little while.
Let’s talk about Optionals There has been much complaining that Swift's Optional type forces you to think about whether something may be nil at every use, but aren’t we thinking about that already, just maybe implicitly? Swift’s optionals simply formally enforce the thinking we already must consider when writing (or …
Benefits of Cocoa: Still here in Swift Until now we all agreed these were benefits of Cocoa: * C compatibility * Dynamic dispatch * Nil safety * Duck typing Now they're all bad? — Nick Lockwood (@nicklockwood) August 6, 2014 Sigh. Okay, let’s take this one item at a time: C compatibility Still there. Nil safety Was never there …
It’s Not Exploitable This article showed an excellent point: taken alone, a memory leak or other “low-impact” bug may not appear to be much of a problem. But taken together, a set of these bugs can turn into an exploitable security hole. A few classes of bugs used in that exploit: * off-by-one * memory …
Code Optional Part of the Project Announcements series. I realized today I didn’t post anything here announcing Code Optional. I launched this podcast in July with my friends Andrew and Kevin, two of the sharpest developers I know. We aim to discuss all sorts of topics around development, design, and shipping …
Tech Debt and Refactoring Refactor as necessary to avoid adding tech debt during day-to-day. Add tests and rearchitect during the normal development cycle when adding to a preexisting codebase. Taking the time to do things right makes everything take a little longer than it strictly needs to, but it allows you to avoid unpredictable …
Explicit Programming Concretely, this post is about a guideline for object-oriented and imperative programming, but the underlying principles and conclusions should be equally applicable to some other paradigms. One example here uses Cocoa Touch and Objective-C pseudocode, but again the principles described apply equally to any framework. It’s very easy to …
↗ Avoiding Singleton Abuse Avoiding Singleton Abuse · objc.ioobjc.io publishes books, videos, and articles on advanced techniques for iOS and macOS development.Stephen Poletto
Follow me on Pinboard Update, April 2023: I’m no longer using Pinboard. I’ve been pretty excited about Pinboard lately. I realized a while ago that its network feature (including RSS), in conjunction with support for tags and notes (including the <blockquote> tag) make it basically a microlinkblogging service. I always …
Quick followup on singletons Part of the Singletons series. This is a quick followup to my post about singletons in Cocoa apps. Read it first for context. Another developer asked me a few questions about the points I made in my previous post on singletons. I’d like to post my (lightly edited) comments …
Including your Pods directory in source control On my current project, we made the decision a month or so ago to add our Pods directory to git. The team has seen a number of benefits from this decision. There are certainly some negatives, but in our experience the positives have been huge, immediately tangible, and well worth …
Singletons in Cocoa applications Part of the Singletons series. The Singleton pattern is a powerful tool in every programmer’s toolbox. But singletons today are widely overused in most codebases. The consequences of misusing such a powerful tool are too far-reaching and long-lived to take lightly. And overuse or misuse of this tool leads …
The Value of ReactiveCocoa This post is largely in response to Soroush Khanlou, via Jason Brennan. Edited to add, 2014-02-17: Soroush has posted a response, which you shoud also read after this post. It’s undeniably true that ReactiveCocoa can be difficult to wrap your head around. Really understanding it — really making it click …
Objective-C Context: Soroush Khanlou, via Jason Brennan. And I’m drafting a less-snarky response now. I was reading an article on Objective-C, and I still don’t quite get it. Lifting a simple example from the post, are we really down to say that {% highlight objc %} import <Foundation/Foundation.h& …