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.

1. 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.

2. 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.

I agree with pt. 1 being the most useful and pt. 2 being the most likely. What is interesting from my POV is hacking pt. 2 to look like pt. 1.

More specifically, it would be relatively trivial to write an iPhone app that contained a full-screen, chromeless WebView with a Flash widget embedded inside. I don’t know how scriptable WebViews are from Cocoa, but I imagine you could even use ExternalInterface to dispatch accelerometer events, transfer BitmapDatas over from the camera, etc. If Adobe can distribute Flash on the iPhone, the community can create an AIR Lite-style framework for Flash developers to be able to create iPhone apps without struggling over Obj-C, garbage collection, and the like.

At the risk of sounding a Flash fan boy, I do not agree with this post at all. Lets not hide Apple’s decision to not support Flash Player on the IPhone behind usability or user experience. Apple barely tolerates Objective C developers on the IPhone platform and will not be too happy with technology that challenges both its vendor lock in and the 30% rev-stream (at this point I am thinking more about mobile games, like the ones you are making that are only possible with native code). They did a fantastic job with the IPhone and not enough non Flash developers are looking for it (the occasional link that doesnt work is usually met with a shrug). And again, Adobe is looking to lock its developers in its own technology, so its the same game. My concern with Apple has not been the technology direction but its attitude on App store apps. I feel awful for all the developers who have invested a lot of time and money in something that once rejected can probably never be used on any other platform.

On the flip side, I do see this as accelerating the Flash Player technology on other mobile platforms looking desperately for a differentiating factor. There is a lot of oppurtunity with AIR for mobile, if Adobe can work with the platform vendors to create a distributed App store.

arpit, Well, as I said in the first sentence, this is not about *why* Flash is not on the iPhone. That could be a whole other post, and I absolutely agree that it’s much more about business than technology or usability. I was just curious as to what people were envisioning when they thought of it being on there, and suspect that for most, it’s going to be like that cool toy you wanted for Christmas when you were a kid, and when you finally got it, you were kind of disappointed because it wasn’t as cool as it looked in the commercials.

Ahh, sorry my bad.
I think mobile Flash apps do present a challenge, in the end, Flash does have its own DOM and it does know about the bounds of a display object so “tap to zoom to a div” functionality could be mimiced. Maybe the secret mobile Flex SDK that I am sure Adobe is working on may implement it cleaner or provide a framework that eases the effort of optimizing a Flash web app for mobile browsing.

I think the way it’ll end up will probably be pioneered by some other platform like the Android. Like I said, while mobile Flash is great, I think mobile Air presents a cooler opportunity. I doubt Flash will come on the iPhone if it doesnt spectacularly succeed on a different device.

arpit, yeah, others have made that point to me recently – that when Flash becomes hugely successful on another mobile platform, Apple will be forced to follow. I can see some truth in that. Still depends on how it would impact their app store sales.

I totally agree. Apple has their app model locked down too tightly to enable Flash in any capacity other than the standard browser plug in.

Until Flash starts being adopted by the majority of the iPhone’s competitors I think Apple will politely turn a blind eye to it. Also, iPhone still lacks a *serious* competitor and unfortunately I think the majority consumers are more “wowed” by a phone having a compass than whether it supports Flash.

To be honest, I’m not all that upset that Flash is not on the iPhone. I’m a Flash developer and love the platform, but on desktop. I just don’t see Flash on the iPhone or any mobile phone being that great of an experience for the user. Flash is pretty CPU intensive on modern desktop CPUs, so I don’t see it magically getting better moving it to a mobile CPU. Mobile Safari can already crash on heavy HTML sites, and now we want to add Flash to it? no thanks. at least not until we have much faster mobile phones.

As for Keiths #1 and #2.. I don’t see either happening. As Keith mentioned, #1 would go against Apple’s strategy of not allowing external code. As for #2, I don’t think at any point, Steve will allow for this, just like he never really gave in on his second mouse button, so I doubt he’ll bow to market pressure on Flash on iPhone.

I think #3 holds the most benefits and the most probable solution. Flash to Obj-C conversion. The first benefit is to Adobe. We keep using and buying the tools we’ve learned to use for years. Adobe gets to excel at what they’ve always done — make great tools. Apple is happy because it means more native apps and more developers for iPhone.. and for me.. I don’t have to code in Objective-C ( I know its not that bad, but I don’t like it), and I get all the benefits of developing iPhone apps — aka I can sell my work on the iTunes store. Its hard to sell AIR apps, but let me build iPhone apps from Flex to sell on iTMS…. now we’re talking!!

So Adobe — show me the money! Show me the AS3->Objective C converter at MAX 2009. Even better, make it CS5 suite wide.. Just like I can create AIR apps from Flash, Fireworks and Flex.. let me make iPhone Objective-C/XCode projects from the same apps, using the same workflow I’ve used for years. I’d like to place my order today.

As the html canvas element is supported more and more and javascript libraries mature, I’m having a hard time finding a space to use Flash. That Adobe appeared to be locked out of mobile (not necessarily their fault), it seems a little silly to keep betting on them – whose to say the same thing won’t keep happening on additional platforms.

The Flash Video playback thing is something that could be solved with a library– all you need is a decompressor for the codec. I think the iPhone is a bit slow to play back most FLVs without a hardware decoder, which is why that hasn’t been considered. MP4 playback on the iPhone is, I believe, hardware accelerated. I’d be curious to see someone write some FLV playback code, though, it’d have to be the Sorenson folks I think. But I bet a few palms greased here and there could get it working on the phone.

As far as Flash on the phone goes, I think the conversion of SWF to App or from AS3 to Objective C code would be best. The most important reason for this is that SWF playback introduces another vector by which the iPhone can be cracked. Unlocks and such aside, that puts the cellular network at risk. Apple doesn’t want to be held responsible for code they haven’t vetted, and Adobe won’t let them have the source to the Flash Player. So there’s an impasse.

I’m not really into getting the flash player to run on the iphone. Although flv playback would be extremely cool ( but like that’s going to happen.. EVER )
My thoughts go more in the direction of how i can extend my existing or my upcoming apps with things that in flash can easily be made.
But what would be super, is that i can use the flash player to make vector ( or bitmap ) animations that i can use in my existing iphone applications that are build with obj-c.
so i can visually see what I’m animation in contrast of the coding you now have to do.
Would AS2/3 support be cool ? probably .. but obj-c is such a great and powerful language that its just a matter of being motivated enough to learn a new language if you come from an AS background. And there tons of tutorials that can help you with that.
So unless I’m completely unaware that there is a great animation tool available for providing your iphone app with animations (vector/bitmap). My vote goes to getting some of the flash IDE design/animation functionality available to “iphone development”.

I’m not sure why there was the amount of madness I saw on twitter last night, but I posted a tweet on Friday whilst sitting in Glasgow airport, I was sat in a nice little sandwich shop which I could’ve sat in for hours, so I whipped out my….. iPhone to check the website only to be annoyed by the fact all I was faces with was the weird looking Lego brick and the company logo.

At first I felt let down by the iPhone, after just seeing the HTC Hero video while still in the office I began to get disgruntled and post a FAIL on twitter. It was only on Sunday I saw ‘LoyalMoses’ reply which seemed to spark some reaction across the board.

I followed the discussion to a certain degree whist flying back last night and after reading various blogs and posts I became undecided about my views seeing both advantages and disadvantages for having flash in the iPhone.

I was unaware the HTC Hero was only able to do AS2 stuff, thanks for that info.

I agree with Keith to a certain degree about how flash would be nasty for some instances, a fullscreen web application in flex / flash would be horrible, the resolution would make the experience worse than seeing that little Lego block in some instances.

I may be talking out of my bottom here, but is this partly our own doing? To a certain degree, we should be offering alternative content to flash, I possibly would’ve felt less disgruntled if there was a pleasant message sitting on the site saying “Sorry you need flash player to view this site” and a nice set of contact details…

There is no doubt the whole flash on the iPhone area is a little grey at the moment, and I think most users are probably just looking for a positive step forward from Apple and Adobe to make the leap and until then they will bash both parties ( maybe I’m one of them people lol ). Apple has a solid and rigid frame they want to work to, and while it is working as they want they will turn a blind eye as ‘Will’ kindly said.

All I can say is hopefully something can be worked out in the near future, even if it is a tiny plug in for mobile safari allowing for videos to be watched.

The implementation I’d like to see the most is a Flash Player wrapper, whereby your swf is bundled in with a Flash Player to one file and sold on the store as an app. This would be very similar to the standalone .exe output from Flash.

Or perhaps Apple could install the Flash Player into the iPhone and save the user from downloading a bundled copy every time, then have the swfs in a smaller app wrapper that allows them to be sold on the store.

I’m pretty sure Apple would be happy with this way of doing things, as it keeps everything going through the store, but opens up the platform to a huge number of new developers.

“Scared of square brackets”? I doubt that most good programmers are afraid of learning a new language. The fact is that AS3 has features that are simply absent in the iPhone SDK – the biggest example being its event-dispatching model (which is far more flexible than the corresponding “delegate” pattern used in Cocoa frameworks), followed by AS3 bindings (which are far easier to use than Cocoa Bindings, which aren’t even available for the iPhone SDK yet). To be completely fair, it’s not unexpected that a 4 year-old language will have improvements over a 20 year-old language.

Erik: yes, scared of square brackets. I”ve talked to many Flash devs and maybe “scared” isn’t spot on, but I hear words like “bizarre”, “weird”, “strange”, “stupid”, etc. and usually a big reluctance to dive in.

Delegate isn’t really the cousin of EventDispatcher. I’d say Notifications are. Also, key/value binding, which is available on the iPhone. And as for “AS3 binding”, it’s really Flex data binding. It’s not built into AS3, but written in AS3 as part of the Flex framework. And personally, in the Flex projects I’ve done, the data binding was routinely the source of most bugs. My own bugs that is. Using curly brackets for data binding is simple enough, but can be leaky. Coding up your own data binding can get pretty complex. Key/value object binding in Objective-C is pretty straightforward though.

Finally, to be completely fair, I wouldn’t necessarily say that AS3 has “improvements” over Objective-C because it’s newer. I’d say it’s a much higher level language, so a lot of things are built in for you and made simple. Objective-C is a lot lower level, making some things more verbose, but also giving you a lot more control.

Tom, a SWF wrapper might indeed be the most likely solution. Essentially a Flash projector as an iPhone app. If you read up on the C64 emulator that was rejected by Apple, you’ll see that there were a couple of games using the emulator that got approved (I believe). Because the emulator and game were packaged up as a single unit without a chance of the emulator doing anything but running that one game, it was ok.

Keith, you’re right about the “AS3 Bindings” vs “Flex Data Bindings”, that was a brain-slip on my part. As for the square brackets and the Flash devs, admittedly everyone finds them strange at first, but you know firsthand that they become perfectly natural after a few hours of actual coding in Objective-C. Poor Lisp has had to fend off that same criticism for decades. Someone who still complains about them after a day or two is probably not writing much actual code.

While you are also right that conceptually, Notifications are closer to AS3′s Events, what I meant in my first comment is that in practice, most objects in the Cocoa APIs use delegate callbacks to allow programmers to get notification of various changes in an object’s state. For example, all of the “didDoSomething” and “willDoSomething” methods that delegates implement to take action in response to these changes. Nor, from my experience, does it appear that Cocoa Notifications are used as reflexively or idiomatically as Events are used in AS3 (perhaps this is partially because of the clumsiness of having to obtain NotificationCenters in order to work with them).

Furthermore, key/value observing is far clumsier to use than AS3 Events or Flex Data Bindings. Yes, KVO gives programmers a way to listen for changes to properties of objects, but only one observeValueForKeyPath method can be implemented by a class – if the class wishes to observe multiple key paths or objects, then this method must contain conditional logic that tests the key path and/or object identity of the object whose property is changing. This means that in many cases, the observing class will need to keep a reference to the object whose property is changing (or some identifying information about it) so that the observer can disambiguate it from other objects it is observing. As you know, this is just not an issue in AS3.

Additionally, Flex AS3 provides the convenient [Bindable] metadata, which inserts property change events into code for us – Cocoa/Objective-C 2.0 doesn’t do anything like this (yet), so when we change the properties of an Objective-C class, we have to remember to be KVC-compliant (so as to notify observers of the change). This is like having to always remember to manually dispatch property change events in AS3.

Sorry for ranting in your comments. I actually like Objective-C quite a bit, and I think it is the right language for Cocoa development (and I agree with you that an AS3 wrapper or compiler that generates iPhone-capable code doesn’t seem like the right way to go). I am just going off about this because I’m a big fan of writing less code whenever I can, because that generally means I’m writing less bugs. AS3 is indeed a higher-level language, and Objective-C does have affordances to let programmers do almost anything that AS3 programmers can do, but that doesn’t mean that future versions of Objective-C and future versions of the Cocoa APIs couldn’t benefit from incorporating some of AS3′s features.

#2 is where I see this going. I think saying that existing pages/apps don’t work on the iphone is a straw-man argument. Of course they don’t. And to think devs wouldn’t take the iphone app into consideration if Flash were available is ridiculous.

Companies are screaming about wanting a presence on the iPhone right now. There is no way that any serious ad agency would not take Flash on the iPhone seriously. Currently IPhone apps can be a nice addition to a campaign… but they are by no means an integral part. Its more like icing and buzz. If you had Flash support, you could tie your experience directly to the microsite instead of instructing people to visit the app store. You could embed games and app like components directly into your site. The final experience would be much more fluid and intuitive than our current situation.

As someone mentioned before, the real question is “why isn’t Flash on the iPhone already” and then take the answer that equals the biggest dollar gain or loss to Apple.

Usability? No gain or loss to Apple at all there. Heck, a couple years without cut and paste? No, Apple has no quams about providing a substandard usability experience and has proven that it does not affect their bottom line.

Capability? Well, Flash runs on lesser platforms. So we know the iPhone can handle it, especially the new 3Gs. Besides, you can always lock a plugin until “activated” by the user if you are worried about performance. You can even make it so that the .swf does not even get loaded until activated if you are worried about bandwidth.

Control? That’s all that is left. If it can run, regardless of the experience, then the only reason not to have Flash is because they can’t control it. And we already know why… because they cannot control the content that will directly compete with a vast majority of craptastic apps in their App Store. The fact is, games like Bejewled are huge sellers – but no good when you can find them free on the net to play.

I guess we are betting on when Apple will be willing to release control then eh? At what point will they want to risk lower sales in iTunes apps due to the supply of equivalent Flash-free games? Worse, it also gives a beachhead for something like AIR, which gives better apps with less control for Apple.

An iPhone target for app development using Actionscript 3.0, and Flash Player API features (video codecs, PixelBender, etc.) would be great in my opinion. I’d even like to target the iPhone’s APIs instead of the Flash platform APIs in some cases.

I could see this as against Apple’s goals (unless they are trying to bolster Objective-C and Apple platform devs – and lock users into Safari tech, and QT video formats), but would see this alternative development route as more of a gain than a loss. At the end of the day, there would be more apps on Apple’s app store. I also see no reason why Adobe couldn’t get Apple to add Flash Player to their list of approved interpreters, with the right kind of persuasion.

Alternatively, Adobe could take the Flash Player pieces (Codecs, PixelBender, their type engine(S)) and figure out how to compile the AS code to something native, and avoid including an interpreter altogether. We could then use our normal tools to develop for the iPhone, even if Flash Player proper is nowhere to be found. That would rock.

BTW, gamehaxe.com is working on a compiler for HaXe that would basically allow you to target a subset of the Flash API, using the AS 3 like language HaXe. Seems pretty fun. None of the fun stuff though, like PixelBender. It would eventually support native iPhone API calls though.

I’m not sure how well Flash would run in mobile Safari – especially judging by how terribly it runs in Opera on Wii (why does it zoom differently than the page it’s embedded on?).

Apple could be working with Adobe on the Open Screen Project, but if they are, based on Apple’s history of secrecy when it comes to upcoming new products, we are not likely to hear about it. If Flash ever makes it to the iPhone, it will be Apple who will be making the announcement and likely just weeks or days before the Flash-enabled iPhone is available. That’s not to say that it’s happening right now, just that if it ever does happen, I think that’s how it would play out.

As for how it would work, I imagine that it would be similar to what’s been seen with HTC Magic, where it’s integrated into the page and the user taps on the Flash element to push it to full screen. Most Flash and Flex applications won’t be very usable right off the bat, but I imagine most Flash video, would work fine, which is what it seems the majority of users want.

When the mobile version of Flash Player 10 beta becomes available for Android, Pre and other mobile devices we will likely a clearer picture of how mobile Flash will work on most devices. Also once it’s available for these platforms, I imagine we will see more Flash websites made specifically for mobile screens.

I honestly have doubts about whether Apple will let Flash / AIR come to the iPhone. I am a Flash Developer and have been for years and I can tell you that I would NEVER AGAIN buy an iPhone or any other phone that does not support Flash. I will only support vendors that help support me – sorry Apple, the Macbook Pro, iMac, and Mac Pro are awesome powerful machines, but until you decide to support Flash on the iPhone I will never buy one and I will discourage anyone else who wants the “FULL WEB EXPERIENCE” from buying one. As I have said before iPhone – Flash Player 10 = No Thank You!!! There are a slew of phones coming that will put the iphone to shame and support Flash 10 and AIR. Hey Apple – have you got an app for that?? I didn’t think so!

As an iPhone user i would only like Flash functionality to play back videos in the browser if it can do that at decent performance and apps, no matter if standalone or in browser if the flash content somehow gets closer to native code and is propperly hardware accelerated so it runs fine.
Just a port of flashlite would be rubbish as the performance of that, just like the one of desktop flash player sucks and takes up way too many hardware ressources, tough for me to imagine how safari could display sites nicely with a flash movie sitting in a page and flash player eating as much system ressources as it does right now.
Next to the performance issue your sample screenshot shows very well why the hyped flash RIAs would mostly be no use in the browser of a device with much smaller screen.

As a long time flash platform developer and now for a while next to that iPhone developer iÂ´d like an option to bring some of my flash games over to iPhone, as standalone app, not in browser, but again only if adobe achieves something that runs really well and regarding making any money with an app (and getting the greenlight at all from apple) it surely would have to be a solution that doesnÂ´t circumvent the app store but rather allows creating content for the app store (comparable with the unity solution you talked about which i use for some stuff,too).

A bit ironic, I think, how Steve Jobs was so outspoken about telling the music industry that they should allow their songs to be DRM-free on itunes. He told them that they would actually sell more by being DRM-free. The music industry was saying that they would lose control if their content was released DRM-free. Well, as it turns out, DRM-free was a good thing. Now Apple is in the same situation as the music industry with regards to Flash. Allowing a Flash player on the iphone and selling Flash content on itunes is just like the music industry allowing DRM-free music. Apple is worried they will lose control. The interesting part is will Steve Jobs take his own advice?

ogreeno, iÂ´m pretty sure if Adobe could make a flash ide version that allows to create xcode projects that create native apps out of flash content and those then perform well on the iPhone Apple wouldnÂ´t be against it. There are several other such technologies they let in.
What apple seems to be against, and i fully understand and support that (yes, as flash developer, but also as iPhone developer and user) is a bad performing flash player that is available as standalone player aswell as browser player which would undermine the app store aswell as using any app and especially the browser propperly due to sucking out any ressources of the device.

I’ve avoided purchasing an iPhone since the very first inception. The week they were introduced I stood with my credit card in hand playing with the demo model at the Apple store waiting for a free sales person to come hook me up. While playing with it I came to the realization that Flash was not an included feature. All these years I’ve waited and refused to buy one because of the omission of Flash. I develop Flash, people use Flash, people expect it. If Apple is such a cutting-edge company that is so intertwined with the creative community why would they be omitting a standard Web feature like this? Seems pointless, corporate loopholing and the loyal consumer suffers. I always knew Apple would end up like this once they blew up with the iMacs and then iPods. Well, i finally broke down and got the damn thing this week, other needs just became too strong to operate without. I’m keeping my fingers crossed, three years should have been long enough to wait for a basic feature.

[...] think. I was never a big supporter of the push to get Flash onto the iPhone in the first place, as you can see here. And last October I expressed my doubts over the Flash CS5 to iPhone publishing route. So before [...]