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