NSHipster is a journal of the overlooked bits in Objective-C, Swift, and Cocoa. Updated weekly.

This Week...


If we were to go code-watching for Objective-C, what would we look for? Square brackets, ridiculously long method names, and @’s.

Continue Reading
Now Available
NSHipster: Obscure Topics in Objective-C, Swift, & Cocoa

Obscure Topics in Objective-C, Swift, & Cocoa

3rd Edition

A hand-picked selection of articles and essays from NSHipster.com, bound together in a single volume for convenient reference.

Buy Now on Gumroad

Recent Articles

  • Objective-C Direct Methods

    It’s hard to get excited when new features come to Objective-C. These days, any such improvements are in service of Swift interoperability rather than an investment in the language itself. So it was surprising to learn about a recent patch to Clang.

  • #pragma

    #pragma declarations are a mark of craftsmanship in Objective-C. Although originally used to make source code compatible across different compilers, Xcode-savvy programmers use #pragma to very different ends.

  • Swift API Availability

    Code exists in a world of infinite abundance. Whatever you can imagine is willed into being… for the most part. Because despite the boundless potential afforded to us, we often find ourselves constrained by circumstances beyond us.

  • AVSpeech​Synthesizer

    Though we’re a long way off from Hal or Her, we shouldn’t forget about the billions of people out there for us to talk to.

  • bless

    The process of booting a computer is a small miracle. Starting with a blank slate, a computer incrementally runs smaller, simpler programs to load larger, more capable programs into memory, until it finally has everything it needs to run the operating system itself.

  • Key​Value​Pairs

    A look at an obscure, little collection type that challenges our fundamental distinctions between Array, Set, and Dictionary.

Recommended Reading

Flight School Guide to Swift Codable
Flight School Guide to Swift Numbers
Flight School Guide to Swift Strings