Проекты Flex против проектов Actionscript - PullRequest
1 голос
/ 13 августа 2010

Я использовал Flex около года, прежде чем решил, что предпочел бы разрабатывать проекты Actionscript.

В то время казалось, что фреймворк был слишком тяжелым для той работы, с которой я имел дело, в основном с небольшими веб-приложениями, персональными сайтами, портфолио такого рода вещей. Я также подумал, что Flex похож на странный гибрид, нацеленный на опытных разработчиков, но в то же время добавляющий несколько мастеров функций, которые, похоже, нацелены на новичков. Это казалось слишком сложным в одних областях и слишком базовым в других.

С другой стороны, IDE была великолепна, определенно не сравнимо с Flash CS IDE, поэтому для меня имело смысл придерживаться проектов AS3 и использовать Flex, теперь FlashBuilder, для написания моего кода.

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

Прошло много времени с тех пор, как я взглянул на среду разработки Flex, и меня интересует позиция других разработчиков Flex / Flash по этому вопросу.

Рассматриваете ли вы Flex только для проектов уровня предприятия? Каковы преимущества использования одного над другим? Если вы были Flash-разработчиком и перешли на Flex, каковы были ваши мотивы? Если вы создаете проекты Flex и Actionscript, каковы ваши критерии выбора?

Edit:

Хотя я получил отличный ответ, мне было бы интересно услышать от пользователей Flex, какова ваша основная практическая мотивация (в отличие от философской :)) для использования Flex над чистыми проектами Actionscript?

1 Ответ

8 голосов
/ 13 августа 2010

Преамбула: мой опыт в основном связан с проектами AS3, созданными с использованием комбинации Flash IDE (FIDE) и Flash Builder 4 (FB4).

Я обычно предпочитаю проекты с чистой AS3 (PAS3), а не проекты Flex дляследующие причины:

  • Размер - у проектов Flex минимальный размер гораздо больше, чем у проектов PAS3.Не подходит для легких приложений.
  • Производительность - Flash не известен своей производительностью, а вычисления макета, требуемые сложным приложением Flex, будут ударять по машине конечного пользователя.Для них все в конечном итоге ощущается медленным, не реагирующим или «дерзким».К сожалению, это означает, что приложения, где Flex может быть наиболее привлекательным (то есть очень сложным, адаптируемым, пользовательским интерфейсом), являются именно теми местами, где он натыкается.В конце концов, вы пишете весь этот странный код оптимизации, повышающий производительность, который отнимает у вас большую часть времени, потраченного на использование встроенной системы макетов.
  • Метафора и внешний вид -Flex направлен на то, чтобы позволить разработчикам предоставить конечным пользователям зрелый, гибкий пользовательский интерфейс, который имеет те же виджеты и поведение виджетов, к которым они привыкли из нативных приложений.Тем не менее, из-за проблем с производительностью, отраженных выше, пользовательский интерфейс никогда не чувствует себя так хорошо и отзывчивым, как нативное приложение.Кроме того, в нем отсутствуют все особенности ОС, к которым привыкли и будут ожидать конечные пользователи.Я не совсем понимаю мотивацию пытаться эмулировать разработку или поведение нативных приложений - вы никогда не выиграете этот бой.Лучше всего сделать что-то само по себе, что и делают большинство нативных веб-приложений.
  • Гибкость - В соответствии с предыдущим аргументом, основным преимуществом Flash является его способность делать вещи, которые традиционноUI библиотеки виджетов не могут сделать (по крайней мере, не очень легко).Во Flash вы можете создать действительно новые пользовательские интерфейсы, которые просто непрактично делать в нативных приложениях без использования OpenGL.Использование Flex снова усложняет создание нового пользовательского интерфейса (но значительно упрощает создание стандартного пользовательского интерфейса, даже если, на мой взгляд, это sub -стандартный пользовательский интерфейс).

IМне любопытно, есть ли у кого-нибудь хорошие примеры использования Flex на любых популярных общедоступных веб-сайтах. Grooveshark - единственный, о котором я знаю (это довольно приятно, но страдает от многих проблем, которые я обрисовал, особенно на OS X, где производительность Flash все еще низкая).

Однако - это компромисс.Всегда помните, что ваше время ценно.Ваши пользователи могут принять немного неуклюжий, немного запутанный интерфейс, если он позволяет им делать действительно классные вещи, и это будет означать, что вы можете выпустить его сейчас , а не позже.Это приводит к основным недостаткам разработки PAS3:

  • Усилие против вознаграждения - Вы должны программировать все свои собственные интерфейсы.Все это.Это может привести к некоторому по-настоящему раздутому коду, в котором вы должны определить тонны прослушивателей событий для каждой кнопки, которую вы хотите создать.Я не знаю, сколько раз я писал различные виды кода компоновки, специфичные для того, над чем я работал.Вы можете попытаться написать свои собственные абстрактные классы для них (что я и сделал), но в какой-то момент вы просто собираетесь в конечном итоге повторно реализовать среду Flex.Вряд ли стоит вашего времени.
  • Разработка - вы можете использовать только Flash Builder 4, в этом случае вам придется создавать каждый графический актив вручную в коде (который занимает вечность), или выиспользуйте FIDE, в этом случае вы можете сделать прекрасную работу, но вы застряли в IDE с каменным веком, и для компиляции чего-либо понадобится forrrrrreeeeeeeeevvvver.В настоящее время я использую гибридную установку, в которой произведения искусства, созданные в ФИДЕ, автоматически импортируются в мой проект FB4, но даже это не идеальное решение.Они действительно должны быть лучше интегрированы.

Еще один набор вещей, о которых следует помнить: вещи, которые Flash сосет.

  • Flash отстой в тексте .Не пытайтесь повторно реализовать веб-браузер во Flash.Flash на самом деле довольно хорош при отображении относительно небольших объемов текста, который невозможно выделить (и, благодаря использованию встроенных шрифтов, всегда идеально подходит для пикселей), но не пытайтесь создавать большие экспансивные текстовые документы внутри вашего проекта Flash.Во-первых, производительность будет ужасной, а во-вторых, пользователи будут ожидать, что текст будет вести себя так же, как и все другие большие текстовые поля в своих собственных приложениях (в частности, в своем веб-браузере).Выбор текста во Flash кажется неправильным, потому что он не чувствует, как ваша ОС делает это.
  • Flash плохо работает с мышью и клавиатурой - он постоянно борется с окружающим браузером для фокуса.Если вашей системе требуется что-то из этого, пользователям сначала нужно нажать на нее.Не попадайтесь в ловушку, где люди могут запутаться, потому что их входные данные идут не туда.
  • Flash - это скачок производительности - мы все это слышали, и этоэто не такая большая проблема, как людям нравится думать, но означает , что вам придется много думать о производительности вашей системы.Ваш пользовательский интерфейс должен работать со стабильными 60FPS при использовании и не должен использовать много , если есть процессор , когда пользователь не взаимодействует с ним.Если ваш FPS падает ниже 60, то ваш пользовательский интерфейс будет медленным и резким по сравнению с нативным или HTML5-интерфейсом.Также обязательно следите за утечками памяти.

В конце концов: пользователь вашей головы.Оба подхода - всего лишь инструменты в вашем арсенале.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...