Will the Flex app work on a mobile device?
Can I run the Flex PC app on an iPad, iPhone, or Android mobile device?
Seems like a simple enough question. A visit to http://www.adobe.com/products/flex.html gives an image of a dude running (presumably) a Flex app on Android. So at first glance, the answer is yes. End of the story.
There is so much (incorrect) information on various sites that suggest that Flash-based technologies simply won't work on iOS or other mobile platforms. Why is this? Perhaps what they're saying is that Flex won't run out of the box and requires a plugin? Or are they implying that it won't work at all?
Every time I think I've reached my final conclusion, some posts on SlashDot or CNET directly contradict it. So what's the bucket? Can I take an existing Flex app and run it on iOS / Android? (I understand that there are screen size issues to think the app might not work efficiently. I just want to know if battery life is available on mobile devices so the Flex app can run at all.)
Sorry for the noob question. My background is WPF / HTML5. Adobe technology is completely foreign to me.
source to share
I wrote a lot below if you want to read it, if not sorry to take your valuable bytes :) I answered the questions right away here:
Why is this? This is a confusing case read below for details.
Perhaps what they're saying is that Flex won't run out of the box and requires a plugin? Or do they mean it won't run at all? Using Flash Builder tools (bin folder in SDK) you can compile native desktop app, desktop web browsers, native iOS app, native Android app. Android with the FlashPlayer plugin installed will show Flash content in the web browser, iOS will only run those compiled with AIR, not in the web browser, but as a native application.
Every time I think I've reached my final conclusion, some posts on SlashDot or CNET directly contradict it. So what's the bucket? Can I take an existing Flex app and run it on iOS / Android? Yes, if you use AIR and run as a native application on all three platforms (the Flex desktop API is, for the most part, a superset of the Flex web API), then your other performance and form factor questions are valid and should be addressed. The best part is that you can write your model / controller code in a shared library in AS3 and then write separate view layer interfaces that all use the library.
Here's a very long version:
Using the Flash compiler results in the "bytecode" as a swf file using the swf format, you can read more about it here: http://www.adobe.com/devnet/swf.html
To interpret the file, you need some kind of runtime, similar to some degree, to run WPF / XAML / C # in the context of the .NET framework (either on the desktop or on Silverlight on the web). In the case of adobe technologies (rough equivalence):
- AS3 = C #
- MXML = XAML
- Flex = WPF + WCF (RPC client side not server side)
- Flash Player = Silverlight
- AIR (Adobe Integrated Framework) = .NET Raster Redistributable .dll (s) /. So (s) for desktop OS
(Read this list very freely, I know the XAML is saved in MSIL or something else because MXML is compiled in AS3 and only if the debug flag is set in the compiler does it include debug symbols, tons of differences, but I think that this is a simple and correct model to use)
On iOS, the browser does not allow plugins in the traditional sense of netscape browser plugins or ActiveX plugins. For this reason, you will not be able to execute a plugin like flashplayer or silverlight in a browser. Since Adobe has released a flash player for Android devices that runs in the browser, it will work on those devices in the browser, however they are essentially thrown in a towel to support this long term as they have to support the main mobile platform, iOS, for staying relevant (I think more shared towel use by Google, device makers, carriers, Microsoft, everything just goes up and tries to make a better business decision, WebKit and V8 or SpiderMonkey can probably do 99% of what Flash can do better in some cases,and WebKit hopefully won't be shards and remain open source ... and browsers just have to get flashed and stabilized).
If the user installs AIR (or the runtime bundled with the application), then Flex / Flash (i.e. stuff encoded in AS3 and / or MXML and compiled in swf) can be recoded / packaged to interpret the runtime for that device (be then iOS or Android or whatever RIM did, I don't think they have AIR for Windows Phone 7 and Win8 on ARM, too, won't be supported by browser plugins). Part of the confusion may have stemmed from the fact that Apple refused to distribute apps that were "cross-compiled", which resulted in AIR being dropped from the iOS option list for a good year, just after Adobe began announcing that it can be used for this purpose (kicking Adobe while them down). Another part of the confusion is probablycomes from real versions of people who 1 have jailbroken their device, or 2 have been able to get open source alternatives while running a flash player to work on their iOS device (the scraper was the one I know of from some random Linux tinkering, it's also possible FAKE vids).
source to share
You can run Flex apps on mobile devices, but you can't just run any Flex project.
You can create mobile projects in Flash Builder (Flex Ide) or Flash Professional. These projects create their own iOS and Android apps.
Last time I tried, the result and the available components are less than I expected. So, if you can, I highly recommend that you go to something like Appcelerator.com or similar that will turn your HTML5 / Js code into native apps. I tried them, worked much better than Flex.
source to share
Short answer: No
Long answer: You can use Adobe tools to compile your Flash / Flex app for use as an iOS app. Thus, you won't be able to embed your application into a web page like you would normally with Flex, but you can build it as a native application. Note that this requires Flash Builder 4.5.
source to share
Flex is a framework. (In any case, it is very beautiful, which even sometimes looks like a completely different language).
Once you create an AIR application, it can run on a variety of platforms such as: Windows, iOS, Android, upcomming TV, PlayBook, even .. in the future (maybe / hopefuly) on Windows Phone, plus Linux (which AIR future isn't very clear (but hopefully Adobe will change its mind)).
So, an application built with Flash Builder 4.5+ will probably work everywhere, once it's an AIR application. The compilation techniques are really simple and you compile whatever you want almost at the same time.
And one of the most important things here is that your apps will work, work, look and feel just like you were designed on one device. Flex is what makes everything to look great on every platform it runs on. For example, I'm currently going for Android, and even without checking, I can clearly tell that it will look the same as it does on iOS and Windows and will.
source to share