Развлекательный порталРазвлекательный портал


Общее
Игры
Apple
Android
Развлечения
Прохождение
Карта сайта

То ли лебедь, то ли цыпленок: растолстевшая Собчак опозорилась из-за фотошопа
Играй бесплатно: лучшие игры для iPhone, которые не стоят ни рубля
Мощные и недорогие приставки на Андроид, которые можно купить, если нет денег на телевизор со Смарт ТВ

Не ищите Interface Builder в Xcode 4, попивая сок у себя в квартале
🕑 12.03.2019 Общее 👀 93 просмотров

C 1988 года, начиная с NeXTSTEP 0.8, в фирменной среде разработки присутствовало это приложение. Компоновщик интерфейсов. Довольно оригинальный (не уникальный, но все же необычный). Он был одной из причин почему Тим Бернерс-Ли выбрал для написания первого в мире браузера WorldWideWeb NeXT. В комплекте Xcode 4 этого приложения не было… В свое время, когда Интернет был еще совсем юным, а найти в нем все что душе угодно было совершенно невозможно, я опубликовал где-то статью про это чудо. Сам я еще не имел возможности попробовать NeXTSTEP, но зато скачал полный комплект документации с сайта NeXT (уже то ли купленной Apple, то ли купившей её), и внимательно его изучил.

Издание было не самым дружелюбным образом настроено по отношению к Apple (в 1997 это было обычным явлением), и сопроводило статью убийственным комментарием. Этот самый InterfaceBuilder был создан вовсе не Apple! Его написал какой-то француз, для Lisp.

Вообще-то, если я и упомянул в той статье Apple, то только в связи с её слиянием с NeXT, но ответить не было никакой возможности. Через несколько лет, узнав подробности, я мечтал поквитаться с обидчиком (но издания уже не было): “какого-то француза” звали Жан-Мари Юйó, он и в самом деле в 1986 году придумал и написал Interface Builder (с пробелом, это о чем-то говорит?) для ExpertLisp. Это одна из реализаций Lisp для Mac’а. Интегрированная с его операционной системой и API.

Этот Lisp был относительно популярен на Mac’ах, но из-за его редкости и огромной цены я до него так и не добрался. Здесь ворованных копий этого Lisp’а не было. А потом пропал и мой интерес к Lisp.

Зато в конце 1987 года Interface Builder и её автора привели в NeXT и показали их Джобсу. Как и предполагали совратители, Стив был потрясен, увлечен и захотел использовать “все это” в ProjectBuilder. Стив приобрел и самого Жана-Мари.

Меньше чем через год программа под названием InterfaceBuilder вошла в состав среды разработки NeXT. И пережила в её составе все драматические трансформации, выпавшие на её долю. В Mac OS X её снова переименовали в Interface Builder (с пробелом, это Mac), под тем же именем она вошла в состав Xcode, и вдруг, в 2011 году, её не стало…

Что такое Interface Builder?

Это компоновщик пользовательских интерфейсов не генерирующий программного кода. Он имеет дело с реальными объектами. С “высушенными”, но настоящими, которые при её применении не создаются заново, а восстанавливаются.

Из-за их природы их можно связывать с объектами в программном коде, как если бы они были его частью – и в то же время, большинство объектов визуально отображаются на “холсте” в Interface Builder. Их можно перетаскивать в нужное положение на экране, если класс объекта не запрещает изменять размер объекта – меняет его размеры.

Кроме объектов с визуальным представлением (кнопок, полос прокрутки, текстовых полей и прочего интерфейсного инвентаря) в Interface Builder существовали невидимые объекты, которые точно также восстанавливались в программном коде – и организовывали связь между программой и интерфейсом. Конструкция получилась очень гибкой и управляемой.

Восстановленный объект (видимый или невидимый), если он был объявлен в программном коде, можно было дополнительно настроить – и вообще, делать с ним все что угодно.

С 1986 года, за 33 года существования, Interface Builder оброс многочисленными новыми способностями, некоторые из доисторических новаций канули в лету – но и сегодня это один из самых эффективных инструментов написания программ для операционных систем Apple. Если научиться им пользоваться (инструменты разработчиков пишутся для умных людей, их необходимо изучать и осваивать).

А в заголовке же “не ищите”? Это ложь для привлечения большего числа просмотров рекламы? В заголовке чистая правда.

Interface Builder и Xcode 4

В Xcode 4 Interface Builder перестал существовать как отдельная программа. С этого момента он – неотделимая часть и всего-лишь режим основного приложения среды разработки.

При открытии в среде разработки nib-файлов (их тоже не ищите в исходных кодах), среда разработки включает для них этот режим – в котором их можно редактировать, создавать или просто просматривать. Начиная с Xcode 3 у nib-файлов в исходном коде расширение “.xib”, формат на основе XML. В процессе сборки они “компилируются” в nib-файлы.

В Xcode 4 встроенный Interface Builder снова улучшили, приведя в замешательство даже самых опытных пользователей – но ненадолго. Зато он научился новым фокусам, говорить что он совсем не генерирует исходный код стало неправильно. Но подробнее не буду. Эти небольшие нарушения концепции были уместны, приятны и очень упростили жизнь.

Кроме того, в Xcode 4.2 произошла еще одна революция, но прежде чем рассказать о ней, надо рассказать еще кое о чем.

Interface Builder и iOS

Вскрытие и расшифровка исходных кодов iPhone приложений выявили несколько деталей, очень интересных для Mac’овских разработчиков. В приложениях не использовались nib-файлы, и в подавляющем большинстве случаев координаты объектов на экране задавали напрямую, их точными значениями.

В первых бета-версиях iPhone SDK о Interface Builder с iPhone OS не работал вообще. Я не помню в которой из них по счету их наконец подружили, но даже в окончательном релизе это Interface Builder работающий с iPhone OS был непролазным сборищем багов и глюков.

Он был, кроме всего прочего, еще и не дописан (местами). Видимо, Стив вовремя вспомнил что “The real artists ship”, и принял волевое решение.

Даже у тех кто прожил в Interface Builder долгие годы, с ним возникали проблемы, одна за одной. Новички предпочитали обходиться без него, потому что в примерах которые можно было найти в сети и в появившихся книгах по программированию в системе iPhone IB почти не применялся.

В компании где все были новичками в iPhone OS, ребят удалось приучить к пользованию Interface Builder, они почувствовали его полезность (даже несмотря на проблемы).

В следующей компании разработчики были опытными и съевшими на iOS (её хвали уже так) не одну собаку – они наотрез отказывались ей пользоваться, предпочитая строить интерфейсы “ручками”. Как первые iPhone-программисты на Земле.

Следующее поколение программистов очень удивлялось этому.

Storyboard

Еще одной революцией, случившейся с Interface Builder в Xcode 4 (кроме его избавления от багов и глюков и превращения его в надежный удобный инструмент для разработки в iOS), был новый формат архивов “обезвоженных” объектов, названный storyboard.

Файлы в этом формате имели расширение “.storyboard”, и теперь в одном таком файле можно было определить весь интерфейс приложения полностью, с переходами между экранами и визуальными эффектами.

Слово storyboard можно перевести как “раскадровка” – таблица эпизодов с разбивкой по актерам. И в русском, и в английском это жаргон киношников. Я подозревал что без Стива, самого крупного акционера Walt Disney, посвятившего компьютерной анимации несколько лет жизни, здесь не обошлось – но оказалось что он к этому совершенно не при чем. Его в тот момент интересовали более важные и значительно менее приятные вещи.

Раскадровки были замечательны, хоть и не лишены недостатков.

Со времен NeXTSTEP (и возможно, с еще более седых времен Жана-Мари Юйó), во всех разновидностях учебников и документации по использованию Interface Builder указывалось что в nib-файле крайне не рекомендуется объединять слишком много интерфейсов. Он для этого не оптимизирован, он будет долго грузиться и работать кое-как.

Когда-то на эти грабли наступил я сам: в 2001 году, в своей первой Cocoa-программе я все графические ресурсы собрал в одном файле. Чтобы были в одном месте, так спокойнее. А то что Interface Builder становился все более медлительным и тормозным я относил на счет его невысокого качества. Разделять этот клубок после прозрения было очень непросто.

С той же ошибкой у новичков я встречался неоднократно.

Теперь эта дурная (но понятная) привычка перестала быть дурной, теперь код можно было нанизывать на интерфейс – используя storyboard еще и как живой чертеж замысла.

Продолжение следует

Обсудить историю Apple вы можете в нашем Telegram-чате.

👍 0 👎 0

>>>Ссылка для отзывов и предложений<<<


Ещё новости с тэгом Общее






















Популярное 2 недели


День матери: поздравления и подаркиДень матери: поздравления и подарки
🕑 20.04.2024 Развлечения Мой Дом Семья 👀 176 просмотров

Новая «Миссис Смит»: уставшая от разборок с Питтом Джоли удивила переменамиНовая «Миссис Смит»: уставшая от разборок с Питтом Джоли удивила переменами
🕑 20.04.2024 Развлечения Звезды Новости 👀 184 просмотров

Звезда *Игры престолов* присоединяется к актерскому составу *Ведьмака*Звезда *Игры престолов* присоединяется к актерскому составу *Ведьмака*
🕑 20.04.2024 Игры 👀 167 просмотров

День учителя: поздравленияДень учителя: поздравления
🕑 20.04.2024 Развлечения Мой Дом Семья 👀 284 просмотров

Инсайдер намекает на скорый анонс Far Cry 7; антагониста в игре может сыграть Киллиан МерфиИнсайдер намекает на скорый анонс Far Cry 7; антагониста в игре может сыграть Киллиан Мерфи
🕑 20.04.2024 Игры 👀 212 просмотров

День города Москва 2024День города Москва 2024
🕑 20.04.2024 Развлечения Мой Дом Семья 👀 133 просмотров

В GTA 6 может появиться трассировка лучей. Rockstar Games ищет разработчиков с опытом работы с современными API RTВ GTA 6 может появиться трассировка лучей. Rockstar Games ищет разработчиков с опытом работы с современными API RT
🕑 20.04.2024 Игры 👀 141 просмотров

Климова в платье с декольте и бантами покорила гостей ММКФКлимова в платье с декольте и бантами покорила гостей ММКФ
🕑 19.04.2024 Развлечения Звезды Новости 👀 184 просмотров

Сандра И Сенсиндивер возглавит корпорацию *Вейланд-Ютани* в сериале *Чужой*Сандра И Сенсиндивер возглавит корпорацию *Вейланд-Ютани* в сериале *Чужой*
🕑 19.04.2024 Игры 👀 214 просмотров

Intel подтверждает поддержку памяти DDR5-8800 для поколения Xeon 6Intel подтверждает поддержку памяти DDR5-8800 для поколения Xeon 6
🕑 19.04.2024 Игры 👀 192 просмотров

Личную переписку братьев Меладзе слили в Сеть — вот почему продюсер развелся с БрежневойЛичную переписку братьев Меладзе слили в Сеть — вот почему продюсер развелся с Брежневой
🕑 19.04.2024 Развлечения Звезды Новости 👀 172 просмотров

Игроки сравнили локации из трейлера Kingdom Come 2 с реальными местамиИгроки сравнили локации из трейлера Kingdom Come 2 с реальными местами
🕑 19.04.2024 Игры 👀 309 просмотров

Винни Пух выходит на охоту в дублированном тизере *Крови и мёда 2*Винни Пух выходит на охоту в дублированном тизере *Крови и мёда 2*
🕑 19.04.2024 Игры 👀 243 просмотров

Обновление для PUBG на консолях принесло ряд значительных изменений, которые ранее были добавлены на ПКОбновление для PUBG на консолях принесло ряд значительных изменений, которые ранее были добавлены на ПК
🕑 19.04.2024 Игры 👀 224 просмотров

>>>Ссылка для отзывов и предложений<<<

Новости в картинках


То ли лебедь, то ли цыпленок: растолстевшая Собчак опозорилась из-за фотошопа
Играй бесплатно: лучшие игры для iPhone, которые не стоят ни рубля
Мощные и недорогие приставки на Андроид, которые можно купить, если нет денег на телевизор со Смарт ТВ
Беременная Топурия покинула Россию накануне родов — где появится на свет ребенок певицы?
В понедельник появится *прогресс-трейлер* DISTORTION
Тесты Qualcomm Snapdragon X Elite могут быть подделкой
ASUS ROG Ally получила поддержку технологии AMD Fluid Motion Frames
Муцениеце со слезами на глазах о пережитом во время суда с Прилучным — ужас и стыд
Для милых зверушек Party Animals вышло обновление 1.6.1.0 (2024.4.26), а так же сейчас проходит твич дроп
Во что превратились 90 млн рублей от ИРИ? Первый геймплей *Спарты 2035* даёт ответ
Беременная Арзамасова встретилась с «бывшим» на съемках — пришел и всех переполошил
Худшие процессоры MediaTek, способные испортить любой смартфон
Состоялся анонс VR-хоррора Alien: Rogue Incursion
Более 2000 игр и DLC от 28 различных издателей получили скидку до 90% благодаря фестивалю *Золотая неделя* от KOMODO
Бузова похвасталась ремонтом в квартире после новости о золотых унитазах Киркорова — уела певца
Какой блок питания выбрать для быстрой зарядки Макбука
Здоровая обстановка в детском коллективе: на что обращать внимание родителям?
Федерико Альварес поделился закулисным взглядом на жуткого лицехвата из фильма *Чужой: Ромул*
Гагарина показала, что подарила дочке на 7-летие — Мия визжала от радости
Все звезды «Радио Шансон» на одной сцене!
Жена Никиты Преснякова показала свое истинное лицо — Орбакайте и Пугачева ей больше не указ
«Fallout»: сериальная адаптация легендарной RPG от создателей «Мира Дикого Запада»
«Сочувствующий»: шпионский сериал от режиссера «Олдбоя»
«Зло не существует»: страшная экологическая сказка с двумя призами Венецианского кинофестиваля
Fallout Miami, мод размером с DLC для Fallout 4, получил новый трейлер
Стратегия Manor Lords пользуется большой популярностью: уже более 125 тысяч игроков в Steam
Жасмин впервые рассказала, как и где живет ее муж, которого разыскивает Интерпол
Минусы смартфонов с изогнутым экраном, из-за которых вы всегда будете выбирать плоский дисплей
Рецепт нежных капкейков
Лепс заговорил начистоту о конфликте с Михайловым
Новый трейлер Smite 2 раскрыл дату проведения первого закрытого альфа-теста
Tarkov больше не нужен? Представлен геймплейный трейлер бесплатного хардкорного шутера Arena Breakout: Infinite
«У нас получится»: стало известно, кто будет снимать фильм о Романе Костомарове
Инсайдер: первая часть финала *Очень странных дел* выйдет в конце года
Через четыре моря навстречу восточной сказке — «Круиз Ретро FM 2024»
Топ-7 спектаклей, на которые можно попасть в мае
Days Gone вышла 5 лет назад: приключение в открытом мире отмечает свой юбилей
Издательство 2K представила релизный трейлер теннисного симулятора TopSpin 2K25
Скоро свадьба: Брэдли Купер готовится объявить о помолвке с Джиджи Хадид
Можно ли пользоваться iPhone без учетной записи Apple ID
Sony прислушалась к геймерам - коробочную версию Stellar Blade можно обновить до делюкс-издания
Бесплатный симулятор футбола eFootball был загружен 750 миллионов раз
В Steam началась распродажа от издателя Konami - скидки до 90%
Милый лис, будущая легенда и писатель-жертва: новые трейлеры недели
«Есть его вина»: Никиту Михалкова втянули в скандал с Пугачевой
Как сделать идеальный скриншот
Историческая стратегическая игра Manor Lords стала доступна в раннем доступе
В Steam началась распродажа от издателя Activision - скидки до 75%
Японская ролевая игра Reynatis, от сценариста Final Fantasy 7, получила новый трейлер
Lies of P получила три награды People*s Voice Awards на 28-й церемонии вручения наград Webby Awards
Двухмерный экшен Shadow of the Ninja - Reborn выйдет 29 августа
Манукян рассказал о встречах с Бузовой после совместных съемок — признал свои чувства
Глаз не оторвать: как сейчас выглядит готка Даша из «Папиных дочек»
THQ Nordic показала геймплей Biomutant на Nintendo Switch
Локации Припяти в новом трейлере S.T.A.L.K.E.R. 2: Heart of Chernobyl
Синдзи Миками рассказал, почему он решил покинуть Tango Gameworks в прошлом году
Бывший тех. директор Rockstar North раскрыл новые секреты разработки GTA 3
Demon Slayer -Kimetsu no Yaiba- The Hinokami Chronicles получила историческую минимальную скидку -66%
Бывший автор GTA 3 раскрыл новые секреты разработки
Драйвер NVIDIA NVK Vulkan получил поддержку конвейерного кэширования, что повышает производительность в играх

ePN © 2023 Все права защищены.