Interface Builder

Interface Builder is the visual design tool that shipped with NeXTSTEP and later with Apple’s developer tools. Instead of writing code to create and position every window, button, and menu, a developer using Interface Builder could lay out an interface directly on screen and connect objects to one another by dragging links between them. The design was saved to a nib file (NeXT Interface Builder file, later the XML-based xib), which the running application loaded to instantiate and wire up its interface objects automatically.

The tool embodied the object-assembly philosophy at the heart of NeXTSTEP. The Computer History Museum’s history of the platform describes Interface Builder as a visual tool “enabling developers to connect objects graphically without writing code,” and frames its value with a line that became a NeXT mantra: “The line of code that the developer could write the fastest, maintain the cheapest, that never breaks for the user, is the line of code the developer never had to write.” Interface Builder turned interface construction into one of those lines a developer never had to write.

This was a genuine departure from how GUIs were built elsewhere in the late 1980s. On most systems, programmers constructed interfaces imperatively, calling functions to create each control and laying them out by coordinate in source code. Interface Builder instead let the interface be a serialized graph of live objects, with the outlets (references) and actions (event targets) between them recorded as part of the saved design. When NeXT documented its conventions in publications like the “NeXTSTEP User Interface Guidelines,” Interface Builder was the practical means by which developers followed them.

Because Interface Builder worked by archiving real Objective-C objects, it depended on the same Foundation and Application Kit frameworks that defined NeXTSTEP. Loading a nib meant unarchiving those objects and reconnecting them, which is why the tool was so tightly bound to the object model rather than being a mere code generator.

Interface Builder carried directly into Apple’s world after the 1996 NeXT acquisition. It remained a standalone application through the early years of Mac OS X and was eventually folded into the Xcode IDE, where it continued to produce nib and xib files for Cocoa and, after 2007, for iOS apps built on Cocoa Touch and UIKit. Its drag-and-drop, connect-the-objects approach influenced GUI builders across the industry and remained a defining feature of Apple development for decades.