Плагины для Interface Builder с контролами: хорошо или плохо?

21 views
Skip to first unread message

Dmitry Chestnykh

unread,
Jun 19, 2009, 5:16:13 AM6/19/09
to sellme-dev
Привет, селлмидевщики! Давно не писал сюда.

BWTToolkit (http://brandonwalkin.com/bwtoolkit/), судя по скриншотам --
классная штука. Дают тебе нужные контролы, которые Apple "забыла",
прямо в IB. Не надо писать код, что очень хорошо.

НО. Судя по опыту Delphi, наличие в проекте каких-нибудь "внешних"
вещей (для того, чтобы открыть .xib придется устанавливать эти
плагины), просто голову ломают при попытке скомпилировать проект, или
передать его кому-нибудь. Кроме того, часто компоненты просто
отказывались работать при переходе на свежии версии Delphi...

Так что я пока воздерживаюсь от использования IB плагинов. Гораздо
проще напихать обычных контролов и сабклассить их для получения
нужного результата.

А вы что думаете?

-- Дмитрий Честных.

m...@sdfgh153.ru

unread,
Jun 19, 2009, 5:35:19 AM6/19/09
to sellme-dev
Я вот тоже так думаю. Но у меня тут айфон и IB вообще стараюсь не
пользоваться. Руки в мозолях, но это удобнее.
Какая-то странная фигня происходит, ответил мылом и совершенно ничего
не произошло. Наверное я идиот.

Игорь Евсюков

unread,
Jun 19, 2009, 11:51:08 AM6/19/09
to sellm...@googlegroups.com
> Так что я пока воздерживаюсь от
> использования IB плагинов. Гораздо
> проще напихать обычных контролов и
> сабклассить их для получения
> нужного результата.
>
> А вы что думаете?
ну если так, то зачем тогда вообще
нужен IB и *.xib файлы? Весь интерфейс
нужно оформлять в коде.

Но все-таки продолжают использовать
такой подход(привет XAML), значит
в этом есть смысл

Dmitry Chestnykh

unread,
Jun 19, 2009, 12:22:14 PM6/19/09
to sellme-dev
В этом смысл есть, но когда приходится ставить кучу плагинов для
редактора интерфейсов, это геморрой. Как уже говорил, печальный опыт
Delphi... Я где-то в течении месяца собирал все нужные компоненты и
версию дельфи, чтобы передать один из проектов, а на том конце их
устанавливали, вылавливали какие-то ошибки и несовпадения версии
компонентов и т.п. Кроме того, оказалось непросто найти какой-то из
компонентов в инете (бэкап полетел)...

Гораздо приятнее, когда ты берешь проект, открываешь его в Xcode,
жмешь Build -- и он работает.

Dmitry Chestnykh

unread,
Jun 19, 2009, 12:28:33 PM6/19/09
to sellme-dev
Насчет IB забыл: большая разница по сравнению с другими похожими
тулзами в том, что в IB можно как угодно сабклассить контролы.
Интерфейс оформлять (в смысле раскладывать, где чего будет) в коде --
слишком накладно (и производительность, по-идее, меньше) [вспомнил
wxWidgets, где на выкладку всего уходят часы]. Положил кнопочку, задал
класс, создал этот класс, написал drawWithRect: и готово.

Игорь Евсюков

unread,
Jun 19, 2009, 12:31:29 PM6/19/09
to sellm...@googlegroups.com
> Гораздо приятнее, когда ты берешь
> проект, открываешь его в Xcode,
> жмешь Build -- и он работает.
но к проекту же тоже необходимо
приложит все необходимые
библиотеки необходимых версий

Dmitry Chestnykh

unread,
Jun 19, 2009, 12:36:18 PM6/19/09
to sellme-dev
Ну вот опыт показал, что это и геморрой.
Одно дело библиотеки, которые собираются в процессе билда, другое дело
-- установка плагинов для девелоперских тулзов.

Я вот, например, в неделю скачиваю один-два каких-нибудь опенсорсных
проекта и смотрю как они работают. Если бы мне пришлось для каждого
ставить плагины для IB, был бы зоопарк, а не среда разработки :(

Dmitry Chestnykh

unread,
Jun 19, 2009, 12:37:43 PM6/19/09
to sellme-dev
В общем-то я не спорю -- я как раз спрашиваю ваше мнение :) Может быть
есть свет в конце тоннеля?

Игорь Евсюков

unread,
Jun 19, 2009, 12:38:56 PM6/19/09
to sellm...@googlegroups.com
> Ну вот опыт показал, что это и
> геморрой.
> Одно дело библиотеки, которые
> собираются в процессе билда, другое
> дело
> -- установка плагинов для
> девелоперских тулзов.
если библиотеки не в исходниках(что
часто бывает), то разницы особой нет

> Я вот, например, в неделю скачиваю
> один-два каких-нибудь опенсорсных
> проекта и смотрю как они работают.
> Если бы мне пришлось для каждого
> ставить плагины для IB, был бы зоопарк,
> а не среда разработки :(
тогда зачем вообще использовать
редакторы для xib, XAML, ui и т.п. форматов,
надо все руками

Dmitry Chestnykh

unread,
Jun 19, 2009, 1:04:19 PM6/19/09
to sellme-dev
>тогда зачем вообще использовать
>редакторы для xib, XAML, ui и т.п. форматов,
>надо все руками

Не понимаю аналогии: при чем тут все руками vs интерфейс-форматы?

Давай определимся о чем мы говорим.

Я говорю про кастомные контролы, которые в Interface Builder, в
отличие от других редакторов интерфейса, создаются "объектно-
ориентированным путем": например, в окно кладется обычная кнопка. Ей
задается класс. Если этот класс прорисовывает кнопку, она будет
выглядить по-другому. Здесь нет абсолютно никакого кода для создания
контрола, помещения его в окно, расположения его относительно других
контролов, обработки действий (это Model-View-Controller, действиями
занимается controller, а не view) и прочего (что занимает *кучу*
времени) кроме непосредственной отрисовки (которая может состоять и из
одной строчки кода).

Плагины для IB содержат эти кастомные классы, но с тем отличием, что
они прорисовываются в IB "как живые" и у них могут быть свои свойства,
которые можно задать непосредственно в IB. Все это компонуется в одну
кучу и для использования требуют установки этого плагина.

Альтернатива (которая мне кажется предпочтительнее, и о которой я пишу
в предыдущих сообщениях): не устанавливать плагины для IB, а добавлять
нужные классы непосредственно в проект (теряя возможность лицезреть
контролы в IB так, как они будут отрисовываться на самом деле, но
сохраняя размеры, положение в окне и относительно других контролов и
т.п.).

-ДЧ

Игорь Евсюков

unread,
Jun 21, 2009, 8:55:42 AM6/21/09
to sellm...@googlegroups.com
> Альтернатива (которая мне кажется
> предпочтительнее, и о которой я пишу
> в предыдущих сообщениях): не
> устанавливать плагины для IB, а
> добавлять
> нужные классы непосредственно в
> проект (теряя возможность лицезреть
> контролы в IB так, как они будут
> отрисовываться на самом деле, но
> сохраняя размеры, положение в окне и
> относительно других контролов и
> т.п.).
поскольку "искаропки" в IB только самые
базовые контролы, а в свое программе
очень часто добавляешь много своих/
испольуешь чужие, то если не добавлять
их
как плагины в IB, то зачем тогда
использовать IB даже для базовых
классов от Apple?

Dmitry Chestnykh

unread,
Jun 21, 2009, 9:51:53 AM6/21/09
to sellme-dev
Ну я же говорю:

**в Interface Builder, в


отличие от других редакторов интерфейса, создаются "объектно-
ориентированным путем": например, в окно кладется обычная кнопка. Ей
задается класс. Если этот класс прорисовывает кнопку, она будет
выглядить по-другому. Здесь нет абсолютно никакого кода для создания
контрола, помещения его в окно, расположения его относительно других
контролов, обработки действий (это Model-View-Controller, действиями
занимается controller, а не view) и прочего (что занимает *кучу*
времени) кроме непосредственной отрисовки (которая может состоять и
из

одной строчки кода).**

:-)

Reply all
Reply to author
Forward
0 new messages