Menu:

Sponsor

Discover Master of Alchemy, our first iPad/iPhone and iPod touch game!

Follow Me

 

Forum's topics

Latest Files

Archives

Top Rated

Categories

Photo Gallery


Gabriele Farina on October 9, 2009 in actionscript , iphone

Thoughts about flash on the iPhone

I didn't have the chance yet to try out Flash CS5, but I'm still a bit concerned about the new feature that makes users able to compile their own application into valid iPhone apps.

Things look really good if you look at the examples and if you talk with the people that already had the chance to try this feature out. But I must remember that usually the excitement for a new - and let's say outstanding - feature usually cannot guarantee the final result to be acceptable. I fear that this feature might evolve the same - bad - way as Alchemy did: they started with a promising project that then felt down to a side project because many users shown that it was possible to achieve the same or better results by just using plain AS.

A few weeks ago I started spending my free time on experimenting with generating a valid iPhone app from a SWF file. I didn't know anything about the fact that the Adobe would have put the same feature in Flash CS5.
My approach wasn't too sophisticated: basically, as long as I didn't have so much time to spend on writing a full binary converter, I was parsing the SWF and then generating static Objective-C/C++ (well mostly C++ and I've used Objective-C as glue where strictly required) code that then was compiled by Xcode to a working iPhone application.
I stopped once I figured out that Adobe was going to promote a similar thing (even if their approach is better and probably more powerful), but I had time to figure out a few issues that they may encounter (or maybe they already encountered):

  • Generated applications are really big in size, mostly because there is a lot of glue code generated and because you need to replicate the FPL API in C++ to be able to easilly convert the SWF into an iPhone app;
  • ActionScript is a dynamic language, and this dynamicity must be taken into account when generating binary code (or source code in my situation). Even if using LLVM probably helped with this, you will always need to generate additional dynamic checks that slow down a lot the execution;
  • The FPL doesn't support (yet) threading API, nor the AIR version does. So, if they want to preserve the portability of a flash game so it can be run with AIR or on the iPhone without any change, they are limiting the developers on building just quite simple games;
  • The same can be said for all the other native APIs. AIR for instance has multitouch API, which are however at a lower level then the ones provided by the iPhone;
  • The other big issue is rendering performance. When I was working on my project, I've tried many different approaches to figure out which one was the best to render decent vector graphics with a good framerate on the iPhone. Core Graphics is not an option, as long as it is as slow as hell. Using OpenGL to render the graphics increases a lot the performances, but adds a few limits to the rendering quality. The best approach I found was to mix caching and OpenGL rendering together, but that was not working fine with rapidly changing graphics. But I must say I didn't have the same knowledge as the FPL developers on this topic and I didn't have months to work on that too ...
  • iPhone developers must take special care for memory and resource management; probably having a huge bootstrapping code and transition structures won't help.

What I fear most actually is that they'll be able sooner or later to solve all the issues and create a good product, but probably that product won't be suitable for complex applications, that will be always developed directly using XCode.

That said, I think that probably a better approach would have been to figure out a way for Adobe to include the Flash Player on the iPhone. It's already ready and I really can't understand why they don't release it (it must be Apple, and probably because having a Virtual Machine on the system will break the basis the App Store has been built over).
Having the FPL on the iPhone will still limit us, but it will open up a brighter future for AS developers who want to release apps that runs on the iPhone too (Did you ever heard about compile once, run everywhere?).

So let's wait and see what happens. What I've seen so far on the app store are really simple games that don't use so much resources, so I can't really say yet if they did a great job or not ...

 

Bookmark and Share

 

Tags: actionscript , flash , iphone 

 

3 comments
Apple Store contains pre-beta examples... would be better to evaluate filesize of the actual deliverables. Safari for iPhone does not yet support Netscape Plugins, and Apple controls the distribution of all code on their device... Adobe simply can't make it work unilaterally. I was impressed that the Acrobat Connect and Photoshop.com crew were already able to "Author Once, Export Anywhere".... ;-) jd/adobe
I guess the major concern of Apple is the performance since FP was a resource killer before the 10.1. Do you think a standart iphone customer ever wondered what is the CPU and RAM of a iphone device. Guess not, cause everything runs smooth in it's native environment and people does not need to worry about how much RAM this has , what is the CPU asl long it works flawless. But if iphone had the FP, player would probably kill the iphone, people would complain and apple need to upgrade CPU, RAM resulting in the increase of sales price, decrease in sales... Well in basic
Interesting point of view! Thanks for sharing.


Post a comment

(If you haven't left a comment here before, you may need to be approved by the site owner before your comment will appear. Until then, it won't appear on the entry. Thanks for waiting.)


Type the characters you see in the picture above.





 

TrackBacks

TrackBack URL for this entry: http://www.sephiroth.it/cgi-bin/mt/mt-tb.cgi/273