Skip navigation
Currently Being Moderated

Do i use Air or Flex for iPhone and Android app development

May 3, 2012 12:16 AM

Hi guys, whats the main difference between the 2 and does Air or Flex have everything Xcode does for iPhone/iPad development


I'm hearing that Flex has Android and SDK for iPhone, if this is the case why learn Xcode ?



  • Currently Being Moderated
    May 3, 2012 12:37 AM   in reply to TwoHelix

    Flex runs on the flash player and hence on the browsers so Flex is for the browsers.And as on last November adobe has

    announced that they are not going to be develop and support for the flash player on the mobile browser so you can not run any

    flex appliction on the mobile browsers.Flex is now has been donated to the Apache by the Adobe.


    While the Adobe AIR can be used for creating the native applciations for the ios and android.Intially it was only for developing the desktop based non browser applications.But currently you can also create the native application for the ios,androind and blackbarry play book.






    Mark as:
  • Currently Being Moderated
    May 3, 2012 7:17 AM   in reply to ShardulSingh

    Technically you develop in Flex for both.  There are some differences in developing for the two different targets, but they are really pretty minor.  Targetting mobile applications is a bigger set of differences than the differences between Browser based and AIR for the desktop.


    Mark as:
  • Currently Being Moderated
    May 3, 2012 7:55 AM   in reply to TwoHelix

    Adobe is not putting out any new versions of Flash for mobile devices, so Browser based flex apps will only work on the devices they do now, nothing new will work (and never worked on Apple mobile devices).

    AIR will probably continue on Android, since AIR is basically packaged with the compiled flex app to make the native installer for Android.

    iOS devices packaging the app as a native installed application is the only option, and always has been.


    That said, the way you develop the app doesn't change much, it is only the last step of packaging for the various platforms that changes.



    Mark as:
  • Currently Being Moderated
    May 3, 2012 9:19 AM   in reply to TwoHelix

    You can certainly create mobile apps using Flex and FlashBuilder and not need Xcode.  You also have the option of using PhoneGap.  Both Flex and PhoneGap provide abstraction layers for writing a single app that targets multiple devices.  Those abstraction layers have some overhead and some folks simply have to write native applications.

    Mark as:
  • Currently Being Moderated
    May 4, 2012 2:22 PM   in reply to TwoHelix

    You should definitely start from here:

    Mark as:
  • Currently Being Moderated
    May 5, 2012 4:00 AM   in reply to TwoHelix

    LOL, no that wasnt particularly helpful or relevant


    You would develop all the apps with Flex, whether its web, desktop or mobile. Flex is the framework that allows you to use MXML visual components and actionscript.


    When you start a new project you are given the choice of a new flex project or mobile project (although both use flex).

    Choosing a flex project then gives you a further option of developing for web or desktop. A web project will run in flashplayer, inside the browser. A desktop project will run in AIR which is, more or less, a flashplayer for the desktop.

    Choosing a mobile project you can then pick to develop for android, iOS or blackberry playbook or all 3. Writing for all 3 is pretty much the same, its only when publishing you need to make a distinction. Android is easy and just needs a certificate which you can generate yourself. iOS needs certificates and provisioning file that Apple will give you (you have to pay them first).

    Developing for android is similar to a desktop app in that an android app runs in AIR, mobile version. Whereas an iOS app is compliled to native iOS code.


    Can you develop the same for iOS as Xcode? I dont think so. Not directly. I develop for android so cant say first hand what iOS is like. But with android  (and presumably iOS) you can use Native Extensions to gain access to things like vibration or voice recognition.


    I think the Flex framework is a really nice way to develop apps, especially across multiple platforms. I would tend to start with a library project to hold all the logic and services. Then import that into a web, desktop or mobile project which just handle the visuals and user interfaces. Using an injection framework like Swiz or Robotlegs (I love swiz) just makes everything work so well together.


    However, sadly, Adobe has recently abandonned Flex and palmed it off to Apache. I was under the impression that Adobe remained commited to the use of flex for mobile development. But seeing an Adobe employee suggest the use of PhoneGap I am somewhat dubious of how committed they really are.


    As I said, I really like Flex and enjoy programming with it (as a hobby, I'm a construction surveyor by trade). But I dont think I would recommend anyone learn it now. As Flex harUI said, maybe you should look at PhoneGap instead.

    Mark as:
  • Currently Being Moderated
    May 6, 2012 8:16 AM   in reply to TwoHelix

    Phonegap is not a UI but a communications protocol between a Web View and a specific list of device APIs such as storage or the accelerometer.


    So you need to build an HTML/CSS/JS UI and/or deploy equivalent frameworks and use PhoneGap for direct access to device features not accessible in a web view.


    You need the development environment to create the app or you and use the PhoneGap build cloud service. In either case you do get an app that can be listed in stores.


    If you do not need the device apis not accessible in web view and do not need an app in a store, you can build in HTML/CSS/JS as a web mobile site and use adpative or progressive techniques to tune to orientations and device screen widths/heights.


    For animation there are a growing number of frameworks and software to export Flash like animations to HTML canvas that you can then use.


    In all cases you use a device API or APIs, regardless of the development skill, you must have a resource that is familar with the native device. Reason is that often you get strange results that seem to make sense in the code (AS or JS) but do not work. A native developer will understand the way to perform the same in the native API and will understand quicker the problem and if it is possible.


    Flex Flash to native in Flash Builder requires frequent performance testing on targed devices. If not you will find a non responsive app with the code built and a list of trouble tickets that all say non responsive or black screens that are not apparent in the development environment. This is not to say the Flash Builder to Native is a poor solution. It is to say you need to understand the environment and what it takes to assure success such as frequent device performance testing and available native resource skills to help debug. Do not go with just an AS Flex developer without that resource.

    Mark as:
  • Currently Being Moderated
    May 7, 2012 1:36 AM   in reply to MotionMaker

    Motion Maker is very right: you should develop with a phone in your hands, because what you see on screen may be very different, in terms of performances (not necessarily in games), from what you see on a device.


    For instance: the first time I developed an iPad application, I did 90% of the development with the simulator, only to find that state changes were mortifyingly slow on the tablet and most states had to be re-written to improve performances. I will never do that error anymore. However, Adobe states in its development videos: "never forget the importance of debugging on the device"


    As for the native versus non-native platform, I have noticed that:


    - developing in the native code of the best app store (Objective C and Apple Store) is temtping but risky. Differently from Google play, Apple Store may reject your app for no apparent reason than: there are two many apps on our store that are not very cool and yours isn't as cool as they'd want and they give you the justification 2.12. In that case, what do you do if you haven't programmed in a code that is reusable? How do you port Objective C to Java and go to Google play? If you developed with Action script, you can deploy to Google Play (Android) in literaly ONE DAY (it was my case).


    - however, Google play market (read: Android) is ages far from Apple. This is why most games are 0.79 on App store and free in Google Play.

    And, however, AIR is not supported by all Android devices; moreover, the Google play filter thing does not work properly :-( my apps aren't seen by Samsung Galaxy S II, although I stripped down all kinky permission requests. Why?


    - PhoneGap looks cool, but the idea that you don't control the executable, which is instead produced by a server-based application, is strange to me. Chances are - in my opinion - that Adobe bought it to take it out the market.


    I don't know if Flex is being dismissed by Adobe as some say. The "Design" mode is being dismissed, apparently, and in Flash CS6 there will be the possibility to export to HTML5+ JScript. However, I don't think Adobe will kill AS. If they kill Flex, who cares, but AS is enjoyed by too many developers to be given away at the moment.

    Mark as:
  • Currently Being Moderated
    May 18, 2012 7:57 AM   in reply to TwoHelix

    Titanium is good for iOS, but apparently not so good for Android. Moreover, it's not so cheap!

    When one chooses a platform, one should also take into consideration the history and stability of the company which offers it.

    That is why I would not go to Appcelerator: who knows what's behind the corner?


    Sure, it is ironic that I say this after Adobe - a big company - has abandonded Flex...


    Some alternatives:


    - AMPChroma (Horrible name, but it has a solid company selling it: Antenna Software). This thing has the advantage that the content is not either native or web: the same content can be packaged for a web site AND for an app

         Pro's: Many big players are using it

         Con's: price list not very clear


    - Adobe Edge "Preview" + Adobe PhoneGap <--- Adobe says: you create animation for the web, you package it for an app. Not many people have tried it. But apparently it will work.

         Pro's: apparently, Edge is Adobe's instrument to finally go to HTML5.

         Con's: Edge "showcase" performs BADLY and SLOWLY in an iPhone (go think of a Samsung Mini)


    - Adobe Flash professional CS6 + Create JS <--- you create animations in Flash, then you export to HTML5 and js for browsers which don't have flash. You can also package with AIR for iOS and Droid.

         Pro's: Flash professional is easy, Action Script is powerful. You can have BOTH the power of Flash and the portability of html5/JS.

         Con's: for how long will Adobe support this Create JS hack? When will Adobe say "OK, now you've done enough automatic porting to JS, from next release on you move to Edge, or to - wait for it - a version of Flash which uses Javascript instead than ActionScript?"


    Me, I don't know what to do. I am keen on FlashBuilder/Flex because it's fast to build. Apps are really compatible both with iOS and Android. It has connectivity. It's cool.


    However, there are two problems that get me stuck from continuing with FlashBuilder:

    - OK for native apps but... how do I use the Flash Builder/Flex content for the mobile WEB? Flash Builder does not have the CreateJS capability. I do a cool interface and I cannot reuse it on the mobile web if not with apps?

    - OK for HTML5 but... it's NOT as good as Flash now. Have you ever seen a Phonegap application with graphics? They're embarassing. Slow, imprecise. And non-compiled Edge stuff is not much better. Is it? any good example.


    Bottom line: at the moment, HTML5 support does not seem good. On the other hand, Flex is NOT compatible with mobile web. What IS performing and promises to be compatible with mobile web in addition to native apps?

    Flash Professional CS6.


    I am happy if some-one belies me with good arguments.

    Mark as:
  • Currently Being Moderated
    May 25, 2012 1:51 AM   in reply to TwoHelix

    Honestly, I have not tried to convert flash cs6 to javascript. The tool by adobe is called "CreateJS". You have to download it separately from Flash Professional. there was another tool which did something similar: Wallaby. But it just converted movies without action script.


    Three considerations:

    1. You don't need to convert to HTML5 / JScript to target mobile devices from Flash Professional or Flash Builder (which supports flex), They both can compile "native" applications for iOS and Android.


    2. You need to convert to HTML5 / Jscript only if you want to have your animations in a mobile browser.


    3. Flash Builder does not have the CreateJS conversion tool that Flash professional has. At least, not yet. And, moreover, Flash Professional has a mobile simulator that is more advanced than Flash Builder's. It allows you to simulate accelerometer, GPS, touch events... Flash Builder's simulator does NOT have these features. This is a big difference.


    Sad news? Flash Builder is super cool for programmers. But Flash professional Cs6 is the application that Adobe seems to be keeping on beefing, regardless of the dreaded announcement that the flash player will not be updated for mobile.

    So, Flash Builder could be much better than Professional, but Professional is pretty much what one is left with. Unless Adobe releases a new Flash Builder version with CreateJS and the same cool simulator that Professional has. Rumors, on the contrary, say that FBuilder will lose the "design" interface. Good luck with that!

    Mark as:

More Like This

  • Retrieving data ...

Bookmarked By (0)

Answers + Points = Status

  • 10 points awarded for Correct Answers
  • 5 points awarded for Helpful Answers
  • 10,000+ points
  • 1,001-10,000 points
  • 501-1,000 points
  • 5-500 points