Я пишу приложения iOS некоторое время и постепенно перешел от пользовательского интерфейса полностью программно к использованию Interface Builder интенсивно. Теперь я думаю об использовании новой функции Storyboarding для некоторых моих новых проектов, но у меня недостаточно опыта или знаний, чтобы рассчитать преимущества и недостатки этого. Может ли кто-нибудь привести некоторые примеры или информацию о том, когда вы используете Storyboarding, и когда это была пустая трата времени?
Преимущества и недостатки использования раскадровки?
Ответ 1
Преимущества раскадровки
- Это классный способ разработки интерфейсов.
- Использование
StoryBoardSegues
для определения навигационных/модальных отношений - Если ваше приложение поддерживает несколько устройств, хороший способ организовать различные представления (по файлу раскадровки, а не именованию и т.д.).
- Ницца для прототипирования
- Прототип
UITableViewCell
может сэкономить время
Недостатки раскадровки
- Это функция времени исполнения, поэтому я считаю, что она доступна только в iOS 5
-
StoryBoardSegues
являются довольно жесткими в моем опыте, и вы можете использоватьprepareForSegue
много - Как и IB, он не очень дружелюбен с другими движками и инструментами для показа.
- Сложно делиться проектами для одного представления или набора представлений - вы должны отправлять все или ничего
Они кажутся поверхностными, я полагаю, что я не думал об этом... Сначала я был ошеломлен о досках рассказов, но теперь я вернулся к IB или даже просто с программной конфигурацией просмотров... Чем больше я их использую, тем меньше они мне нравятся, и тем больше они кажутся трюком/тратой времени.
Edit
Я написал этот ответ несколько лет назад. Я оставил его так же, как и раньше, для потомков, хотя некоторые моменты, скорее всего, больше не актуальны (т.е. Тот факт, что он требует iOS 5 +).
Через некоторое время мое мнение не изменилось на раскадровки. Как отмечали другие, все в порядке, если вы работаете соло в приложении с небольшим количеством просмотров для управления, но они становятся настоящей болью с контролем источника и совместной работой. Кроме того, я предпочитаю один файл-один-объект, а раскадровки, очевидно, объединяют материал (как и IB, но в меньшей степени).
Если бы я писал приложение, которое должно было поддерживаться какое-то серьезное время, я бы пошел с программной конфигурацией представления над IB, но определенно IB над раскадрой.
Ответ 2
Другим недостатком Storyboarding, который не упоминается, является то, что слияния могут быть очень сложными, если не невозможными, если есть конфликты.
Обновление: мне также пришло в голову, что он ставит логику в двух местах. Если ваш segue не делает правильные вещи, это может быть из-за ошибки в prepareForSegue, или это может быть потому, что вы неправильно назвали ваш сегмент. Делать вещи программно, в конце концов, не так сложно.
Ответ 3
На последнем WWDC (2013) Apple Devs настоятельно рекомендует использовать раскадровку и встроенные в IB вещи, чтобы сделать большую часть вашего кода для вас, а не писать вручную, потому что вы гораздо более склонны избегать устаревания и использовать преимущества обновлений функций через автоматические преобразования.
Единственным недостатком является трудность в разрешении сотрудничества git на раскадровки, так как будут конфликты практически на каждом фиксации.
Если вы программист соло, вы всегда должны использовать раскадровки.
Ответ 4
У меня есть аналогичный фон для вас - я начал с того, что в основном создавал пользовательский интерфейс iOS программно, так как IB не был действительно удобным для пользователей, но в последнее время решил использовать IB все больше и больше, поскольку лучше разрабатывать пользовательский интерфейс и отлично работать для стандартных элементов.
С новым Xcode я переключился на Storyboard, так как они обеспечивают полный обзор приложения. Можно создать полный пользовательский интерфейс (со всеми представлениями) в одном файле, который можно использовать для прототипирования, и который я могу просмотреть своих коллег перед написанием первой строки кода. Это намного лучше и проще, чем разработка с помощью Photoshop или аналогичных инструментов.
Однако, если вы используете много собственных элементов/элементов пользовательского интерфейса или что-то с помощью другого "движка" (cocos2d, OpenGL и т.д.), обычно лучше создавать пользовательский интерфейс программно, поскольку эти "двигатели" на самом деле не являются интегрированы с IB/Storyboards.
Ответ 5
Я изучил раскадровку, следуя учебным пособиям с сайта raywenderlich, и в раскадровке много материала.
Вот ссылка на сайт: http://www.raywenderlich.com/5138/beginning-storyboards-in-ios-5-part-1
Преимущества раскадровки:
1) Прежде чем приступать к разработке приложения, вы можете увидеть все экраны приложения.
2) Вы можете визуально видеть взаимосвязь между каждым экраном.
3) Это может помочь уменьшить количество кода специально в случае UITableView, вы можете использовать ячейки прототипа и статические ячейки для разработки вашего TableView в раскадровке.
4) Если вам нужно работать над кодом другого пользователя, вы можете лучше понять поток приложения, просмотрев раскадровку за короткое время.
5) Вы можете настроить пользовательский интерфейс для iPhone 4 и iPhone 5, применив форм-фактор сетчатки из раскадровки, не запуская приложение снова и снова.
6) Если вы выполняете работу на основе клиента, некоторые клиенты хотят увидеть прототип приложения, прежде чем приступать к его разработке, здесь раскадровка помогает вам.
Недостатки раскадровки:
1) Для раскадровки вам понадобится большой экран специально для iPad.
2) Я также испытываю трудности при копировании представлений из других приложений в раскадровку.
3) Я также испытываю проблемы в раскадровке, когда несколько разработчиков работают над одним и тем же проектом с помощью репозитория git.
Читая и понимая преимущества и недостатки, вы можете судить о себе, когда использовать раскадровку.
Ответ 6
Одно слово (НЕ НЕ) Один из самых больших недостатков раскадровки, помимо конфликтов git, которые не позволяют двум или более лицам работать над этим. но также, если проект прошел настолько большой, и у вас есть +40 экранов, если вы достаточно сумасшедшие, чтобы переместить что-нибудь всего на один пиксель в любой контроллер, который у вас есть в раскадровке, у вас будет очень большое время компиляции, приложение и запустите его более чем за 5 минут, и, конечно же, не позволяйте мне начинать с архивирования, чтобы дать какой-то один adhoc приложения.
после этого болезненного опыта я полностью отступил к старым золотым отличным файлам xib и удалил файл раскадровки в огромном потоке огня.
Ответ 7
IOS полный отстой, и вы не должны его использовать.