Tampilkan postingan dengan label Adobe. Tampilkan semua postingan
Tampilkan postingan dengan label Adobe. Tampilkan semua postingan

Kamis, 29 April 2010

Steve Job's Thoughts on Flash

Today, Steve Jobs posted an open letter titled Thoughts on Flash, in which he lays out the reasons why Apple doesn't want Flash on the iPhone, iPod touch, and iPad. It's Steve, so there's a little bit of RDF, but it's actually refreshingly straightforward and rational. It seems to be striking an almost conciliatory tone towards Adobe and certainly takes a far more mature tone than Adobe has taken toward Apple in their public grousing since the new SDK agreement came out.

Steve ends the letter by encouraging Adobe to do what I (and many others) have suggested they do, which is create tools for generating HTML5 content. There are some tentative first-steps towards that in Flash CS5 from what I understand, but the time for Adobe to strike and take ownership of HTML5 content creation is now, not two or three years from now when CS6 ships. If Adobe can get a kick-ass content creation tools that outputs open standards-compliant interactive content out the door, they'll have an instant runaway success on their hands. It's a market with huge potential and Adobe could own the space if they were to make smart decisions.

Willingness to foresee and change corporate strategy is vital to long-term success. Have you ever read the history of Reuters? Reuters started as a carrier pigeon company. When the telegraph came on the scene, they certainly could have whined and complained and even insisted that their customers continue using carrier pigeons, but they were smart enough to realize pigeons were an outdated technology that couldn't compete with the telegraph. Instead, they invested heavily in telegraph technology. As communication technology continued to change over the last 150 years, Reuters saw the changes coming, accepted them, embraced them and, as a result, they are still around today, bigger and stronger than ever.

Adobe needs to accept and embrace the fact that Flash has been supplanted by better technologies, especially when it comes to mobile and embedded devices. It doesn't mean they need to abandon Flash (though I wouldn't mind if they did), but they need to realize that it's moribund due to the fact that the embedded market has a very different dynamic and makeup than the desktop world did back in the late nineties when Flash was born. A single-vendor proprietary solution is untenable when you have as many different viable operating systems and hardware manufacturers as we do in the mobile space.

It's truly sad that Adobe is unable to see or embrace where the mobile web is going and continues to insist on trying to control where it does go. Adobe's failure to accept these things is preventing their developer customers from reaching one of the most profitable and desirable mobile markets. In fact, their decisions thus far have, in reality, prevented those customers from effectively reaching any mobile market yet. Despite several years of promises that ubiquitous mobile Flash was just around the corner, it hasn't happened yet. In the meantime, nearly ubiquitous adoption of HTML5 on smartphones has occurred. It's supported, out of the box, by every major platform except Windows Mobile, and Windows Mobile has dwindled down to single-percentage market share.

Jumat, 09 April 2010

"Go Screw Yourself, Apple!"

Lee Brimelow is a platform evangelist at Adobe, and has raised a bit of a ruckus with a blog post that finished with a nice succinct "Screw You, Apple".

I like it.

Oh, I don't agree with it. Not one little bit. Even though I don't necessarily agree with all of the SDK Agreement changes Apple has made for 4.0, their actions clearly are not "unethical" as Lee alleges, and they are certainly no worse than Adobe telling Flash Developers they'd be able to develop for Apple's App Store without, you know, talking about it with Apple first. But I enjoyed reading the post, and understand where he's coming from. I think it's a good thing he said what he said and that he's as passionate as he is about the products he evangelizes.

This may surprise you, but I've been known to go off on a rant myself and have a couple of strong opinions on technology myself. In fact, somebody reminded me on twitter that I pretty much predicted exactly what Apple would do about Flash, if not the specifics of how they would do it. Took a little bit of heat at the time, too.

There's a lot of speculation that Lee should lose his job over this post. I think Adobe would be downright foolish to do that. It was a bit, well, ill-advised, perhaps, to make these statements on an official looking blog (yes, I know it's not actually official) because no matter how fervently he says his words were "not in an official capacity", the fact is, he is authorized to speak on behalf of Adobe as part of his job and probably should have chosen his words a tad more cautiously or chosen some other forum to vent. But, so what? A guy at Adobe whose job it is to evangelize Adobe's developer products doesn't like something done by a competitor that has a potentially huge impact on the users of those products? That shouldn't surprise anybody. He just said what a lot of people at Adobe were thinking. This isn't news. Of course he's pissed off. He should be! I would be too in his position. I assume he wouldn't be in that position if he didn't feel just as strongly about Flash/Flex/AIR as I do about Cocoa and Objective-C, and what Apple has done is, make no bones about it, bad for Flash/Flex/AIR developers.

Though I liked the post, since I don't agree with it, I feel compelled to address a couple of things he said.

First, there's a little bit of a persecution complex going on in the post. Apple's not on a "crusade" against Adobe. Apple's on a crusade for their own interests, just like Adobe is. I guarantee you that the decision-makers at Apple feel strongly that a huge influx of Flash-generated apps would be bad for the platform, and not without some justification. It's not that Apple doesn't like Adobe, it's that they honestly feel this is the best thing for their customers and their interests. Just like Adobe feels the best thing for their interests is to find a way to let Flash developers sell to iPhone users.

I think it's interesting how Lee then pulls the whole "Adobe and Apple have helped each other get where they are" schtick. Despite the fact that Mac products are what allowed Adobe to become a large, successful company, Adobe hasn't felt compelled to treat the Mac as a first class citizen in over a decade (though there are signs that may be changing). Where's 64-bit Photoshop? Where's a good Flash runtime that doesn't leak like a sieve or max out all processing cores for a relatively simple task? If you have used Adobe products on both Windows and the Mac, it's hard to buy into this whole Adobe-and-Apple-holding-hands-in-a-tree scenario he paints. Adobe only wants to hold hands again because Apple's been phenomenally successful in the emerging mobile market and they want a piece of the action.

The fact is, Adobe and Apple are both big corporations out for their own interests. They help each other out when it benefits them, but they don't hesitate to let go, or even give their former "friend" a good kick in the ass when that's what's in their best interests. Case in point, when Apple looked like it was dying, Adobe was rapidly rewriting all of their existing products with an eye toward being able to deliver Windows versions even though Photoshop and Pagemaker were, at the time, huge incentives for buying a Mac. If Adobe has been Apple's friend, they've sure been a fair weather one. But they're not friends. They're corporations, period, so rant all you want about Apple's actions, but don't act as if Adobe has been betrayed or wouldn't take exactly the same kinds of actions if they were in a similar situation.

I doubt Lee and I will ever see eye-to-eye on most technology issues. We're both too invested in opposing technologies. He won't give money to Apple, similarly, I feel the same way about Adobe. For a very long time, I was as big a fan of Adobe as I am of Apple, but now I'm not a fan and won't buy their products.

So I understand his anger, and don't think his "Go screw yourself Apple" is any worse than my occasional "Flash sucks" declarations.

But Adobe should've seen this coming and a lot of this anger should be directed at themselves rather than at Apple. They took a huge (I would argue foolish) risk and it didn't pan out. If a competitor writes a license to specifically disallow your products and then you look for and find a loophole in that license, then announce to the world that you're going to exploit that loophole, how can you possibly not foresee your competitor closing the loophole? Adobe was betting that Apple wouldn't block them if they made a public announcement at their big developer conference thinking, perhaps, that Apple wouldn't want the negative publicity. Adobe bet wrong.

The App Store is Apple's playground. Maybe they should be nice and let everyone play on their playground, but they don't have to, and the fact that you bought a shiny new ball to play with doesn't change that fact at all, Adobe.

Kamis, 12 November 2009

In my Inbox Today

This came in my inbox today (click for readable version). I really, really don't think this needs any commentary, but there's obviously a certain irony in sending it to me. I had a great belly laugh over this, though. Thank you, Adobe, for brightening my day. Seriously. This cheered me up more than LOLcats could have.


I guess Microsoft doesn't have a monopoly in ill-advised, lame marketing campaigns. Maybe next, Adobe will suggest out-of-work people throw "Unemployment Parties" where they can learn Flex™ tricks and play cool Flash™ games.

Jumat, 09 Oktober 2009

Mobile Photoshop

Adobe just released a mobile version of Photoshop for the iPhone. Let me just surprise a few people here by saying that Adobe did a pretty awesome job with this. It's a really nice little application, and it's free. Sweet. Although it doesn't appear to be available in all of the international versions of the App Store yet.

I can't help but think that this would have been a good showcase application to show off what Flash-generated iPhone applications can do. Alas, it appears to be a bog-standard Objective-C application, complete with nibs and byte-swapped PNG images.

Adobe's Ace in the Hole?

There's one thing I'm having trouble figuring out about this whole Flash CS5 thing. Adobe invested a lot of time and money to get Flash on the iPhone, seemingly against Apple's wishes. To sink that much time and money into trying to get software onto a closed, proprietary platform without the consent or help of the gatekeeper seems odd. From an outsider's perspective, Apple seems to hold all the cards. They have any number of technical means to prevent Flash-generated apps from going on to the App Store if they decide to. It seems to me that there's only two possible explanations for Adobe's actions.
  1. Their management is desperate and completely incompetent. Possible, but doesn't seem that likely. While Adobe has made a lot of decisions in the last few years that I consider poor, I haven't seen any evidence of this level of gross ineptitude

  2. They have leverage to use against Apple, or some reason to think Apple will allow them to do this. Perhaps, some kind of "ace in the hole" that Apple really wants? Perhaps a 64-bit version of their main CS5 apps, like Photoshop and Illustrator?
I don't know. Obviously, Adobe's not going to tell me anything, but one has to wonder if there isn't more to this than meets the eye.

Kamis, 08 Oktober 2009

Louis Gerbarg on Flash for iPhone

The day that Adobe announced Flash CS5 with iPhone support, I took apart several of the Flash-generated iPhone applications and tweeted my findings. Louis Gerbarg has done a more detailed dissection of the Flash-generated iPhone ipa files (the actual file that gets downloaded from the App Store) than I did. He found the use of multiple (about a dozen) private API calls being used after doing what he calls a "cursory examination". His opinion of the size of the applications jived with mine as well (unnecessarily bloated), and he throws in some more concrete evidence showing that these apps do, in fact, perform poorly on iPhones prior to the 3Gs.

Louis' findings would cast some doubt on Adobe's claim that they didn't do any reverse engineering. Of course, in my mind, there already was a fair amount of doubt on that point.

Rabu, 07 Oktober 2009

More Flash Thoughts

There's been a lot of interesting discussion around the whole Flash CS 5 generating iPhone Apps thing. None of it has changed my opinion that it's in Apple's best interests and ultimately the best interests of iPhone users for them to take steps to stop Adobe from moving forward with this, or at least for Apple to set some boundaries with Adobe and phase the program in over time to avoid overwhelming the App Store infrastructure. The problem is multi-faceted, which can be confusing. To me, it seems to break out into a couple of related, but distinct issues:


  1. Technical: Are the applications generated by Flash 5 as good, or at least "close enough" to being as good as those created using Xcode? It's not a simple question, because even the best tools can be used to generated sloppy, bloated executables, but it's still important to get a sense of whether the typical Flash-generated application is going to be comparable to the typical applications created using Xcode. It's an unanswered question. I'm sure Adobe is going to argue that their applications are just as good. I, and many other developers who have been working with the platform since it came out are going to be somewhat skeptical of that claim. How likely is it that they've been able to add an extra layer of complexity, including a garbage collector, and not incur any additional overhead? Probably nots possible, but the question then becomes: just how much overhead does it add? Is it enough to really matter?

    This is just an educated guess, but with first and second generation iPhones, I'm going to bet it will matter, and the simplistic nature of the Flash apps already on the App Store does little to dispel that notion. If the apps were really "just as good", they would have put a sample up that really showcased what they could do rather than just showcasing the fact that they could do something. If they were just-as-good, Adobe would have wowed us with a 3D game or something else that really pushed the limits of the iPhone's hardware. Even on my 3Gs, I thought the Flash iPhone apps all felt a little sluggish compared to what I'm accustomed to.

    Unfortunately, we have no objective data on this point right now. We have no way to take an app generated by Flash CS 5 and the same or similar app ported to Objective-C and compare them in meaningful ways. If someone would be willing to compile a version of a iPhone apps with debug symbols on, I might be able to get some hard data using the performance tools. As things stand, though, we have no objective data, and without that, it's all conjecture. We could argue forever, and neither side will concede anything.

    In my mind, there's enough reason to believe the apps won't be "as good" technically speaking, that it's fair to put the burden of proof on Adobe. They should prove that these Flash-generated apps are capable of being just as good or at least identify how close they are and support that claim with verifiable data. We already know the file size of the Flash-generated apps are considerably larger than comparable Objective-C apps created with Xcode. Subjective evidence seems to point to the apps also being slower. I'd like to see some hard evidence so we can judge them more fairly, but until some exists, I think it's a fair assumption that these Flash-generated apps are not as good and the differential is enough to matter. If somebody wants to prove me wrong, I'd be thrilled to see some hard evidence so we can discuss this intelligently. If I am wrong, believe me, I will be suitably impressed by the engineering that went into it.


  2. Logistical: There is a very large installed based of Flash developers and a large amount of existing content. The popularity of the App Store has already caused significant growing pains. The team responsible for doing App Reviews is overworked as it is and are doing a thankless job. Allowing existing Flash developers and existing Flash content to flood into the App Store almost overnight is bound to cause significant issues for the App Store infrastructure and the people responsible for maintaining it. That, in turn, will cause problems for customers and developers alike.


  3. Equitable: Related to the previous point, this flood of new content literally overnight is going to have a significant and detrimental impact on existing developers. You know, the ones who invested the time and effort to learn the platform and native tools? Those developers who will be penalized for that effort by having longer wait times and a lot more apps to compete with for attention. It's unlikely that the size of the App Store pie is going to increase measurably as a result of the influx, so an influx of new apps is inevitably going to dilute the chances for any single application to make a profit. It hardly seems very fair that the people who actually put effort into learning the platform and who have dedicated themselves to the platform won't be able to reap the benefits of that hard work without putting in addition effort to figure out how to get noticed above a sea of quickly-ported Flash games. Contrariwise, it hardly seems equitable to reward those who couldn't be bothered to learn the native tools.


  4. Political: Adobe and Apple long ago stopped being BFFs and have been in a somewhat contentious coopetition situation for quite some time. Apple made it very clear to Adobe on a number of occasions that Flash was unwelcome on the iPhone, and yet Adobe has continued to push ahead with an amazing disregard for that, fueled by what seems like a tremendous sense of entitlement: a feeling that they have a right to benefit from Apple's success with the iPhone even though they did not contribute to it in any way. The part that really doesn't sit right with me is that Adobe isn't being up front with their developers about how risky the situation is for them as a result of the politics of their relationship with Apple. Adobe didn't create Flash CS5's iPhone functionality with Apple's consent or knowledge. In fact, they did it despite being specifically told Flash wasn't welcome. That's pretty fucking rude. It's like inviting a million people over to somebody else's already-jam-packed party. Throw your own fucking party, man. Seriously. And the whole sneaky way Adobe went about putting their apps into the App Store just reeks of dishonesty. It's ends-justify-the-means thinking and it really does not endear me to Adobe at all.


  5. Legal: Despite Adobe's claims, I'm incredibly skeptical that they could have created the tools needed to generate iPhone apps without using Apple's toolchain at all given the amount of time it took them, unless they had access to the SDK and violated the legal agreement that they had to agree to to get access to it. Apparently, Adobe management is reassuring their employees internally that they respected the SDK agreement to "the best of their understanding" and are claiming that they didn't reverse engineer anything. I suppose it's possible, but it's improbable to the point of ridiculousness and I don't buy it.

    That Adobe could have figured out how to link to and use objects and functions from Apple's frameworks and figured out what to link to without some amount of reverse engineering just stretches credulity given how much of the iPhone's internals are not documented officially. Adobe's trying to make it sound like it was just a matter of compiling down to ARM assembly code and they didn't need to reverse engineer anything to do that. But it's not as simple as that. These generated applications have hooks into many of the existing Apple frameworks, including UIKit, OpenGL ES, Quartz, Core Animation, and Audio Queue Services. They are leveraging Apple functionality to do a fair chunk of the work, which means Adobe did more than just compile ActionScript to execute on the iPhone's ARM processor. A lot more.

    Even if they didn't reverse engineer anything, I would put forth that Flash 5's iPhone application generating ability IS a derivative work under section 2.5 of the iPhone SDK agreement. This would seem to be precisely the type of thing that Apple was trying to prohibit when they put that clause in the contract, so even if Adobe was completely above-board and did no reverse engineering, I think there's still grounds to allege they are in violation of the SDK agreement.

    At very least, I would say that there's sufficient grounds for Apple to bring legal proceedings if they choose to. They could very likely get an injunction to prevent Adobe from releasing the iPhone portion of Flash CS 5 if they wanted. I have no idea if Apple will go this route. I honestly doubt it's their first choice for dealing with the situation, but it's an option that's available to them and, therefore, is an added risk for Adobe and any Flash Devs who choose to use it.


It will be interesting to see how things unfold. The technical questions will eventually be known. At some point, we will be able to compare Objective-C and Flash-generated apps and get some concrete data about their size, efficiency, and performance. For the rest of it, the ball is really in Apple's court. Until Apple makes their next play, we don't really have an inkling of how this will all play out. Everything from Apple embracing Flash IPhone apps to an all-out war with Adobe is within the realm of possibility.

Selasa, 06 Oktober 2009

This Made Me Laugh

Sometimes 140 characters is just enough to make a point. If you don't get the reference, AOT is the term Adobe is using to describe what they're doing to avoid JIT compilation, which the iPhone SDK doesn't permit.

Sue Me, I Think Developers Should Care

James Higgs has a different take on MonoTouch and Flash for iPhone. You should read it. It's good to see other points of view.

That being said, I can't say that I agree with most of it. Indeed, I feel like James is missing the point and misrepresenting the point of view of well-respected members of the Objective-C community by cherrypicking individual tweets. The fact is, I agree with both tweets referenced in his blog post, even though they come off as a little crass and even elitist without context and given that the authors had only 140 characters to make a point.

To highlight my main difference with James' opinion, let me respond to his concluding paragraph that he seems to think no reasonable person could have a problem with, and tell you my problem with it:
It boils down to this: if MonoTouch and Adobe’s Applications for iPhone platform are no good, they will die. Developers who use them will sell fewer apps in the App Store. Objective-C developers will carry on developing apps in their preferred style and creating apps that sell well. But if the rival techniques are sound, everyone gets to write great iPhone apps, and the result is happy users, and an even wider adoption of the iPhone platform.
Here's the key point missed. It doesn't boil down to that. If MonoTouch and Flash for iPhone are no good, they won't die for a reason James himself pointed out earlier in the same posting: the users don't know or care how the application was created. If MonoTouch and Flash applications are slow and crash or use gobs of memory or break under future versions of the iPhone OS, the end users aren't going to take away a negative impression of Adobe or Novell, they're going to think "Apple Sucks". They're going to blame the iPhone. It will affect the users' opinion of the individual developer, sure, but first and foremost it's going to affect the users' opinions of the iPhone as a platform.

I'm pretty sure Apple will have a problem with that. If one app sucks, it's no big deal. If there are hundreds or thousands of apps that all break or perform poorly, that's going to impact the overall perception of the iPhone.

I, personally, have a problem with a developer who feels entitled to be able to develop for a platform without investing the time to learn the language or frameworks that platform was built around. Languages affect design. Objective-C has greatly affected the design of the iPhone application frameworks and, indirectly, the experience of iPhone users. If you can't be bothered to learn that, to understand the iPhone experience completely, that tells me that you just want a piece of the pie. You see something that's been phenomenally successful, and you want to be able to take advantage of Apple's success to make some fast money, but you're not willing to understand at even a superficial level the engineering that underlies that success.

This is vitally important on an embedded device. On a desktop computer, we can tolerate Flash because we have crazy fast processors, gobs of physical RAM, and full virtual memory. On the iPhone, the processors speeds are about ten years behind the desktop, we have a fraction of the RAM, and volatile memory won't get paged out to swap, so memory use and processor use are vitally important. Yet I should be "okay" with someone who wants to develop for the platform and is either ignorant or cavalier about these things? I don't think so.

A few paragraphs earlier, James says
Like me, many developers will welcome the chance to learn a new language and a new platform But many will just want to write an app and get it into the hands of their users as quickly as they can. (emphasis mine)
Exactly. That's exactly what I have a problem with. Getting an app into a users hands as quickly as possible is not a virtue. Getting an app to the user when it's done, and good, and well-tested, and performing well is. I don't want this mentality. I want developers like Snappy Touch, who obsess over the user experience. I want developers like Imangi, Flipside 5, Tim Haines, and the countless others who cared enough to dive in and learn the platform, learn the language and tools, and deliver great user experiences on the iPhone despite having to learn to do it. I want developers who care. Developers who care, care enough to use the right tools and invest time learning about their platform and about the users of that platform.

Part of the iPhone's success is exactly because there is an obstacle to entry for developers. It's not insurmountable, in fact it's pretty darn low, but it has tended to keep out the worst of the opportunists and hammer developers, and that's been a good thing. It's not a perfect environment, but it is pretty awesome, and it's a darn sight better than it would be if flooded with people who can't be bothered to learn a bit about the platform that they want to milk for all it's worth.

Here's another thought. Even with just Xcode and Objective-C available for building iPhone apps, the app review team at Apple is completely swamped and overrun and has a very difficult job. Do you think flooding the app store with iPhone ports of every crap Flash game in existence is going to help that situation? Hell no. It's going to make the situation so much worse. Now, try and tell me with a straight face that that isn't going to happen the second Flash 5 is released to the public. Of course it is. Every Flash developer is going to raid his or her portfolio for stuff they can quickly throw up on the App Store to try and make a quick buck.

Yeah, gosh, how could anybody not want that? That will make things so much better for iPhone users.

I don't know what Apple's going to do, but if it were me, I would let Adobe know, in no uncertain terms, that Flash apps are not welcome on the App Store and that Flash developers are more than welcome to come learn Objective-C and Cocoa Touch. If I were Apple, I'd be pretty darn annoyed at Adobe's insistence and willingness to resort to borderline unethical behavior to steal a piece of the iPhone and App Store pie, and I would take steps to protect the quality of the user experience on the iPhone, even drastic steps if necessary.

But, I'm not Apple, so only time will tell.

Senin, 05 Oktober 2009

Adobe Adds iPhone Native App Creation to Flash

Today at Adobe Max 2009, Adobe announced the ability to create native iPhone applications using Flash 5. Now, this really has very little to do with my earlier rants about Flash, because it has nothing to do with Web Development. This is about creating native iPhone apps using ActionScript and Flash tools, which get compiled down to ARM assembly. You can find some more technical information about how they do it here and an FAQ here.

It's an interesting development, and I'm not sure what to think about it. At first glance, it certainly seems like a good move on Adobe's part, as it will make a great marketing point for their dev platform. From a realistic standpoint, though, it doesn't change my opinion that you should avoid hammer development principles and should choose the best tools for each platform. Flash has always been a compromise that takes considerable overhead to let you create applications that can run on multiple platforms while feeling native on none and getting native performance on none.

I also think that using this technology carries significant risks until Apple's position on it is made clear. I've seen no indication that Adobe worked with Apple on it and have seen at least one claim that it was done without Apple's involvement, knowledge, or consent. If that's true, it will be interesting to see how this plays out, but I wouldn't advise even touching the technology until Apple's opinion is known.

There are currently several applications on the App Store created with the private beta version of the Flash iPhone SDK. Out of curiosity, I downloaded several of them to check them out.

First impression: the end-user is unlikely to have any idea how the application was created. There's nothing about these Flash-created applications that screams "Flash". They look like pretty much exactly like any other immersive iPhone applications. That's good.

The next thing I noticed is that none of the applications are particularly advanced or feature things that would tax the hardware or need to leverage the GPU - no 3D rendering, no crazy amounts of animation, no particle generators. They seem to have the equivalent functionality to Flash games from seven or eight years ago though, to be fair, these are early beta experiments, and I probably shouldn't read too much into that. But, these first examples do feel a little sluggish for what they are.

The applications are also bloated for what they are. That Roach Game is nearly ten megs in size for a game that lets you squash roach silhouettes. Red Hood (App Store Link), is twelve megs in size for a point and click game that shows two static images and you have to find the differences. It's little more than an interactive Highlight magazine on the iPhone, with better artwork. The size is an important thing, since apps over ten megs can't be downloaded over wireless connections from the phone and most people buy over wireless. I would bet good money that these applications, rewritten as a native App, would be at least half the size. Which, of course, makes me wonder why there's so much extra code if there isn't an interpreter or JIT compiler in there. But Adobe claims there isn't and that this is compliant with Apple's 'no interpreters or compiler' term of the SDK. I'm not sure I buy that. I'm not sure Apple will either. I suspect there will be a lot of scrutiny applied to the binaries they produce, at very least.

As I dug in further, I noticed that everything gets compiled into the executable. In a typical iPhone application bundle, all the images and sounds files are stored as individual files, separate from the executable, which contains pretty much only the code. If you unzip a Flash-generated .ipa file, you don't see the typical application bundle structure. Other than the splash screen and icon, you don't see any resource files at all, but the executable file is enormous because all the resources are inside of it. This makes me wonder if these Flash-generated apps are memory efficient, which is very important when writing for first and second generation phones. It's not impossible that they could be, but this doesn't seem like the best storage option for an embedded application.

Digging in even more, I noticed that the images in these apps are PNGs, as recommended for iPhone development, but are not byte-order aligned with the iPhone's video memory (GBRA instead of RGBA). So, Flash iPhone apps would appear to get all the disadvantages of the PNG file format, like no lossy compression, without the advantages you get in Xcode-generated iPhone apps (byte alignment to speed up blitting).

The binary executable inside these Flash apps does link to a number of the standard iPhone frameworks, including UIKit (which Flash developers can't access directly according to the FAQ), Audio Queue Services, Core Graphics, and OpenGL ES. Supposedly these Flash apps can leverage hardware acceleration, which the linking seems to support, though the application performance seems to undermine.

Certainly, many Adobe Flash/Flex/Air devs who are scared by Objective-C are celebrating today. I think that celebration should be tempered with a note of caution.

I'm curious to see Apple's reaction to Adobe's back-door insertion of Flash apps into the store before publicly announcing the technology. That was a smart marketing move on Adobe's part - if Apple doesn't yank the apps, it validates Flash as an iPhone dev tool, but if Apple does pull them, they give Adobe assloads of free publicity in the process. Brilliant… in a skeevy sort of way.

Of course, since Adobe doesn't appear to be doing this in partnership with Apple, then it seems unfathomable that Adobe could have accomplished this feat without having violated the iPhone SDK agreement, specifically section 2.5 which prohibits reverse engineering or redistribution of any of the SDK components as well as the creation of any derivative works. Heck, I think you could argue that Flash 5 with iPhone support IS a derivative work under 2.5, and if it's not, there was no way they could have created it without reverse engineering parts of the SDK.

My guess is that Apple won't take kindly to Adobe reverse engineering certain undocumented parts of the SDK. I'm curious if Apple will confront them, and if they do, if it will be directly, or if they'll just do what they did with Palm and make it so Flash-generated iPhone apps stop working. Given how different the application bundles are between an Xcode-generated application and a Flash-generated iPhone application, it would be trivial for Apple to do that, if they wanted to. Heck, it's even possible that these apps will break on future versions of the SDK just because their bundles are different even without Apple doing anything intentional.

If I were a Flash developer, I wouldn't cheer just yet. This looks like a risky proposition to me at present. Adobe and Apple are still acting in an antagonistic fashion toward each other. Adobe could very well have crossed the line here. There are both legal and technical options open to Apple to prevent Adobe from doing this if they choose to. Will they? I honestly don't know. Apple still makes money from apps that are created with Flash tools, so they might just ignore it and take their 30% cut quietly.

But my gut says they are probably not going to do that. If I had to bet, I'd bet that this isn't going to sit well with Apple, and isn't going to play out well for Adobe. I think I would avoid using Flash for creating iPhone apps until and unless Apple gives the process some kind of blessing. Until that happens, it's just darn risky. Your apps could just stop working. They could get yanked. They could act oddly with future releases of the iPhone OS. I'm not saying any of that will happen, just that it's a risk that Adobe's not being up front with Flash developers about.

We do live in interesting times.

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | Lady Gaga, Salman Khan