Jump to content

Interface Builder

From Alfawiki
Interface Builder
Company typeSoftware tool
IndustrySoftware development
PredecessorSOS Interface
Founded1986
FounderJean-Marie Hullot
Headquarters
United States
ProductsInterface design software for macOS and iOS

Interface Builder is a software development tool designed for Apple's macOS platform. Included within Apple's Xcode suite, it facilitates the creation of application interfaces for developers using the Cocoa and Carbon frameworks through a graphical interface. The designed interfaces are stored as .nib files or, more recently, in an XML-based format known as .xib files.

Tracing its roots back to the NeXTSTEP environment, Interface Builder has been a core component of Apple's development ecosystem since the company acquired NeXT. A dedicated version tailored for iPhone interface creation was introduced alongside the iPhone SDK Beta 2 in 2008. Initially distributed as a separate application to distinguish design from coding tasks, its capabilities were fully merged into Xcode starting with version 4.

History

Initially called SOS Interface, Interface Builder was developed by Jean-Marie Hullot at the French research institute Inria. After his departure from Inria, Hullot transformed it into a commercial product launched in 1986 by ExperTelligence for Macintosh systems. The application, written in Lisp and closely integrated with the Macintosh Toolbox, made its first public appearance at the MacWorld Expo in January 1987.

Denison Bollay introduced Hullot’s work to NeXT, where Steve Jobs recognized its value and incorporated it into NeXTSTEP by 1988. Interface Builder was groundbreaking as the earliest commercial software enabling users to interactively position interface components like buttons and menus using a mouse.

One of its prominent early uses was in developing the first web browser, WorldWideWeb, created by Tim Berners-Lee at CERN on a NeXT computer.

Design

Interface Builder provides collections of user interface elements—such as text fields, tables, sliders, and pop-up menus—intended for use by Objective-C and Swift programmers. These collections are extensible, allowing developers to design and integrate their own custom components.

Users construct interfaces by dragging UI elements from these collections onto windows or menus. Objects emit actions (messages) that link to targets within the source code, while outlets serve as pointers connecting code to particular interface components. This setup enables initialization before runtime, enhancing efficiency and simplifying development workflows. When used as a standalone tool, Interface Builder allowed designers to supply nib files for programmers to incorporate into their software projects.

The interface designs are saved as bundles containing archived UI objects along with their interconnections, stored either in XML format or as NeXT-style property lists with a specific file extension. During execution, these NIB files are unarchived and merged into the application's executable. Unlike most GUI builders that generate source code for UI construction, NIB files consist of pre-archived objects ready for immediate use—often described as freeze dried. Since version 3, Interface Builder has supported the .xib format, which functions identically to .nib files but uses flat file storage, improving compatibility with version control systems and diff utilities.