Interface Builder is a
software development
Software development is the process of conceiving, specifying, designing, programming, documenting, testing, and bug fixing involved in creating and maintaining applications, frameworks, or other software components. Software development inv ...
application for
Apple's macOS
macOS (; previously OS X and originally Mac OS X) is a Unix operating system developed and marketed by Apple Inc. since 2001. It is the primary operating system for Apple's Mac (computer), Mac computers. Within the market of ...
operating system
An operating system (OS) is system software that manages computer hardware, software resources, and provides common daemon (computing), services for computer programs.
Time-sharing operating systems scheduler (computing), schedule tasks for ef ...
. It is part of
Xcode (formerly
Project Builder
Project Builder was an integrated development environment (IDE) originally developed by NeXT for version 3 of the NeXTSTEP operating system by separating out the code editing parts of Interface Builder into its own application.
After Apple Compute ...
), the
Apple Developer developer's toolset. Interface Builder allows
Cocoa
Cocoa may refer to:
Chocolate
* Chocolate
* ''Theobroma cacao'', the cocoa tree
* Cocoa bean, seed of ''Theobroma cacao''
* Chocolate liquor, or cocoa liquor, pure, liquid chocolate extracted from the cocoa bean, including both cocoa butter and ...
and
Carbon
Carbon () is a chemical element with the symbol C and atomic number 6. It is nonmetallic and tetravalent—its atom making four electrons available to form covalent chemical bonds. It belongs to group 14 of the periodic table. Carbon makes ...
developers to
create interfaces for
applications using a
graphical user interface. The resulting interface is stored as a .nib file, short for ''NeXT Interface Builder,'' or more recently, as an
XML-based .xib file.
Interface Builder is descended from the
NeXTSTEP development software of the same name. A version of Interface Builder is also used in the development of
OpenStep software, and a very similar tool called
Gorm
Gorm may refer to:
Computing
* Gorm (computing), a rapid application development tool
* GORM, the "fantastic ORM library" for the Go programming language
* Grails Object-Relational Mapping, see
People
* Gorm the Old (died 958), Danish king
* Gor ...
exists for
GNUstep. On March 27, 2008, a specialized
iPhone version of Interface Builder allowing interface construction for iPhone applications was released with the iPhone SDK Beta 2.
Interface Builder was intentionally developed as a separate application, to allow
interaction designers to design interfaces without having to use a code-oriented
IDE, but as of Xcode 4, Apple has integrated its functionality directly into Xcode.
History
Interface Builder first made its appearance in 1986 written in
Lisp
A lisp is a speech impairment in which a person misarticulates sibilants (, , , , , , , ). These misarticulations often result in unclear speech.
Types
* A frontal lisp occurs when the tongue is placed anterior to the target. Interdental lispi ...
(for the ExperLisp product by ExperTelligence). It was invented and developed by
Jean-Marie Hullot using the object-oriented features in ExperLisp, and deeply integrated with the Macintosh toolbox.
Denison Bollay took
Jean-Marie Hullot to
NeXT later that year to demonstrate it to
Steve Jobs
Steven Paul Jobs (February 24, 1955 – October 5, 2011) was an American entrepreneur, industrial designer, media proprietor, and investor. He was the co-founder, chairman, and CEO of Apple; the chairman and majority shareholder of Pixar; ...
. Jobs immediately recognized its value, and started incorporating it into NeXTSTEP, and by 1988 it was part of NeXTSTEP 0.8. It was the first commercial application that allowed interface objects, such as
buttons,
menus, and
windows
Windows is a group of several proprietary graphical operating system families developed and marketed by Microsoft. Each family caters to a certain sector of the computing industry. For example, Windows NT for consumers, Windows Server for ...
, to be placed in an interface using a mouse. One notable early use of Interface Builder was the development of the first
WorldWideWeb web browser by
Tim Berners-Lee at
CERN, made using a
NeXT workstation.
Design
Interface Builder provides ''palettes'', or collections, of user interface objects to an
Objective-C
Objective-C is a general-purpose, object-oriented programming language that adds Smalltalk-style messaging to the C programming language. Originally developed by Brad Cox and Tom Love in the early 1980s, it was selected by NeXT for its N ...
or
Swift developer. These user interface objects contain items like text fields, data tables, sliders, and pop-up menus. Interface Builder's palettes are completely extensible, meaning any developer can develop new objects and add palettes to Interface Builder.
To build an interface, a developer simply drags interface objects from the palette onto a window or menu. ''Actions'' (messages) which the objects can emit are connected to ''targets'' in the application's code and ''outlets'' (pointers) declared in the application's code are connected to specific objects. In this way all initialization is done before runtime, both improving performance and streamlining the development process. When Interface Builder was a standalone application, interface designers could ship nib files to developers, who would then drop them into their projects.
Interface Builder saves an application's interface as a
bundle that contains the interface objects and relationships used in the application. These objects are archived (a process also known as
serialization or
marshalling in other contexts) into either an
XML file or a
NeXT-style
property list file with a extension. Upon running an application, the proper NIB objects are unarchived, connected into the binary of their owning application, and awakened. Unlike almost all other GUI designer systems which generate code to construct the UI (notable exceptions being
Glade,
Embarcadero Technologies
Embarcadero Technologies, Inc. is an American computer software company that develops, manufactures, licenses, and supports products and services related to software through several product divisions. It was founded in 1993, went public in 2000, ...
's
Delphi
Delphi (; ), in legend previously called Pytho (Πυθώ), in ancient times was a sacred precinct that served as the seat of Pythia, the major oracle who was consulted about important decisions throughout the ancient classical world. The oracl ...
and
C++Builder, which stream UI objects similarly), NIBs are often referred to as ''freeze dried'' because they contain the archived objects themselves, ready to run. As of Interface Builder version 3, a new file format (with extension .xib) has been added, which is functionally identical to .nib, except it is stored in a flat file, making it more suitable for storage in
revision control
In software engineering, version control (also known as revision control, source control, or source code management) is a class of systems responsible for managing changes to computer programs, documents, large web sites, or other collections o ...
systems and processing by tools such as
diff.
External links
Apple's Interface Builder descriptionfor Cocoa and Carbon development
Sun's Interface Builder documentationfor OpenStep development (Archive.org)
Action!, the worlds [sic] first dynamic interface builder - 1988
{{GUI builders
MacOS programming tools
NeXT
User interface builders