Interface Builder


Interface Builder — приложение от Apple для операционной системы macOS. Оно является частью Xcode (бывший Project Builder), специальной системы инструментов для разработчиков Apple Developer Connection. Interface Builder позволяет Cocoa и Carbon разработчикам создавать графические интерфейсы для приложений. Результат разработки хранится в файле с расширением .nib, сокращение от NeXT Interface Builder, хотя в последнее время чаще используется, .xib.

Interface Builder происходит от одноимённого программного обеспечения ОС NeXTSTEP (предшественница OS X), которое имело такое же название. Одна из версий Interface Builder также используется в разработке программ OpenStep, и небольшой утилиты называемой Gorm входящей в GNUstep. 27 марта 2008 года, в рамках iPhone SDK Beta 2, была запущена специальная версия Interface Builder позволяющая делать интерфейсы для iPhone приложений. В Xcode4 Interface Builder не существует в рамках отдельного приложения, эти функции интегрированы в сам Xcode.

Interface Builder впервые появился в 1986 и был написан на Lisp. Interface Builder был задуман и разработан Джин-Мари Халлотом с использованием инструментов объектно-ориентированного программирования в ExperLisp и глубоко интегрирован с инструментами Macintosh. Деннисон Боллей взял Джин-Мари Халлота на NeXT чтобы чуть позднее, но в этом же году, показать его Стиву Джобсу. Джобс немедленно признал эти разработки значимыми, и включил их в NeXTSTEP, и к 1988 IB стал частью NeXTSTEP 0.8. Это было первое коммерческое приложение позволяющее разрабатывать элементы интерфейса, такие как кнопки, меню и окна, эти элементы могли быть вставлены в интерфейс щелчком мыши. Интересным фактом стало то, что с использованием IB был разработан WorldWideWeb браузер Тимом Бернерс-Ли из CERN.

Interface Builder предоставляет палитры (коллекции) объектов пользовательского интерфейса для Objective-C разработчиков. Эти объекты пользовательского интерфейса содержат такие элементы, как текстовые поля, таблицы данных, слайдеры и всплывающие меню. Палитры Interface Builder являются полностью расширяемыми, то есть любой разработчик может разрабатывать новые объекты и добавлять их к палитре IB.

Для создания интерфейса, разработчик просто перетаскивает элементы интерфейса с палитры на окно или меню. Конкретные объекты, которые получают сообщения указываются в коде приложения.