Будет ли приложение Flex работать на мобильном устройстве? - PullRequest
3 голосов
/ 20 марта 2012

Может ли приложение Flex, разработанное для использования на ПК, работать на iPad, iPhone или мобильном устройстве на базе Android?

Похоже, достаточно простой вопрос. Посещение http://www.adobe.com/products/flex.html дает представление о чуваке, который запускает (предположительно) приложение Flex на Android. Так что на первый взгляд ответ будет «да». Конец истории.

но пока ...

На различных технических сайтах содержится так много (неверной) информации, которая предполагает, что технологии на основе Flash просто не будут работать на iOS или других мобильных платформах. Почему это? Возможно, они хотят сказать, что Flex не запускается «из коробки» и требует плагин? Или они имеют в виду, что он вообще не будет работать?

Каждый раз, когда мне кажется, что я пришел к окончательному выводу, какой-то пост в SlashDot или CNET прямо противоречит этому. Так в чем же суть? Можно ли взять существующее приложение Flex и запустить его на iOS / Android? (Я понимаю, что существуют проблемы с размером экрана, поэтому приложение может не работать эффективно . Я просто хочу знать, доступны ли среды выполнения на мобильных устройствах, чтобы приложение Flex могло запускаться вообще.)

Извините за вопрос нуба. Мой фон WPF / HTML5. Технологии Adobe для меня совершенно чужды.

Ответы [ 5 ]

4 голосов
/ 21 марта 2012

Я написал много ниже, если вы хотите прочитать его, наслаждайтесь, если не извините, что забрали ваши ценные байты :) Сначала я прямо ответил на вопросы здесь:

Почему это? Это запутанный вопрос, читайте ниже для деталей почему.

Возможно, они хотят сказать, что Flex не запускается "из коробки" и требует плагин? Или они имеют в виду, что он вообще не будет работать? С помощью инструментов Flash Builder (папка bin в SDK) вы можете скомпилировать для собственного настольного приложения, настольных веб-браузеров, родного iOS-приложения, нативного Android-приложения. Android с установленным плагином FlashPlayer будет показывать Flash-контент в веб-браузере, iOS будет запускать только те, которые скомпилированы с AIR, не в веб-браузере, а в виде собственного приложения.

Каждый раз, когда мне кажется, что я пришел к окончательному выводу, какой-то пост на SlashDot или CNET прямо противоречит этому. Так в чем же суть? Можно ли взять существующее приложение Flex и запустить его на iOS / Android? Да, если вы используете AIR и работаете как собственное приложение на всех трех платформах (API Flex для настольных компьютеров по большей части является расширенным набором веб-API Flex), другие ваши соображения относительно производительности и форм-фактора являются действительными и должны быть учтены. Приятно то, что вы можете написать свой код модели / контроллера в общей библиотеке AS3, а затем написать отдельные интерфейсы уровня представления, которые совместно используют библиотеку.

Вот очень длинная версия:

Использование флэш-компилятора приводит к появлению «байт-кода» в виде файла с расширением swf, использующего формат swf, вы можете прочитать об этом подробнее здесь: http://www.adobe.com/devnet/swf.html

Для интерпретации файла вам понадобится какое-то время выполнения, в некоторой степени похожее на запуск WPF / XAML / C # в контексте платформы .NET (либо на рабочем столе, либо с использованием silverlight в Интернете). В случае с технологиями Adobe (грубая эквивалентность):

  • AS3 = C #
  • MXML = XAML
  • Flex = WPF + WCF (RPC на стороне клиента, а не на стороне сервера)
  • Flash Player = Silverlight
  • AIR (интегрированная среда выполнения Adobe) = .NET Framework Redistributable .dll (s) /. So (s) для настольных ОС

(Прочтите этот список очень свободно, пожалуйста, я знаю, что XAML сохраняется в MSIL или чем-то еще, что отличается, потому что MXML скомпилирован в AS3, и только если флаг отладки установлен на компиляторе, он включает символы отладки, конечно, есть куча различий, но я думаю, что это простая и достаточно правильная модель для использования)

В iOS браузер не допускает плагинов в традиционном понимании плагинов для браузера netscape или плагинов ActiveX. По этой причине вы не сможете запустить плагин, например, flashplayer или silverlight в браузере. Так как Adobe выпустила flashplayer для устройств Android, которые работают в браузере, она будет работать на этих устройствах в браузере, однако они, по сути, добавили полотенце для поддержки этого длительного срока, так как они должны поддерживать большинство мобильных платформ устройств, iOS, чтобы оставаться актуальным (это было, я думаю, более коллективное добавление полотенца Google, производителями устройств, операторами связи, Microsoft, просто следуя примеру и пытаясь принять лучшее деловое решение, WebKit и V8 или SpiderMonkey, возможно, могут делать 99% того, что может сделать Flash, и лучше в некоторых случаях, и, надеюсь, WebKit не расколется и останется открытым исходным кодом ... фреймворки и браузеры просто нуждаются в улучшении и стабилизации).

Если пользователь устанавливает AIR (или среда выполнения упакована вместе с приложением), то Flex / Flash (то есть материал, закодированный в AS3 и / или MXML и скомпилированный в swf) может быть перекодирован / упакован для интерпретации пользователем. Правильно для этого устройства (будь то iOS или Android или RIM, я не думаю, что у них AIR для Windows Phone 7 и Win8 на ARM также не будут поддерживать плагины для браузера). Частично путаница, возможно, связана с тем, что Apple отказала в распространении «кросс-компилированных» приложений, из-за чего AIR не попала в список параметров для iOS на хороший год, сразу после того, как Adobe начала объявлять, что она пригодна для этой цели. (пиная Adobe пока они вниз). Другая часть путаницы, вероятно, связана с реальными видеозаписями людей, которые 1 взломали свое устройство или 2 смогли получить альтернативы с открытым исходным кодом для флеш-плеера для работы на своем устройстве iOS (мне известно о gnash некоторые случайные изменения в Linux, а также, возможно, FAKE vids).

3 голосов
/ 20 марта 2012

Вы можете запускать приложения Flex на мобильных устройствах, но вы не можете просто запустить любой проект Flex.

В Flash Builder (Flex Ide) или во Flash Professional вы можете создавать мобильные проекты. Эти проекты создают собственные приложения для iOS и Android.

В прошлый раз, когда я пытался, результат и доступные компоненты были меньше, чем я ожидал. Итак, если вы можете, я очень рекомендую вам пойти на что-то вроде Appcelerator.com или аналогичного, что превращает код HTML5 / Js в нативные приложения. Я попробовал их, работал намного лучше, чем Flex.

1 голос
/ 20 марта 2012

Он не будет работать на iPhone как файл .swf, но будет работать на устройствах на базе Android с установленной Adobe Flash. Он также будет работать на BB playbook, который также имеет вспышку.

1 голос
/ 20 марта 2012

Краткий ответ: Нет

Длинный ответ: Вы можете использовать инструменты Adobe для компиляции своего приложения Flash / Flex для использования в качестве собственного приложения iOS.Таким образом, вы не сможете встроить приложение в веб-страницу, как это обычно бывает с Flex, но вы можете создать его как собственное приложение.Обратите внимание, что для этого необходим Flash Builder 4.5.

0 голосов
/ 21 марта 2012

Flex - это фреймворк (во всяком случае, он очень красивый, который даже когда-то выглядит совершенно другим языком).

Как только вы создаете приложение AIR, оно может работать на различных платформах, таких как: Windows, iOS, Android, новые телевизоры, PlayBook, даже ... в будущем (возможно / надеюсь) на Windows Phone, плюс Linux (который AIR) В любом случае будущее не очень ясно (но, надеюсь, Adobe пересмотрит)).

Итак - приложение, созданное с помощью Flash Builder 4.5+, вероятно, будет работать везде, как только оно станет приложением AIR. Методы компиляции действительно просты, и вы почти одновременно компилируете все, что хотите.

И одна из самых важных вещей - ваши приложения будут работать, работать, выглядеть и работать так же, как вы были спроектированы на одном устройстве. Flex - это то, что отвечает за то, чтобы все выглядело красиво на каждой платформе, на которой он работает. Например, я сейчас компилирую для Android, и даже без теста я могу четко сказать, что он будет выглядеть и чувствовать себя одинаково под iOS и Windows, и будет.

...