Claim Chowder: Cross-compilers Produce Sub-standard Apps

@TiPB reporting on an email from Jobs to a developer:

We’ve been there before, and intermediate layers between the platform and the developer ultimately produces sub-standard apps and hinders the progress of the platform.

@TiPB – Steve Jobs says cross-compilers (like Flash CS5) make sub-standard apps

And let us not forget:

Our motivation is simple – we want to provide the most advanced and innovative platform to our developers, and we want them to stand directly on the shoulders of this platform and create the best apps the world has ever seen.

Apple – Thoughts on Flash

But after one day on the App Store:

Just yesterday Machinarium launched in the iPad app store and it has taken a meteoric rise up the charts to number one. This Flash game has been around for a while on the web and it has gotten a massive amount of praise. Now thanks to the Adobe AIR, the folks at Amanita Design were able to publish their Flash game to iOS.

LeeBrimelow.com – Top Paid App for the iPad is Built with Flash

This is only one game but there are plenty of other examples of great apps built with Flash not just running but performing well on iOS hardware and doing well in the App Store.

I love the taste of claim chowder on Friday evenings. 😀 As Lee stated, this story will not get the positive press it deserves; even though the same people love to blog the negative about Steve Apple vs Flash. Tsk tsk.

Adobe Flash Media Server 4.5 Released

This is awesome news! FMS 4.5 brings a TON of features enabling CDNs and content producers to provide iOS support for live, including DVR, and a slough of other things. Just check the notes here:

Key New Features inside Flash Media Server 4.5

–        Same Source Video delivery to Apple Devices and Adobe Flash (single workflows to reach both platforms)

–        On Demand video packaging / segmenting for HTTP video delivery (no need to pre-package your content)

–        Set-level F4M Manifests and Variant M3u8 playlist support

–        Simple and robust content protection workflows for HTTP streaming (as easy as saying on or off)

–        Live PVR/DVR support for Apple Devices and Adobe Flash with Disk Management (don’t miss that special moment in live)

–        Support for Studio-approved DRM with Adobe Flash Access 3 (robust DRM that exceeds your requirements on Desktop and Android)

–        Multicast SSM and ASM, with Multicast re-broadcast

–        SIP Device support for communication

–        P2P support in Flash Media Interactive Server

Sweet stuff! Read more about it and to all of the CDNs…stop upgrading so slow. Get this puppy in production asap!

Flex Mobile: StageWebView Removal

I’m working on a simple Flex mobile app to test out the viability of it as a cross-platform mobile development environment/sdk. This app is a simple master/detail view-based application [based on s:ViewNavigatorApplication]: show a list of items, select an item, see details. That’s it. On the details view there was an issue with displaying the item content so I just used HTML [since that’s what the source data is on occasions]. This was easy enough, after a lil’ googling, with the StageWebView but there were some gotchas.

(more…)

Flex 4 Release Party Preso Recap

Last night I spoke at the AZFPUG and AZCFUG Flex 4 Release party. I am thoroughly happy I did!

What fun it is talking about something you’re passionate about and Flex 4 is definitely something I thoroughly enjoy working in and talking about. With that said, most of what I talked about was pulled directly from Flex 4 in Action. I had my fair share of plugs for the book throughout the meeting. 😉 Hey…it is a great book, biased or not.

Technically something always happens and, according to @nathanstrutz, I didn’t have enough dongles. 😉 I was missing my display connector(s) but thankfully @simpulton saved the day by bringing a couple and one worked. Big props to Ron Haberle for buying one. It wasn’t the right one but the effort must be awarded some kudos.

One example failed to work. It was about rotating an image around the center and the rotate not affecting the layout. Well…I ran the same exact code today…worked! BOGUS! To demonstrate, I put the code online for all to see how it works (view source is included). For simplicity, here is the mxml for the swf:

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
               xmlns:s="library://ns.adobe.com/flex/spark" viewSourceURL="srcview/index.html">
  <s:layout>
    <s:VerticalLayout paddingLeft="100" paddingTop="100" />
  </s:layout>
  <fx:Declarations>
    <s:Rotate id="effect" target="{image}" angleBy="45" 
              applyChangesPostLayout="true" autoCenterTransform="true" />
  </fx:Declarations>
  <s:BitmapImage id="image" source="@Embed('images/flex.jpg')" />
  <s:Button id="mybutton" label="Click Me!" click="effect.play()" />
</s:Application>

Other than that, everything was pretty smooth and I filled up 2 hours showing off Flex 4 and Flash Builder 4 goodies. What’s crazy is I had even MORE to talk about. Flex 4 is a beefy upgrade and solves so many problems. It shines a light on the fact that more online tutorials, videos, etc are needed. Ahem…maybe I’ll get some done soon. 🙂

#azfpug and #azcfug, thanks for having me. Catching up with everyone was a true treat. Keep rockin’ guys and keep @simpulton out of the weight room. That dude is lookin’ buff!!! lol

UPDATE

Here are some tweets about the preso:
@lavonwoods – here
@simpulton – here
@bwohl – here and here
@nathanstrutz – here
@alanrother – here

iPhone Packager apps are blocked…what next? #331rally?

Aight…Apple’s turned in 3.3.1 and I’ve accepted it. What next?

Adobe has publicly stated they are not removing the iPhone Packager from Flash CS5. This means people will still see the feature. It means they will use the feature. It means apps might still get pushed to the App Store.

The big question for those who are 3.3.1 aware: Should we still build iPhone apps with Flash CS5?

Let’s talk rally for a sec. Oh wait…maybe I should say: Good people of Flash Land…lend me your ears! 😉

(more…)

Flash CS5 export to iPhone: Solutions Convo

I’ve talked about this a few times but wanted to put it on “paper” to hopefully spark a convo.

Pretty much all of the interwebs have heard about Flash CS5 exporting iPhone apps. Just peep the Bing results to see how many folks have already commented. With over 245,000 search results, why make it 245,001? Well…I have some thoughts and I feel as a hardcode Flash dude it might be an interesting perspective.

Beyond just pointing out + and – points I want to offer suggestions. Everything, almost literally, I’ve seen has either been HOORAH or THIS SUCKS but not much between the fold and very little suggestions on how to convert some THIS SUCKS folks to the HOORAH side. Hopefully my perspective and suggestions will help do just that, if Adobe listens.
(more…)

AIR 2.0: My Wishlist

I’ve been thinking about AIR a lot more lately and it prompted me to think about what 2.0 might provide us in ways of building better AIR apps. So, here is a short list of items I think AIR needs in order to make me happy.

  1. FTP support
    I know…AS3 provides the tools for ftp support and there are a few libraries started but stop depending on the community Adobe, for this one not everything. We need this natively in AIR. Maybe not SWF but AIR for sure needs this.
  2. External executable interaction
    In the simplest form I want to tell ApplicationX.exe or ApplicationX.app to run and pass parameters to it (blah.exe -param value). I know there are security issues and cross-platform compat’ issues but it’d be great if you figured this one out.
  3. Direct database interaction
    At a minimum MySQL, SQL Server, and Oracle. Make the core extensible so we, the community, can grow the available database support but lay the groundwork. You already have a solid sqlite core so build on top of that code-base and allow us to specify a type or something.
    Pseudo code:
    connection = new SQLConnection(SQLConnection.MYSQL, …)

    I know…buy ColdFusion right? Use PHP? .NET? Java? Nix those assumptions. If we want to use them, great, but not in all cases do we have a web server at our disposal. Keep making server integration better but don’t force a desktop app to use a server.

  4. Email Support
    This is just like the FTP support. I know you guys have the tools in place and say it is possible. Well, show us. Provide us with the tools to email directly from AIR. This is a serious need. We don’t need to setup a full web server just to send emails. In some cases, this isn’t possible or is utterly painful and takes forever (especially at big orgs).

    I should be able to use full smtp, pop, and imap. Those features would provide a TON of support for a solid number of AIR apps. In AIR 3.0 extend it to integrate with Exchange, etc. Heck, do it in 2.0 if you have the time. 😉

  5. External library interaction
    This is tricky but would blow my mind if it were possible. Basically let me instantiate a DLL , perl script, etc and have it do something for me. I know DLL isn’t cross-platform and the system may not have perl but those are things we, the developers, will have to account for in our own apps. Give us the rope…let us hang ourselves. 😉 No need to allow separate installs bundled with our app (like the .net framework or install perl) but at least being able to use outside code to fill the gaps where AIR lacks.

    If you provide this one, 1-3 above aren’t as important anymore.

  6. Webkit plugins
    Silverlight and Java at a minimum. It isn’t that I want to build a full blown browser or anything…I just want to be able to support the mass majority of sites out there. Think of the press, “Run Silverlight in AIR” would be all over the blogosphere. 😉 hint hint, wink wink. lol Ok…bad argument but it would still open AIR to a broader audience of sites.
  7. Better installation bundle
    We REALLY need to be able to default files to specific locations on install. Right now I can bundle config files with my app and on Windows they go to the location as bundled (ex – bundle in configs/ and on they are in [app folder]/configs/ on Windows) but on Mac they are embedded in the .app file. Someone has to know to view the package contents to get to it. Let me specify whether I want it bundled in .app or in a specific location.

    Yes, I know I can use AS to write the files or download then save but that shouldn’t be a requirement. We need more control over the installation.

  8. Multi-“version” export
    This one may be pretty specific but I need to export an AIR file pointing to the QA environment. Once it passes QA, I need the same build pushed to production now pointing to production resources. I’d really like a way to, in the export process, specify different builds. So, a QA build bundled with 1 config and a Production build bundled with another. I know I can simply do two exports right now but I’d prefer to have this functionality native to Flex Builder. This also includes 1 -app.xml vs another. QA may have a different app title or something. I’d like to export these builds accordingly without having to manually change things back and forth each time.
    Now, if the Builder option isn’t available, I’d like a way, on the server, to dynamically update an AIR file so the automated processes for pushing to production is seamless. This does not include building the source again, not a valid option. The process, in my case, is completely automated.

I’ll leave it at that. If AIR beefed up to provide most of these there would be an uproar of praise. If no one else uproared with me, you’d still have an army of 1 supporting you. 😉

Let’s see what 2.0 brings. 1.x has been great and I’ve enjoyed working with it but it is time to “beef up” in 2.0. We need much more than what AIR currently offers for true enterprise applications, heck even some small to robust apps need the above.

Use dynamic xml namespaces

Let me start by saying the move to AIR 1.5 was NOT(!!!!) an easy task. For whatever reason my entire app acted different than it did in 1.0. I don’t know why but it did. Maybe it is more of a Flex 3.2 issue…not sure. Either way, I’m working through a ton of odd, post-upgrade bugs. One of them existed in an old version of the AIR Remote Updater classes. I almost scrapped it and wrote my own but figured I’d look into the source and see if it is an easy fix. Well, it was. It is a simple issue of a hard-coded namespace.

(more…)