4

I've looked at a few demos from adobe that show apps built with Flex 4.5 running on iOS from simple list views to video capture. This has made me wonder if its an effective solution to build cross platform mobile apps.

For those of you who have taken Flex 4.5 mobile for a spin, what is your impression on the capability and performance on iOS. Is there anything you can't do with Flex 4.5 mobile that you couldn't with a native app? Are there any limitations?

1 Answers1

8

The mobile story in Flex is quite strong, in my opinion. It is what has attracted me to the platform and what seems to be bringing life into the Flex community.

The experience for developing apps in Android and iOS is quite fantastic, actually. The velocity in which you can dev is blazing and the abstractions provided by Flex (data binding, state management, skinning, etc) give you the ability to totally rock your app.

The performance is better than I had expected. It is not as great as a native app, but it certainly gets the job done. The ability to share code and UIs between Android and iOS more than make up for it in most cases.

There are, however, limitations. For one, you are not using the native widget set. You are using the Flex widget set. This means that you do not get the native look/feel. For this reason, it is best to build apps that look like YOUR app... not a Flex app or a native app. There are lots of popular examples in the app stores that work this way... and a Flex app pretty much requires it in my opinion.

There are also a lot of APIs not available to you. Flex provides hardware abstractions for the most popular APIs (video, audio, accelerometer, positioning, webkit, etc) but platform specific APIs are still missing (contacts, calendar, system notifications, etc).

At that point, it is worth asking what your app needs to do. Does it have a lot of native interfacing? If so, Flex might not be right for you. Find the APIs you need to talk to and make sure Flex has an abstraction for you. If it is a data-centric display/edit app, then Flex is a strong fit.

Hope this helps :)

Brian Genisio
  • 47,787
  • 16
  • 124
  • 167
  • 1
    +1, very good summary. I'd also like to add that platform specific API stuff *is* coming to Flex, but I'm not sure when. Adobe's currently working on that. – J_A_X Jul 01 '11 at 14:37
  • Thanks Brian - definitely helps. I'm interested in building a drawing tool where you can draw figures (e.g circle, triangles) and scribble words with your hand. Is this possible with the current API? I know its possible with canvas on html5 side but the performance is a bit of a disappointment for canvas - esp. with touch events. Is there an equivalent of canvas in Flex? –  Jul 01 '11 at 21:59
  • @lamalama: Yep. It is called `Canvas`. :) It is a container that lets you put things in it with relative positioning. You also have a drawing mechanism or you can use some spark primitive shapes like `Rect`, `Ellipse`, `Line` and `Path`. Good luck! – Brian Genisio Jul 02 '11 at 00:06
  • brian, would you happen to know if canvas is fully supported on the mobile sdk esp. iOS? –  Jul 05 '11 at 22:49
  • @lamalama: Doat! Canvas is NOT in the mobile stack! Sorry about that. Just use `Group`. It will give you the same effect: http://pastie.org/2171499 – Brian Genisio Jul 06 '11 at 09:42
  • adding to this. most of the mx.controls classes are not supported and you should stay away from them for your flex mobile projects. – Gary Tsui Aug 28 '11 at 16:13