Что плохого в Interface Builder?

Один товарищ, работающий в небольшой команде IOS разработчиков написал мне следующее:

- для реализации горизонтального слайд-шоу/таблички используем обычно стандартный UICollectionView
- для вертикального либо UITableView либо UICollectionView
- в основном используются UILabel, UIButton, UItextField, UITextview
- навигация с помощью UINavigationController
- если что-то более кастомное то используем Coconut-Kit https://github.com/defagos/CoconutKit
- мы стараемся разделять строки и картинки (т.e. картинки лучше отделять от текста - так гораздо меньше проблем при локализации)
- строки обычно оборачиваем в NSLocalizedStrings, чтобы потом облегчить локализацию

- мы стараемся не использовать Interface builder (.xib файлы и stroryboard) выравнивание ui производится для UIView в методе layoutSubviews, для UIViewController в методах viewWillLayoutSubviews/viewDidLayoutSubviews
от interface builder отказывается еще и для облегчения локализации


Сейчас я только начинаю потихоньку втягиваться во все эти дела и не могу объективно оценить сказанное.
Мне кажется, что чем меньше кода написано для UI тем лучше и я вижу в интерфейс билдере только плюсы. Но может быть я чего-то не понимаю пока.....
  • Вопрос задан
  • 2650 просмотров
Пригласить эксперта
Ответы на вопрос 6
smanioso
@smanioso
Отмечайте ответы на свои вопросы!
Еще им стоит отказаться от классов и ГМО.
Ответ написан
Комментировать
@s0L
Вам все верно кажется. Не завидую тем людям, кому в поддержку подобный проект попадется с layoutSubviews и без xib-ов
Ответ написан
Комментировать
@gleb_kudr
IB это каша их полей в разных менюшках. Если используется серьезная кастомизация контролов, анимации и т.д. то гораздо проще все писать в коде. И да, тексты тут не в последнюю очередь.
Ответ написан
Комментировать
@agee
Использовать или не использовать IB - это вопрос вкуса. Кому-то кажется, что он упрощает разработку. Кому-то кажется, что усложняет.

Лично мне всегда было удобней все создавать в коде: когда через некоторое время возвращаешься к проекту, то взглянув на код, можно сразу понять что, где, как и почему. Этот метод более гибок, и я ощущаю полный контроль над UI, могу делать его каким угодно.
Еще меня немного смущает ситуация, когда что-то работает, но я не знаю, почему оно работает. Не хочется слепо верить галочкам, выставленным в констукторе.

С другой стороны, если нужно очень быстро набросать базовый UI, и привязать какие-то действия к нему, то IB весьма полезен.
Ответ написан
Комментировать
@iFamily
Expert in Server-Side-Swift and iOS development
Сейчас локализация работает даже для Interface Builder'a. И да, кастомные контролы IB тоже рендерит на ура.
Ответ написан
Комментировать
@ksnegov
У каждого подхода есть свои плюсы и минусы. Проблемы при использовании xib начнутся сразу, как только начинаешь пользоваться системой контроля версий (что неизбежно при работе в команде)

1. Не возможно определить кто внес какие правки в xib
2. Невозможность корректного разрешения конфликотов при merge
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы