When I first tried iOS packager it looked too raw and slow to use in real applications. But the technology was very promising and product was obviously far from release. A new version of AIR (2.6) was released recently and it is claimed that performance on iOS devices was improved. I downloaded new AIR SDK and repackaged sample iOS application. However, I wasn't able to detect any significant performance boost. In fact, application seemed to work even slower on iPad. What is weird, I could see some speed increase on iPhone 4. But neither execution performance on iPad, nor on iPhone is not even close to the execution speed of the same application (although packaged with AIR 2.5) on Android device (Galaxy Tab). I can imagine that Android packaging could work for me. But execution on iOS devices is definitely too slow so far. Btw, I use Flash Builder Burrito and Flash Hero SDK with new mobile flex components for the development.
The question is, what is your experience with AIR 2.6 iOS packager? Any significant increase in performance? Are there any special steps required to turn on iOS performance optimization in builder or packager?
I'm going to try AIR 2.6 Android packager next. Will post an update when done.
well, I don't aggree.
I guess it all depends on how you build your app.
From testing I have done on the iPhone (4 and 3gs), when using the GPU correctly, performance is now a lot better (frame rate was around twice as with the packager). However, one must understand that in AIR 2.6, filters are not supported in GPU rendering, and having them in the game does effect the performance considerably (even CPU mode will be faster in some cases).
And yes, CPU rendering is (much) slower the GPU mode (dah!), but it still seems better the the CPU rendering of the packager (I'll need to publish my benchmark app again with the old packager using CPU mode to have more accurate numbers).
so [Proper use GPU 2.6] > [Proper use* GPU packager]
but [Wrong use GPU 2.6] < [CPU 2.6]
*The GPU mode in the packager does support filters, so maybe it's not a fair to compare them like that.
Then again it's faster even in bitmap vs bitmap rendering (without filters).
I can say that performance has improved enough that we're going to upload to the appstore a game that previously was not playable on the 3GS but now is.
Thanks for the tip! With gpu mode on, the performance of my flex application increased dramatically. View animation is still not completely smooth, but it looks like something a user can live with. I have also to say, that my application is completely based on Flash Hero SDK and flex components. Thus, I don't directly use any filters or textures for rendering. But I do use transitions when switching views and some of the views update screen a lot (by simply switching fxg skins in list item renderers). Overall, the performance is now matching one on my Android device. Maybe a little bit slower. Hope that release version of Flash Hero SDK will provide even faster flex components.
We had previously considered side-lining our game app for iOS as it wasn't as fast and smooth as on the Android (Samsung Galaxy S). After re-packaging it for iOS using AIR 2.6 we've seen a huge speed increase. Where previously the game struggled at 25FPS it now runs smooth even at 50FPS (testing done on iPad).
We are compiling for GPU and using vector rendering for all our graphics working with native sprites and letting Flash do all the work. Our game can run using cacheAsBitmap and cacheAsBitmapMatrix which we put in a settings screen but this was NOT in use during the above test.
I've read of other developers actually reporting slow downs, but for ourselves, packaging for iOS using Air 2.6 has been an amazing success.
sorr for the dupe, but i already posted this in the iOS packager forum:
-------------------------
the one big advantage with 2.6 publishing is, that the app behaves as it should when it comes to moving objects performance slowdown.
Before performance would break down in strange ways if I inserted too many moving objects in my sandbox. Now the framerate just goes down when raising the objects count.
If you want, check out the video of my proto: http://www.youtube.com/watch?v=uE56XCG06FM
Same principle as with FlashKevin. Just Sprites and scripting no timeline stuff, one enterframe thats handles all the object controllers. GPU accelerated.
You absolutely have to use cacheAsBitmapMatrix or else Sprites/Bitmaps will look jaggy and performance just sucks bigtime. I am also setting cacheAsBitmap = true.
I had some bad performance, when i packaged a project that ran fine with the old packager due to a stage scaling issue.
Performance on the ipad seemed to be really bad when publishing a iPhone project without "stage.scaleMode = StageScaleMode.NO_SCALE" with 2.6.
I am actually pretty happy with this release (at the moment).
Simon
my game is done using entirely the graphics drawing class and some text fields but i make use of alpha, and when publishing with 2.6, cpu is faster than gpu.
so i wonder ... is alpha allwed or will that slow things down in 2.6? should i be setting cache as bmp after i draw? is there a guide/blog post i'm missing?
thanks!
North America
Europe, Middle East and Africa
Asia Pacific