<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>Benjamin Sandofsky</title>
    <link href="https://sandofsky.com/atom.xml" rel="self"/>
    <link href="https://sandofsky.com"/>
    <updated>2019-01-06T19:00:00-05:00</updated>
    <id>https://sandofsky.com</id>
<author>
    <name>Benjamin Sandofsky</name>
    <email>ben@sandofsky.com</email>
</author>
    <entry>
        <id>patterns/controller-hierarchies</id>
            <link href="https://sandofsky.com/patterns/controller-hierarchies"/>
        <title type="html">Controller Hierarchies</title>
        <updated>2019-01-06T19:00:00-05:00</updated>
        <published>2019-01-06T19:00:00-05:00</published>
        <content type="html">How to structure multi-screen activities without reinventing the wheel.</content>
    </entry>
    <entry>
        <id>career/how-to-learn-ios-development</id>
            <link href="https://sandofsky.com/career/how-to-learn-ios-development"/>
        <title type="html">How I&apos;d Learn iOS Development</title>
        <updated>2018-02-08T19:00:00-05:00</updated>
        <published>2018-02-08T19:00:00-05:00</published>
        <content type="html">From time to time, people ask me how to learn iOS development. So here we go.</content>
    </entry>
    <entry>
        <id>patterns/manager-classes</id>
            <link href="https://sandofsky.com/patterns/manager-classes"/>
        <title type="html">The Trouble with Manager Objects</title>
        <updated>2016-04-17T20:00:00-04:00</updated>
        <published>2016-04-17T20:00:00-04:00</published>
        <content type="html">The first time I look at a legacy project, I scan for warning signs. Today I&apos;ll talk about &quot;Manager&quot; classes.</content>
    </entry>
    <entry>
        <id>patterns/kvo</id>
            <link href="https://sandofsky.com/patterns/kvo"/>
        <title type="html">Flaws of KVO</title>
        <updated>2016-02-01T19:00:00-05:00</updated>
        <published>2016-02-01T19:00:00-05:00</published>
        <content type="html">If you&apos;re sure you need an observer, Cocoa lets you choose between Notification Center and KVO. Which should you use? That&apos;s easy. Notification Center. Avoid KVO.</content>
    </entry>
    <entry>
        <id>patterns/delegates-vs-observers</id>
            <link href="https://sandofsky.com/patterns/delegates-vs-observers"/>
        <title type="html">Delegates vs Observers</title>
        <updated>2016-01-06T19:00:00-05:00</updated>
        <published>2016-01-06T19:00:00-05:00</published>
        <content type="html">Cocoa provides a handful of patterns without much guidance on their use. Today, let&apos;s contrast delegates with observers.</content>
    </entry>
    <entry>
        <id>patterns/singletons</id>
            <link href="https://sandofsky.com/patterns/singletons"/>
        <title type="html">The Sin in Singleton</title>
        <updated>2015-11-08T19:00:00-05:00</updated>
        <published>2015-11-08T19:00:00-05:00</published>
        <content type="html">Singletons are not an anti-pattern, but they are an abused pattern. Down the line they add complexity and cause maddening bugs.</content>
    </entry>
    <entry>
        <id>workflow/the-s-curve</id>
            <link href="https://sandofsky.com/workflow/the-s-curve"/>
        <title type="html">The S-Curve</title>
        <updated>2015-11-06T19:00:00-05:00</updated>
        <published>2015-11-06T19:00:00-05:00</published>
        <content type="html">A system for managing project releases.</content>
    </entry>
    <entry>
        <id>patterns/the-api-veneer</id>
            <link href="https://sandofsky.com/patterns/the-api-veneer"/>
        <title type="html">The API Veneer</title>
        <updated>2015-10-04T20:00:00-04:00</updated>
        <published>2015-10-04T20:00:00-04:00</published>
        <content type="html">When you start an app, you might dump behavior in your controller. Once I pass the proof-of-concept, I build an API client.</content>
    </entry>
    <entry>
        <id>patterns/never-reach-up</id>
            <link href="https://sandofsky.com/patterns/never-reach-up"/>
        <title type="html">Never Reach Up</title>
        <updated>2015-09-27T20:00:00-04:00</updated>
        <published>2015-09-27T20:00:00-04:00</published>
        <content type="html">There are little details in app architecture that may not be obvious, but make a big difference over time. We&apos;ll start with modal view controllers, then step back for the larger lesson.</content>
    </entry>
    <entry>
        <id>architecture/third-party-libraries</id>
            <link href="https://sandofsky.com/architecture/third-party-libraries"/>
        <title type="html">When to Avoid Libraries</title>
        <updated>2015-08-23T20:00:00-04:00</updated>
        <published>2015-08-23T20:00:00-04:00</published>
        <content type="html">Third-parties can save you time, but there&apos;s no such thing as a free lunch.</content>
    </entry>
    <entry>
        <id>architecture/objective-c-in-a-swift-world</id>
            <link href="https://sandofsky.com/architecture/objective-c-in-a-swift-world"/>
        <title type="html">Objective-C in a Swift World</title>
        <updated>2015-07-15T20:00:00-04:00</updated>
        <published>2015-07-15T20:00:00-04:00</published>
        <content type="html">If Swift succeeds, Objective-C will go away, but it won&apos;t be deprecated.</content>
    </entry>
    <entry>
        <id>career/how-i-interview</id>
            <link href="https://sandofsky.com/career/how-i-interview"/>
        <title type="html">How I Interview</title>
        <updated>2014-11-16T19:00:00-05:00</updated>
        <published>2014-11-16T19:00:00-05:00</published>
        <content type="html">A student recently asked for iOS interview tips. I&apos;ve interviewed hundreds of candidates and settled on this format.</content>
    </entry>
    <entry>
        <id>career/golden-bear-traps</id>
            <link href="https://sandofsky.com/career/golden-bear-traps"/>
        <title type="html">Golden Bear Traps</title>
        <updated>2014-06-22T20:00:00-04:00</updated>
        <published>2014-06-22T20:00:00-04:00</published>
        <content type="html">When someone asks for advice about joining their first startup, I always mention &quot;83(b) Election.&quot; It can mean the difference between a lottery ticket and throwing away four years of your life.</content>
    </entry>
    <entry>
        <id>architecture/shell-apps</id>
            <link href="https://sandofsky.com/architecture/shell-apps"/>
        <title type="html">Shell Apps and Silver Bullets</title>
        <updated>2012-05-06T20:00:00-04:00</updated>
        <published>2012-05-06T20:00:00-04:00</published>
        <content type="html">Every company comes up with the idea of writing a &quot;shell app.&quot; Everyone tells the same story.</content>
    </entry>
    <entry>
        <id>workflow/git-workflow</id>
            <link href="https://sandofsky.com/workflow/git-workflow"/>
        <title type="html">Understanding the Git Workflow</title>
        <updated>2011-07-23T20:00:00-04:00</updated>
        <published>2011-07-23T20:00:00-04:00</published>
        <content type="html">If you don&apos;t understand the motivation behind Git&apos;s design, you&apos;re in for a world of hurt.</content>
    </entry>
</feed>