Подтвердить что ты не робот

Преимущества и недостатки использования раскадровки?

Я пишу приложения iOS некоторое время и постепенно перешел от пользовательского интерфейса полностью программно к использованию Interface Builder интенсивно. Теперь я думаю об использовании новой функции Storyboarding для некоторых моих новых проектов, но у меня недостаточно опыта или знаний, чтобы рассчитать преимущества и недостатки этого. Может ли кто-нибудь привести некоторые примеры или информацию о том, когда вы используете Storyboarding, и когда это была пустая трата времени?

4b9b3361

Ответ 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 полный отстой, и вы не должны его использовать.