• Tutorials
  • Blog
  • About
  • Contact
  • I Wet My Bed Last Night Scared About the New “Compile for iPhone” Feature

    2010 - 03.30

    wet_iPhone****Update:  My worst fears are proving to be justified.  Apple has changed it’s terms of serives agreement to exclude features like the upcoming  ’Compile for iPhone’ expected in Flash CS5.

    3.3.1 — Applications may only use Documented APIs in the manner prescribed by Apple and must not use or call any private APIs. Applications must be originally written in Objective-C, C, C++, or JavaScript as executed by the iPhone OS WebKit engine, and only code written in C, C++, and Objective-C may compile and directly link against the Documented APIs (e.g., Applications that link to Documented APIs through an intermediary translation or compatibility layer or tool are prohibited).

    I’m scared of the new “Compile for iPhone” feature in Flash Professional CS5.  Here’s the scoop on why I fear this new feature and why it might not be an overall positive for the flash platform.

    Don’t know what the heck I’m talking about?  Go read this but promises you’ll come back.

    **As always, these are just my personal fears and shouldn’t be taken too seriously.  In fact, you are now dumber for even having read the short brief.

    Yesterday, I wrote about how excited I am for CS5.  All very true, but I’m am also fearful of the new and upcoming “Compile for iPhone” feature that will be available in Flash Professional CS5.

    First and foremost, let me publicly state that I am excited about programming for the iPhone using the new Flash Professional tools.  AS3 is my primary programming language and I’m somewhat of a fan of programming for multitouch enabled devices.

    I’m excited to see how well all of the new native multitouch events will translate on to the 5 touch point capable iPhone.  I have plans to build some personal projects but don’t currently plan on posting anything towards the Apple app. store.

    But that’s not what this blog post is about.  This post is about my fear of the “Compile for iPhone” feature.

    Adobe estimates that there are over a million flash developers but I’d wager that their numbers might even be low.  Somewhere between 30% and 40% of all websites contain Flash files (opera study).  That means that there are a hellacious amount of people who are comfortable deploying content on the flash platform.  These people may not necessarily be developers, they could be IT staff, graphic designers or just real people that dabble in flash.

    While I couldn’t find hard comparable numbers, I think we can all agree that the introduction of CS5 will significantly increase the number of creative individuals programming for the iPhone platform.  (Originally, I wanted to compare the number of flash devs to iPhone devs but couldn’t find public numbers anywhere.  Comments anybody?)

    Sounds great right?  Maybe someday we’ll see half of the available iPhone applications having been built using the Flash Professional authoring tool.  And here is where my imaginary nightmare begins to heat up.

    The Flash professional authoring environment is designed to give new users a very low barrier of entry into the world of application development.  This has always been a double edged sword. It’s great that you don’t have to understand Model-View-Controller architectural design patterns in order to get started.  However, the low barrier to entry means that we often see a lot less polished applications make it out into the viewable public.  This has always been a bit of a black eye for the flash platform.  While some of us may blame a developer for bad flash implementation other often just take a quick look at what caused the crash and place the blame directly on the flash player itself.  Additionally, our entire industry still hasn’t recovered from the dreaded ‘skip intro’ splash screens of the late 90s.

    With that in mind, here are a few issues that are concerning to me:

    1.  If a sudden rush of unattractive or pointless applications bombard the Apple App Store shortly after CS5 is released, I fear that the Adobe Flash platform will suffer a savage backlash from the iPhone community.

    One could easily argue that there is already a ton of crap on the Apple App Store.  How many fart applications do we really need?

    But in this case, we are talking about a very large influx of applications and all within a fairly short amount of time.  Keep in mind that Flash Professional CS5 will be one of the few method for Windows developers to develop for the iPhone.  It is the large influx of apps that there can’t be too much doubt as to their origin.  Now if these applications are less than polished, I fear that Adobe Flash Professional might end up taking the brunt of the criticism.

    2.  If this same sudden rush of applications are noticeably non-performant, I fear that the developer of Flash content might be tarnished and labeled ‘lazy’.

    Developing for a mobile processor will be hard.  Making your iPhone application perform as if it were backed by a quad-core is going to be a time consuming activity.  Adobe is going to work hard to give developers every tip and trick under the sun to insure devs avoid these pitfalls but lets face facts.  It’s ultimately up to the million plus Flash developers to correctly optimize for mobile handsets and I’m scared many developers might take short cuts, and so doing, tarnish the already wounded reputation of the flash player.  (Here’s a must read on how to best optimize)

    3.  If the same rush of applications are unnaturally large compared to the previous 170,000 applications in the market place, I fear that Flash content will be branded as ‘bloated’.

    When developers kick out their snazzy new iPhone application by hitting the new “Compile for iPhone” button they are going to be immediately taxed with some extra file size (the rumor is about 2MB).     The extra file size is due to the fact that a slew of flash libraries need to be embedded to make all of this code work.  I have no doubt that Adobe has worked hard to minimize this file size tax as much as humanly possible, but it’ll probably exist in some form or another.

    Current application examples include ‘That Roach Game’ (image tap game) weighing in at 10MB and ‘Red Hood’ (photo matching game) at 12 MB.  Both games have similar complaints over sluggishness in their respective customer reviews.  I do feel it’s unfair to pass judgment on applications build with a very alpha version of Flash CS5, but also feel there is justification for some performance and file size concerns.

    4.  Looking into a crystal ball, I fear Apple will deny all Flash built content on the iPhone App store.

    This is crazy, you say?  Apple takes a cut on each application and they’d have to hate money to kill flash iPhone apps. coming in, right?  I can’t argue with this.  A large influx of applications on the iPhone could mean an increase flow of  greenbacks towards Cupertino.  Plus, Adobe already has applicaitons on the App Store that Apple didn’t deny.

    Adobe’s Jeremy Clark has said:

    iPhone applications built with Flash Platform tools are compiled into standard, native iPhone executable packages and no runtime interpreter is necessary to run the application. Over 30 Applications built using the Flash Packager for iPhone have already been accepted in the iPhone app store so we’re confident that our method fits within the rules of the iPhone App Store.

    But Apple’s App Store approval process isn’t exactly transparent and there may be some negatives for the notoriously over-controlling Apple.  Lets look at a few:

    A large influx of applications means that Apple will suffer more distress and an extreme slow down to the application approval process.  Add increased traffic from iPad application submissions and you have a recipe for disaster.  Lets call that ‘strike one’.

    The previously mentioned concerns about size and performance could be seen by Apple as a negative user experience on their blessed iPhone and could be a cause for concern.  Negative commentary from the community could influence Apple to deny the new content.  Strike two.

    Apple has always enjoyed controlling every aspect of their product line.  Allowing Adobe to partake in development tooling means that Apple has less control over one aspect small aspect of iPhone universe.  If Apple is truly the cell phone ‘Soup Nazi’ then any loss of control is a bad thing.  Strike three.

    Well, maybe it doesn’t matter what Apple thinks.  Once the swf is compiled to a native iPhone executable package, Apple wouldn’t be able to differentiate between these apps and the 170,000 other iPhone apps. Problem solved, crisis averted.

    Unless the Apple’s approval team decides to look for that distinguishing and mandatory 2MB file size tax that may have a very similar binary signature across all Flash generated iPhone executable packages.  (oh dear,  I hope I’m not giving those bastards any ideas)

    Add all of these fears up, top it all off with the fact that Steve Jobs hates Adobe and is trying to get the media to dump Adobe flash and we just might have something to worry about.

    Tomorrow, I intend to post a suggested Adobe response to Apple’s anti-flash propaganda.  And if Apple were to ever strike down Flash professional content from the App Store, I’d hope Adobe would muster some sort of response.

    I know it’s downright crazy to worry about such things.  This product isn’t even on the market and I have yet to actually see the feature working, but I do find it fun to discuss any legitimate or illegitimate concerns regarding the upcoming “Compile for iPhone” feature in Flash Professional CS5.  Want to post your $0.02?  I’d love to hear it in the comments.

    6 Responses to “I Wet My Bed Last Night Scared About the New “Compile for iPhone” Feature”

    1. Seth says:

      Great post Matt.

      I think a lot of what you’re saying is warranted, but at the same time it’s too early to tell.

      As you said, Apple will not be able to tell the different between Flash made and Native made. Not to mention, there’s other languages (slower) that also port for compiling on the iphone and there hasn’t been any issues (of course none have been as big as flash.

      Most people don’t even know or care how the app is made. None of my friends that have an iphone would know what ‘native’ or ‘flash made’ would mean. If an app was slow they would just say it’s slow. Of course if enough people know about flash then slow apps (regardless if they’re flash or not – since there’s no way to tell) could get the term ‘it must be flash made’ because it’s slow.

      I still think it’s too early to tell if it’s a viable solution to work on. They had to of optimized it 100x for me to be able to write anything i’d like to. Just running a fps monitor, it runs below 30fps. If you add in moving an object it drops to 20 or below. So unless those performance improvements have been made from the beta, all the apps on the internet that people assume will be ported – won’t be. I think this is the biggest one.

      The iphone app market is already flooded and my biggest fear is that it’s going to flood it pasts it’s breaking point. Meaning, instead of taking 3 weeks to clear an app, it’ll take 6 (only to find you’re denied). On top of that fewer and fewer apps will sell regardless if they’re quality or not. In turn this could lead to price increases to weed our supply/demand.

      But I still think from a technical perspective, people don’t know or care how an app is made. It’s too early to get too worked up though because I think there’s a lot of issues based on the beta that need to be worked out before any serious developer would consider writing apps with flash.

    2. Matthew Fabb says:

      The iPhone app store is already full of bad applications, both from the technical standpoint (likely developed by someone new to Objective-C) and from content perspective (tons of fart apps). Apple has cracked down at times for various reasons, but have still let a lot of low quality apps through. There’s enough apps in the app store that it’s just about impossible to have an idea how many apps are badly made in either content or technically, so it’s hard to tell if the percentage of bad apps will go up or down with the Flash CS5 iPhone packager.

      As Seth points out there’s a number of other languages and platforms that have worked out how to make native iPhone applications (MonoTouch, Unity3D are two that come to mind) and Apple hasn’t done anything to block them. So I doubt Apple will do anything to block Flash based iPhone applications except to continue block bad performing apps (or those for content, functionality reasons). Perhaps an increase of volume in apps will cause Apple to increase their technical standards, so that bad performing apps made from either Object-C or Flash CS5 will get blocked.

    3. [...] « Study Shows Multitouch Is About Twice As Fast As Mouse I Wet My Bed Last Night Scared About the New “Compile for iPhone” Feature [...]

    4. Almog Koren says:

      I think you have some good points, and I too am a bit worried but I do some experience on the subject I will try to say what I can with out braking the Adobe NDA.

      I have an iPhone app out built with you know what its been out for a month I have a good number of sales which is great considering it was a test app to understand how everything works.

      The app US Gov.Index is under 10MB 7.4Mb to be exact, its a reference app that has not yet been done. I can tell you that Apple add some size to it the ipa file that I summited was at 3.76MB but I think they do this for everyone they do add the keywords and so on. Site for the App http://www.almogdesign.net/portfolio/us-gov-index/

      The performance is great I have one issue that the scrolling that I will fix later on next month, the app even saves states there is a difference when developing within Flash you don’t have the Table Views, or native stuff but if you read the Apple design UI guidelines you could do something very nice.

      The development took about a week and half not and another couple of days for QA, its a simple app not to advanced I do plan on adding more features.

      But over the experience was great and I think you will see apps that work just fine and offer a better GUI then apps built with Object C you can do more with Flash and don’t forgot the end users doesn’t care were the is from only if it works good, looks good and he needs it for a task.

    5. Seth says:

      Yeah like Matthew said, it’s a bit of a double-edged sword. If quality control goes up then probably so will the approval time which will drive up other things like cost. If fewer apps start passing approval, then I’m sure developers will have to charge more since they don’t know which of their applications will/won’t pass approval. The whole system is really flawed and at some point they’re going to have to create a better system that keeps quality high without sacrificing other things. Regardless, I don’t this is a flash specific problem – it may just be a small blip that escalates things past the tipping point.

    6. [...] Last week I wrote “Looking into a crystal ball, I fear Apple will deny all Flash built content on the iPhone App store.”  I think I’ll be keeping that crystal ball around because today Apple announced their new iPhone OS4 and made a few minor changes to their terms of services (TOS): 3.3.1 — Applications may only use Documented APIs in the manner prescribed by Apple and must not use or call any private APIs. [...]

    Your Reply