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

This Week...


Swift is a fast, safe, modern programming language. And with swift-sh, it’s never been easier to use it for scripting.

Continue Reading

Updated for Swift 4.2

Dictionary Services

Though widely usurped of their ‘go-to reference’ status by the Internet, dictionaries and word lists serve an important role behind the scenes for features ranging from spell check, grammar check, and auto-correct to auto-summarization and semantic analysis.

Continue Reading

Recent Articles

  • Swift Import Declarations

    One of the first lessons we learn as software developers is how to organize concepts and functionality into discrete units. But what happens when namespaces collide and declarations lurk in the shadows?

  • Bundles and Packages

    In this season of giving, let’s stop to consider one of the greatest gifts given to us by modern computer systems: the gift of abstraction.

  • mac​OS Character Viewer

    Ever see a character and wonder what it was? Ever want to insert a character but couldn’t figure out how to type it? You can find the answer to these questions and many more at the bottom of the Edit menu in macOS.

  • Swift Program Distribution with Homebrew

    If you want your software to reach the largest audience on macOS, write and publish a Homebrew formula for it.

  • simctl

    With a mouse, anyone can use a computer, even if they aren’t a “computer person”. …though, if you are a “computer person”, you use keyboard shortcuts for most operations, and automate the rest from the Terminal.

  • Swift Development with Visual Studio Code

    VSCode is a cross-platform text and source code editor from Microsoft, and among the first tools to support Language Server Protocol. With the previously announced support for LSP for Swift now available in early development, it’s a great time to see how this integration works for yourself.

  • Custom​Playground​Display​Convertible

    Playgrounds use a combination of language features and tooling to provide a real-time, interactive development environment. With the CustomPlaygroundDisplayConvertible protocol, you can leverage this introspection for your own types.

  • Language Server Protocol

    Apple’s adoption of LSP is arguably the most important decision they’ve made for Swift since releasing the language as open source in 2014. It’s a big deal for app developers, and it’s an even bigger deal for Swift developers on other platforms.

  • Void

    Void has no members: no methods, no values, not even a name. It’s a something more nothing than nil.