Adam Howitt's Blog

Apr 09
2010

Apple is Doing the Right Thing Blocking Flash

I just read Joa Ebert's theoretical conversation parodying the move by Apple to block Flash code-generation tools and thought I'd repost my argument here. The argument is that Apple is being petty or childish by preventing developers from using code generation tools to develop apps.

I think the author and the flash devs who agree are selfishly angry. They think this is a move to block them and make things harder for THEM but it's not about being childish. It's about a track record, mobile development and maintaining the reputation of the app ecosystem.

Track Record.

I (and many of my mac cohorts) have seen Flash spike CPU on brand new hardware with fast processors and 8GB RAM so how will my poor little iPhone perform? Sure there is an argument that enabling flash on the devices reduces the demand for native apps but hybrid apps and jQuery are all options now but the native apps continue to flourish.

Mobile Development.

How big is your SWF? For every flash developer who knows that an optimized lightweight SWF loads faster there are hundreds who build and deploy massive SWF files that take a lot longer to load even on broadband, let alone filtering that through AT&T's "reliable" network. From a user experience if I wander onto a page with a bloated flash movie I risk crashing my device or at least locking up my bandwidth.

Code generation.

I've been a ColdFusion developer for over 10 years and have written code generation apps from scratch but always with the understanding it gets me 80% of the way there even when I'm generating ColdFusion apps! Imagine the idea of trying to write codegen in one language for another?!

It took me over 200 hours of development to release the first version of WalkJogRun Running Routes - and another 200 for each subsequent release. It's just that hard.

If the developers using the generated code don't learn Objective C it puts pressure on the review process. Just to correct the point in the blog post - review time is less than a week and has been for some time with my record turnaround at 3 days recently. Starting with this 80% code developers either never submit because they can't get it working or do submit it and have multiple app rejections because they don't understand why it breaks.

A plethora of CS5 generated apps could therefore put a huge strain on the review resources based on these multiple rejections. Even if an app sneaks through the likelyhood of an app continuing to crash would threaten the reputation of the developer and the app store.

A solution.

I think that if Adobe would be willing to sponsor the addition of a team of Apple Appstore reviewers dedicated to apps built with Adobe's codegen tools the situation would be very different. It's easy for Adobe to say their tools would be perfect but until they pay the salaries of the review team it's hard to accept responsibility for the consequences of their actions.

Comments (Comment Moderation is enabled. Your comment will not appear until approved.)
[Add Comment] [Subscribe to Comments]
  1. Having flash in the apps section is the actual strange part.

    If you look at the video game industry where games/applications are submitted to the console houses (Nintendo, Sony, Microsoft) before a game is approved/rejected, then it makes perfect sense.

    What adobe needs to do is to make thier own devices. I think blocking it from the apps store is one thing, but blocking in other more free and open areas is indeed a bit much. After all, flash is indeed everywhere and it is the best out there for what it does. jQuery, prototype, silverlight and the like aren't even remotely close to what can be done in flash so people shouldn't be spared from those experiences.

    I do agree that if Adobe wanted flash apps on apple products that they should pay for people to review them, thats not a crazy request.

  2. Like you, I've seen CPU spikes on my Mac as well. However, I'm given the choice to visit those sites and live with the spike if I want to. I wish I could at least _view_ Flash when I chose to. Let it drain my battery.

    Secondly - to your point about app reviews - how about simply having a true open market place? Let consumers continue to download from the app store. Give us (not just developers, but more net savvy folks) have the option to download anything we chose to. Ie, no need for approval. Yes the quality won't be as good, but we are used to it. Oh - but then Apple won't get a cut. Darn.

  3. Adam -- I think your missing the point. This is only partly about Flash but mostly its about Apple making sure that applications are built for the iPhone and the iPhone only.

    Thats why this change blocks all authoring tools such as PhoneGap, MonoTouch, etc that can export to Android, Blackberry, iPhone, and other platforms. That will force companies to pick which platform to develop for and as iPhone is the leader they will pick that first.

    Lets look at your example of spending 200 hours on WalkJogRun iPhone app. Say you had used PhoneGap you could now have an Andriod and Blackberry version. But instead to create versions for different phones you will now have separate code bases and a lot more time.

    Your point of badly written Flash applications applies to every language ever written. And its going to happen to HTML 5 as well. There are way too many bad developers out there -- but thats a topic for another day!

  4. Hi Ray - you're right you do have a choice if you know you're going somewhere with Flash but when I get an email on my phone or see a facebook link and click it I have no idea it's going to crash my phone or drain my battery until it's too late. Same with Google Ads on the iPhone - the destination URL could be somewhere I don't want to go. A reasonable workaround would be for safari or the iPhone to alert you when it's downloading flash content but unless there is a way of determining the size before it downloads you're kind of hijacked.

    To the appstore comment - if you download something that crashes on your computer who is to blame? If you ask most of the iPhone app owners out there what percentage would blame crashes on the phone vs the app? What percentage even know what happened when it crashes? If the device locks up I'm guessing the average Josephine or Joe is going to think the phone is at fault. So indirectly, Adobe could be contributing to reduced satisfaction with the iPhone instead of letting Apple take care of that themselves.

  5. Oh gosh. AT&T. As if their network problems weren't bad enough. Try adding a several 100 GBs of traffic a day thanks to SWFs.

    @Ray Freedom is great, isn't it? Here's the thing. You're a power user. People who don't know how to troubleshoot and see their battery drained will more than likely blame the device. If you *really* want Flash on your mobile device, don't buy Apple. It's just that simple. Let the market determine the real demand for Flash on a mobile platform. Money talks. Whiners walk. If Apple begins to lose serious revenue because of this one thing, they'll back off or stop development altogether. Just look at their past failures.

  6. re: Flash. Ok, seriously, _one_ Flash ad is going to bring down your battery? :) Can't you click away if you see Flash running and know you are low? If it crashes Safari, can't it just restart? But yes - I'd be cool with it prompting me ot run Flash. Like maybe just double clicking on the blue lego.

    app store: That's why I said make it optional. Ie, let me download an app from the net or the store. Wouldn't you think that people who would know to find apps on the net would probably be in the minority? Let the 'general consumer' keep using the 'safe' app store.

  7. If the process of approving every single app is tedious perhaps it's not the apps that are build wrong but the approval process itself?

    The argument where you say unexperienced people will blame the phone not the application is true, but that doesn't necessarily translate to a lost customer or the PC market would be destroyed by now.

    A solution, if Apple is so dead set on approving applications is to do it in a more open fashin. Take Ubuntu for example, they have an ideology, they are sticking to it by providing you the default source for app which they approve. You can, if you want to add a source where everything is released in the wild without approval that you use at your own risk.

    What pains me the most is not the loss of the current cross-platform compiler, it's the loss of every single cross-platform compiler that could have been. Unless they come back on their word and change the TOS to a more sane version.

  8. Only there's a number of great iPhone apps made with third-party development tools, like the Star Wars trench game done with Unity3D that under this new licensing agreement would be rejected. So it seems to have nothing to do with quality control, which Apple could always adjust and raise the bar if they felt that was important.

    I think Apple is trying to stop third-party development tools because many of these tools are trying to target more than one platform, beyond the iPhone. That makes the iPhone less special if cool apps can be found on all mobile devices. Especially if cool apps are added for approval for all smartphones at the same time with competitors approving apps faster. It looks even worst for Apple if they reject apps that make it on all the competiting mobile devices.

    This seems to be more about stopping Google, RIM, Microsoft and other mobile companies from expanding their app store rather than stopping Adobe.

  9. Am I the only person who has my iPhone lockup or crash when using native apps? I doubt it. Bad developers are bad developers regardless of what language they use. The fact that a bunch of new app submissions is going to bog down the review process speaks more about the review process than the apps. What if for a whole new generation of Objective-C developers comes out of the woodwork? Wouldn't that slow down the review process too? Wouldn't you get just as many poorly written applications? The fact of the matter is that the whole concept of a review process is ridiculous. If Apple wants to maintain quality, then have the review process be optional. Then let the consumer choose whether they want to download apps that don't have the Apple approval. There are probably a hundred different compromises that could be made that would benefit both developers and consumers while at the same time protected the Apple brand experience. The real problem is Apple's lack of willingness to compromise.

  10. re: ATT. Weird - I've never had issues with them, but I've heard a _lot_ of people complain. Maybe it's just Louisiana. :)

    You are absolutely right though - about voting with our pocketbook. I am. :)

  11. Let me get this straight: in order to develop for iphone, you need to own an apple hardware, run an apple os, use specific dev tools and only use certain programming languages. Am I missing something or is this not a Monopoly. M$ was slammed with law suits for a lot less.

  12. @Rob - Everyone knows there are bad developers out there and yes, buggy apps and hell, even bugs in the iPhone OS from time to time. I like the idea of an optional review but again, people will still blame the phones because they won't differentiate. As a good example our app routinely gets feedback that it doesn't allow you to create routes on the phone. Strangely enough the first line of the description in the app store says it doesn't but people don't read. You're right - an influx of new developers adds the need for more reviewers but if they code it by hand they'll understand why it breaks when it is rejected. If it's generated you've got to believe they won't know where to start picking through 10,000 lines of code, most of which for a framework will be unnecessary.

    @Adrian - I think you're off in your comparison. If you bought a Dell PC it comes with Microsoft Windows and they pre-installed with Windows browser and we all know how much fun CSS is for IE... If you buy an Apple phone you know what you are getting and people buy it because they know it's a quality product and they like the apps. They have voted with their feet.

    So the cost to develop for iPhone is $600 for a mac mini, $99 for the developer program, 200 hours to release your first app - $699 plus dev hours vs. $699 for Flash CS4 Pro. Same price.

  13. Great Post!?Apple is protecting their platform and end user experience same way as Adobe. iPhone is only one platform, it's the biggest mobile platform by far, so if you don't like developing native iPhone apps then there's always Android, Windows 7 etc. Lee Brimelow shouting "Go Screw Yourself, Apple!" will not make Apple put Flash on the iPhone. I love Flash, Flash animator myself but I love the iPhone / iPad platform as well. Revolutionary platforms and the rest are copy cats. You can't beat the original the same way that you can't reinvent the airplane, the Wright Brothers already did that. You can, if you will, improve the user experience.

  14. There is a more DECENT solution, that is _collaborate_ with Adobe. Just like Google is doing.

  15. @Adam - You seem to be making a huge erroneous assumption about how the iPhone packager works. It doesn't convert Actionscript into Objective-C which is then compiled for the iPhone. What it actually does is compile the Actionscript directly to the byte code that runs on the device. So your Actionscript is never going be translated into 10,000 lines of code. Developers will debug in Actionscript just like they would do when write an application that is going to run in AIR or Flash Player. And good Actionscript developers know how do debug effectively.

    Also, your comparison of the cost to buy a Mac and join the developer program to the cost of Flash IDE is a bit flawed as well. With the Mac route you can build an iDevice application. With the Flash IDE route you can build a Windows, Linux, Mac, Desktop/Browser, Android, Windows Phone 7 (through the browser). There is a much better return on the developer investment with the Flash route. With the iPhone packager adding iDevices to that list, it would be a huge win for developers.

    @Teddy - I am pretty sure the airplanes of today have done more than beat the original. Not to mention that John Stringfellow flew a fixed wing plane 50 years before the Wright Brothers. Both Windows and Mac are both improvements on an original. Innovation is always the result of new ideas built on top of existing products. You can call them copy cats but really everything we use today is built on top of a copy of the original Xerox PARC Alto.

[Add Comment]