IOS Storyboards Должен ли я использовать их или нет?

Я новичок в разработке iOS (пока не создано ни одного приложения), но я прошу совета у моего друга, который имеет действительно высоко оцененные приложения на рынке. Он сказал, что не использовать раскадровки.

Насколько я хочу принять его совет, они кажутся действительно полезными.

  • Это что-то, что может вызвать проблемы для моего приложения в будущем?
  • Есть ли причина, по которой я могу не использовать раскадровки?

Исходя из фона Android, я не понимаю, почему я должен их использовать.

Ответ 1

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

Вот несколько сообщений в блоге, в которых подробно описаны некоторые болевые точки при использовании раскадровки:

Оба из приведенных выше немного устарели, но я считаю, что соответствующие пункты все еще сохраняются.

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

Ответ 2

Я бы рекомендовал использовать либо раскадровки, либо Interface Builder.

  • Вы научитесь Objective-C быстрее, если потратите больше времени на его использование. Переключаясь между IB и кодом, у вас будет две вещи, чтобы учиться. Переключение контекста все равно замедлит вас позже.
  • Nibs и раскадровки - это большие XML файлы, которые плохо воспроизводятся с контролем источника; если вы работаете над одним одновременно с кем-то другим, вы получите конфликты слияния.
  • Вы не можете видеть все, что происходит сразу в IB, поэтому трудно отслеживать такие вещи, как проблемы с компоновкой.
  • Вы не можете искать или заменять в IB так, как можете в коде
  • Nibs и раскадровки помещают вашу логику представления в ваши контроллеры. Независимо от того, какая проблема для вас зависит от того, насколько вы являетесь MVC-пуристом.
  • Если вы хотите переносить свои приложения на/из Android, IB сделает это намного сложнее.

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

Ответ 3

Я не думаю, что этот вопрос действительно подотчетен. Есть плюсы и минусы любого технического решения, и это ничем не отличается.

Плюсы:

  • Visual, поэтому вы получите гораздо лучшее представление о том, как ваше приложение будет выглядеть быстрее.
  • Меньше кода
  • Автозапуск может быть проще
  • Это не все или ничего. Вы можете построить "базу" в Раскадровки и завершить ее в коде

Минусы:

  • Большой заголовок файла XML делает конфликты слияния довольно неприятными
  • Меньшая гибкость, чем код (без наследования и т.д.).
  • Если у вас много экранов в вашем приложении, использование одного раскадровки может стать довольно сложным, если у вас нет обширного экрана!

Ответ 4

Я думаю, что не важно это использовать или нет, самое главное, как ваше приложение (качество, красивость, быстро...). StoryBoard отлично подходит для начинающих, чтобы сократить время разработки и понять. Но когда стать профессиональным разработчиком, вы будете любить рисовать свой интерфейс по кодированию, потому что набирайте текст быстрее, чем графический.

Ответ 5

Это зависит только от вас. Если вы разрабатываете свое приложение самостоятельно, раскадровки очень полезны. Если вы работаете в команде, лучше использовать xxs, потому что меньше проблем с объединением их с svn по сравнению с раскадрой.

Ответ 6

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

См. этот ответ для отличного объяснения того, когда использовать раскадровки и когда использовать XIB:

Когда использовать раскадровку и когда использовать XIB