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?

Summary: MAX Advanced Apollo Application Development

First off, thanks to everyone who came to Brent and my sessions at MAX. We had a great time doing them. It was a blast to meet so many people I’ve only known from email lists and blogs. People seemed really interested and excited in Apollo. Judging from the great questions, a lot of people had put some hard thought into what it’ll take to make Apollo successful.
I’m sure the final slides will get posted somewhere central, but I’d like now to summarize the key points of our presentation.

Continue reading…

MAX2006 Keynote

I’ll leave the detail-heavy blog posts to someone else. Brent and I still have to finish up the demos for our session this afternoon. But I want to get some thoughts down while the impressions are still fresh.
The strongest theme running through the presentations was the integration of separate products to support real workflows. Fancy products like Flash and Photoshop and ColdFusion can be used creatively to do almost anything. That’s great power and freedom. But it doesn’t mean that the most common tasks can be ignored.
I was especially impressed when Sho Kuwamoto demo’d a workflow between Illustrator and Flex Builder. Using well-designed assets in Illustrator, he mapped those to Flash symbols which were used to skin Flex components.
Focus on that kind of developer experience will be huge for the Flex community. By optimizing the common task, designers and developers will be able to make their Flex apps more distinctive. Can’t wait to try that out!

Sessions at MAX

I’m excited to be going to MAX next week. As always, it’s great to get out and talk to real live users. I’m also going to be doing a session with my teammate Brent: Advanced Apollo Application Development.
The session description isn’t totally accurate, but we will be talking about some of the newer features that have made their way into Apollo. I think we’ll be doing some live development, too, as well as prepping folks for things that are coming down the line.
I’m going to try blogging a lot more. The medium hasn’t really caught hold for me yet (as a writer, that is). I’m jumpstarting the whole thing by posting whether I’ve got good stuff to say or not. If it’s boring, no one will link to it. I’m OK with that.

Working on Apollo

It’s been a long time since I’ve posted, but it’s time to get back out in the world. I’ve been fortunate enough to be working on Apollo. Things are coming along great and there’s increasing discussion about Apollo in the blogosphere.
My plan is to use this page to comment on people’s discussions, and to add new topics to the fray. Apollo will be opening up cool new opportunities for web developers, and I hope to share my excitement.
Talk with you all soon!

Custom Context Menus in Flash 8

I was reminded by some comments at Tinic’s blog about the hassles of making custom context menus in Flash. If a parent movie clip and a child movie clip both have context menus set, the parent’s menu is always shown, even when clicking on the child.
At least that’s how it used to be….

Continue reading…