No, I’m not predicting when it’s going to be on there, saying it’s never going to be on there, or forwarding any conspiracy theories about why it’s not on there already. I’m just curious what people think of when they think of “Flash on the iPhone”.
This started as a twitter conversation. But sometimes 140 chars just aint enough.
Basically, as I see it, there are two avenues that could be gone down.
A standalone Flash player that would run SWFs, maybe even an AIR type runtime that allowed you to save and load files to the system, etc. Custom chrome and windowing stuff isn’t really an issue as all apps run full screen on the iPhone.
A Flash Player plugin for mobile Safari.
#1 I can see as being incredibly useful and usable. Make games and apps, install them to your phone and they run in the player. Fantastic! That would rock. Unfortunately, I also think that’s the least likely to ever see the light of day on the iPhone.
A. It cuts right across Apple’s policy about apps not being able to run external code (same reason the C64 emulator got shot down).
B. It cuts right across Apple’s own App Store model.
So, #2, Flash Player in Safari. This I can see eventually occurring. In fact, I’d say this is almost inevitable, but wouldn’t try to make any predictions on when.
This would be kind of cool, I guess, but I’m not all that excited about it. I wonder what people picture when they think of this. Suddenly, Safari on your iPhone will show all your Flash content, just like a normal browser? hmm… First of all, the iPhone’s screen is 480×320. Take off the status bar and the Safari tool bar and you have about 480×270. Here’s what a full screen existing Flex app will look like:
I scaled the picture down a bit so that it was exactly the size of my iPhone when I held it up against my Mac Book Pro screen. That text is about  maybe 4 pixels high. So no, I’m guessing the vast majority of existing Flex and Flash web apps are not even going to be remotely usable in Flash in mobile Safari. Someone mentioned pinch and zoom and panning around. Sure, for some apps, that would work. But look at an app like the one above. I think that would be a horrible experience as well.
Now, I know that all of you out there who actually do mobile development are saying, “yes, of course, you have to design for mobile.” I’m just not sure that everyone who is clamoring for Flash on the iPhone is thinking that far ahead. This means making a regular version of your Flash app and an iPhone version. Or, if you are really good, making an app with such awesome layout behaviors that it really does work good in both.
And what about all those sites that don’t go ahead and take that extra step? Well, most of them are going to look like crap and be pretty unusable. Just like most of the regular HTML websites that don’t make an iPhone version. I really only use mobile Safari when I absolutely have to. If what I want to look at isn’t really vital, I’ll just make a note to look it up when I get on a real computer.
Chuck Freedman Kevin Suttle (wow! they look alike) just brought up an excellent point, too (twitter is streaming by as I write this), about video. Yes, I’d love to be able to watch ALL flavors of Flash video content on my iPhone, not just what Youtube has converted to iPhone friendly versions. I wonder if that could be separated out somehow. Probably not, but would be a great step towards finally getting Flash there.
Anyway, I’m no expert in all these fields. Just wanted to expand my ideas, because on Twitter I started sounding like a Flash-hating iPhone fan-boy! 🙂
[EDIT]
A third possibility is now being tossed around on twitter – something that would bridge between Flash and Objective-C, possibly a tool that would convert AS3 / Flash / Flash byte code to Objective-C byte code. I guess Unity does something like this, spitting out an XCode project from your Unity project. Personally, I don’t really see this as “Flash on the iPhone”, but is an interesting possibility. And personally, I don’t see it is as something I’d personally use. Whenever  you convert code over like that, you lose access to the low level APIs you’d normally have access to if you were just coding in the target language. Since I’ve already gotten over the major portion of the Objective-C hump, I’m not sure how much something like that would entice me. But I’m sure it would be very interestin for those who are scared of square brackets. 🙂