Archive for July, 2008

Share stories right from your news reader

Over the summer, my intern Dan Koestler and I decided to get serious about Apprise, a news reader written for AIR. There are a lot of news readers out there, so the natural question is what sets Apprise apart? Here’s a summery of what I believe are our most compelling features:

  • AIM integration. Send stories to your AIM buddies from Apprise rather than copying and pasting URLs into your AIM client. Apprise doesn’t replace your AIM client — it works alongside it to make sharing stories easier and more efficient.
  • Twitter integration. Post URLs to Twitter directly from Apprise. Again, Apprise doesn’t replace your Twitter client, but it makes posting stories to Twitter much faster and easier.
  • Folders. We finally broke down and added folders, our #1 feature request. We now have folders for you to organize your own feeds, but Apprise still automatically organizes posts by author and topic, as well.
  • Automatic feed resolution. It’s surprising how many sites don’t make it easy to find their RSS or Atom feeds. Now you can just enter the URL of the site that you want to aggregate, and Apprise will find the feed for you.

Apprise has several other cool features like realtime search accross all feeds, OPML import and export, Vi keys, and site view. And it finally even got a nice design so it no longer looks like a developer designed it.

You can find Appirse at apprisereader.com. If you already have an earlier version of Apprise installed, you should be able to click on the badge and replace it, but you also might need to uninstall the old version first. This version of Apprise adds auto-updated, so from now on, you’ll get new features and bug fixes automatically.

Continue reading…

Closing all your application windows in AIR

Here’s a little snippet of code I sometimes use in AIR applications to make sure all windows close when the main application window closes. I usually put it in the main application MXML file (the main window of the application). It stops the main window from closing, and closes any other opened application windows first in the opposite order in which they were opened (more recent windows first). Without code like this, if you have any other windows open, even little utility windows, and your main application window is closed, your application will not exit, even if NativeApplication.autoExit is set to true.

this.nativeWindow.addEventListener(Event.CLOSING,
function(e:Event):void
{
e.preventDefault();
for (var i:int = NativeApplication.nativeApplication.openedWindows.length - 1; i >= 0; --i)
{
NativeWindow(NativeApplication.nativeApplication.openedWindows[i]).close();
}
});