Posts in Category "AIR"

New TabSample App

The TabSample app I posted three years ago has gone horribly stale.
Here’s a new version, with no additional features other than compiling nicely with the Flex 4 SDK.
TabSample.fxp
Thanks to xbrotherx on the AIR Forum for caring enough to post about it!

Privileged Modules: HOWTO validate signatures

In previous blog posts and presentations, I’ve talked about the need to do signature validation before importing a module into an AIR application. People asked for specifics, but I haven’t managed to figure out all the details and document them well enough for common use.
Luckily, Charles “Joe” Ward has figured it out. Joe’s article on the Developer Center walks us through the steps needed to validate the signature of a resource, and how to sign the resource in the first place using ADT or our own Java code.
Using these techniques, it’s possible to load privileged modules into your AIR app. Download the module files (SWFs, say) along with their signature files. Store them somewhere local (app-storage: is good, app: is bad). Validate that they’re really the modules you developed and signed, then import them (using loadBytes() with allowLoadBytesCodeExecution enabled).
Read “Creating and validating XML signatures”.

MAX2008: Maintain Security With Adobe AIR

That was the title of the session I did with Peleus Uhley on Wednesday. It’s always fun to talk about security, especially with such an informed audience. Hopefully it was fun for them, too.
It’s taken longer than I’d hoped but the slides are available here as PDF.

UPDATE 2012/05/28: Updated the link to the PDF, which got busted in blog migration.

Quick, Cool Links

There’s been a lot going on lately, even without counting a great week with the onAIR tour in Europe. Each of these deserve a full post with captivating details and insider insight. But instead I’m going for partial credit, just getting everything out there.

AIR 1.1

AIR 1.1 went live last night, bringing international and localization support to AIR. This means that users get an application install experience best suited to their language, and developers can craft apps that are similarly localized. Christian and Jeff wrote articles showing how to do just that; check out the AIR Developer Center.

Update Framework

It’s crucial for applications to be able to update themselves. Users expect seamless growth as new functionality is added. Update is also a security safety valve. If an application has a vulnerability, it can update itself to a safe, patched version. Serge Jespers gave a great presentation about update for the onAIR tour.
Now there’s a new Update Framework available on Adobe Labs, making it even easier to do the right thing.

Security Talk

In Warsaw last week, Kevin Hoyt was nice enough to tape my talk on security. Yesterday, he made the audio available on his blog.
I can’t say enough about how educational and fun the onAIR tour was. The attendees’ engagement and expertise was really humbling. Developers are digging deep into AIR and pushing it to the limit, while suggesting great improvements to make development more and more elegant. The evangelists are always great to talk to, and are even greater to travel with.

AIR Cookbook

I just learned about the AIR Cookbook on the developer center. This is a great place for people to share the “recipes” they’ve created for working with AIR. After seeing some excellent techniques in action the other week, I’m sure the cookbook will become a valuable tool for developers of all levels. Delicious!!

European Vacation

This is going to be fun. Hot on the heels of shipping AIR 1.0, I’ve been given approval to join some excitable evangelists and other eloquent luminaries on the AIR Tour in Europe.
For one week in June, I’ll join the tour, presenting in Stockholm, Berlin and Warsaw. It’s always a blast to meet the developers who are pushing the envelope of rich apps. And it’ll be especially fun meeting them in parts of the world that are entirely new to me. From this desk, it’s sometime hard to feel the true scale of a global community.
I just need to find someone to keep an eye on my cube….

AIR 1.0 is Live

It’s been years in the making, but AIR 1.0 has left the building!
I’m so proud to have been a part of the development of the product. And it’s unbelievably exciting to see how many people are excited about the possibilities for rich cross platform internet applications on the desktop.
This product would not have been possible without the devotion of the community, who labored always to keep us on target. From early on, we had pros like the inimitable Mike Chambers reaching out to the community to show that the team was listening, and reaching into Adobe to make sure that the team really was.
Now that the bits are live, the big challenge begins for everyone — show the world how great experiences can make a difference.

Tear-Off Tabs into AIR Windows

Just for fun, I built this custom component to support tearing a tab off into a new window.
It’s anything but polished, but it can’t hurt to share, right?
Download the AIR file, or download the source.
Runs on AIR Beta.

Uses of multiple windows in AIR

For years, I’ve wanted to add one feature to the Flash Player: support for multiple windows. The feature really only makes sense when dealing with desktop apps, and I’ve been lucky enough to add the feature for AIR.
One aspect of multiwindow programming is key to making the whole package fun to use. But it’s a subtle thing and not many people know it. There’s no artificial barrier between your windows. The code you associate with your windows can all exist in the same “namespace” (they’re called ClassLoaders in Java; ApplicationDomains in AS3).
There’s no need to have a separate SWF or HTML file for each window. It’s much cleaner to just create windows as needed and populate them with DisplayObjects.
We haven’t seen many examples yet, but I believe this rich programming model will lead to even richer interactions. Let’s brainstorm some of the cool ways windows can be used.
Splash Screen: When the app launches, an attractive splash screen fades in in the middle of the screen. A nice opportunity to establish branding while also giving startup progress feedback to the user.
Tear-off Tabs: grab a tab and drag it out of the window. A translucent image shows where a new window will be created. Release the mouse button and a new window is created.
Docking Windows: As you move a window, it naturally docks to the edges of the screen and to other windows in the app. Once docked, you can move multiple windows at once. I’m thinking about Winamp and Trillian’s windows….
Auto-hide Toolbars: Already docked to the side of the screen, the window can slide offscreen when you move your mouse away. A small indicator reminds you that something’s there. When you move your mouse to the edge, the window slides back. Here I’m thinking about MS Windows Appbars, or Quicksilver’s Clipboard History window.
What else?