air

Mar
14

lita_iconI have been working on a couple of AIR applications, one of them being Airbob an open source Cruise Control monitor tool. This was the first AIR application I wrote way back when Adobe AIR 1.0 was released. For local data I also used SQLite which is very useful for saving state and preferences of your application.

There are several administration tools available, but none of them were really that good. David Deraedt wrote a complete SQLite Administration Tool using Flex and Adobe AIR called Lita, and it is very good and pretty useful when you need to dive into thise .db files.

Check out the list of features:

  • A free, multiplatform administration tool for your SQLite Databases
  • Open, create, compact databases
  • Create, rename, delete, and empty tables
  • Create, rename and delete columns
  • Create, modify and delete records
  • Encrypt or reencrypt your databases
  • Easily run your custom SQL statements
  • Create and delete indices

Screenshot:

lita

So great work David, and for more information about this tool and the install link, got to his blog.

Mar
10

I am currently working on an AIR application developed using the Flex 3 SDK. The problem I am facing now, is that I need to restart my application from code. This sounds very easy, you would think. My first guess would be that there should be a method on the NativeApplication object like:

NativeApplication.nativeApplication.restart();

But this method does not exist. There is an exit method, but no restart method. So I “googled” around and came to some interesting articles describing how to do this.

The Joy of Flex blog wrote an article “Can an AIR application restart itself?” I tried it out, but this did not work for my project. The code actually steps through the methods but the application never restarts. The article also says that there are serious problems with this approach. So probably I am in the case where the exit beats the launch.

So my next approach was this article by David Tucker: “AIR Tip 11 – Launching an AIR Application from an AIR Application“. It actually described how to launch an AIR application from another application. This is what has been used in the first article, so back to start.

Then I found this interesting peace of code on Flex Internals:

package
{
  import mx.core.Application;
  import mx.core.WindowedApplication;
  import adobe.utils.ProductManager;

  public function reboot():void
  {
    var app:WindowedApplication =
        WindowedApplication(Application.application);
   
    var mgr:ProductManager =
        new ProductManager("airappinstaller");
   
    mgr.launch("-launch " +
        app.nativeApplication.applicationID + " " +
        app.nativeApplication.publisherID);
   
    app.close();
  }
}

Also make sure that the “allowBrowserInvocation” option is turned on in the AIR application descriptor template:

<allowBrowserInvocation>true</allowBrowserInvocation>

So this was actually what I needed, and it worked!
Any feedback is appreciated :)

Feb
05
Posted by Alain at 9:32 pm

amd_flash3At Nascom we are currently looking for fresh faces. At the moment there are several positions available. If you are interested to work in a team of talented developers and designers that do cool stuff with the Adobe Flash Platform, please contact us. As a Flash Designer you will be responsible for creating cutting-edge banners and web sites. As a Flash Developer you will be building rich internet applications and web sites using frameworks like Flex, AIR, PureMVC, Papervision3D, …

More information about the difference between a Flash developer and designer can be found in this blog post by Lee Brimelow, Platform Evangelist at Adobe. You can find more information about these jobs and the other available jobs here.

code_smI recently discovered the Starred Projects feature in Google Code. As a developer I don’t want to write everything myself because there is already so much out there. The following list contains libraries that every Actionscript developer doing Flex should be aware of their existence:

  • antennae: Templates for building complex Flex projects with Ant. I have been using ANT for a while but have to check out this project to see if it can make things easier. It has been around for a while.
  • as3corelib: A must know library. The corelib project is an ActionScript 3 Library that contains a number of classes and utilities for working with ActionScript 3. These include classes for MD5 and SHA 1 hashing, Image encoders, and JSON serialization as well as general String, Number and Date APIs.
  • as3crypto: As3 Crypto is a cryptography library written in Actionscript 3 that provides several common algorithms. This version also introduces a TLS engine (TLS is commonly known as SSL.)
  • as3xls: Project that makes it possible to read and write Excel files in Flex. The example on the site does not work with my Excel file, but still it could come in handy.
  • as3yaml: as3yaml is an Actionscript 3 YAML 1.1 parser and emitter.
  • facebook-actionscript-api: The Facebook Actionscript API provides an interface between the Facebook REST based API and Flash/Flex based applications.
  • flash-thunderbolt: ThunderBolt is a logger extension for ActionScript 2 and 3 applications using Firebug. For logging without Firebug, especially for AIR applications, check out the ThunderBolt AS3 Console.
  • flex-object-handles: A very common UI element found in many applications are those little square handles around an on-screen object that allow you to move & resize it.
  • flexcairngorm: Extensions for the Adobe Cairngorm MVC Framework.
  • flexcover: Flexcover is a code coverage tool for Flex, AIR and AS3. It incorporates a modified version of the AS3 compiler which inserts extra function calls in the code within the SWF or SWC output file.
  • flexlib: The FlexLib project is a community effort to create open source user interface components for Adobe Flex 2 and 3.
  • flexundoredo: The Flex UndoRedo Framework provides all the facilities that you need for implementing undo and redo within your applications. The Framework can be used with or without Cairngorm.
  • gaforflash: This is an ActionScript 3 API for Google Analytics data collection.
  • openflux: OpenFlux is an open-source component framework for Flex which makes radically custom component development fast and easy.
  • papervision3d: Open Source realtime 3D engine for Flash.
  • swizframework: Swiz is a framework for Adobe Flex that aims to bring complete simplicity to RIA development. Swiz provides Inversion of Control, event handing, and simple life cycle for asynchronous remote methods. In contrast to other major frameworks for Flex, Swiz imposes no JEE patterns on your code, no repetitive folder layouts, and no boilerplate code on your development.
  • tweener: Tweener (caurina.transitions.Tweener) is a Class used to create tweenings and other transitions via ActionScript code for projects built on the Flash platform.
  • twitterscript: This is an ActionScript 3.0 library for accessing Twitter’s APIs. This was originally code from Twitter, but it is being open sourced so it can be maintained and kept current.
  • urlkit: UrlKit supports Adobe Flex applications that need to expose URLs and window titles in the browser to represent their state. These URLs can be bookmarked, accessed via the Back button, etc.
  • wick3d: Wick3d is a 3D engine in progress for ActionScript 3 my colleague David Lenaerts who does some pretty amazing things :)

The order of this list is pure alphabetic and contains must know libraries and useful stuff that could come in handy in future projects.

Dec
24
Posted by Alain at 5:05 pm

It has been a very interesting year and now might be the time to look back. I did several projects and used a lot of different technologies and frameworks like Flex, AIR, Silverlight, Java, Spring, BlazeDS, … Last year I decided to start a blog because I finally had something to say, or so I thought :) , I became the proud father of a beautiful boy named Robbe, I decided that RIA development would be my path, although I had to make a couple detours.

In the first part of the year I was involved in several Flex projects. The first project was a generic product selector build in Flex that was used by a very well known laptop manufacturer. It was used for a short time because the client decided to go for an AJAX version and my very generic product selector got replaced by the AJAX version. The other project was an internal time tracking interface that used Flex and AIR. We build this tool on top of the Basecamp API. For now the application is only used internal at Nascom, who knows what the future brings. I also released my first open source application Airbob.

Then I put on my other hat and did some Java development using Java, Spring, Hibernate and BlazeDS. We used the OpenAMF library for our server-side communication with Java, but BlazeDS makes the implementation a lot easier. You still had to code the Spring bindings yourself, but the good news is that Adobe is working with SpringSource to build it into the Framework. The other big project I worked on for most of the year was the footballfan.be community site. My role was building the HTML front end using SpringMVC. In a lot of ways it was an interesting project.

In between I did a Silverlight Research project, that has not been upgraded to the Silverlight 2 RTM version yet. The problem is that I used the agTweener library and the source has not been updated after Silverlight Beta 2. So for the time being Benny’s Bus Stop is no more. It might come back in the future if I find a decent tweener library.

So what’s up for 2009? I am reading the book “Beginning iPhone Development: Exploring the iPhone SDK” so that will be a challenge for next year. There are some cool Flex projects in the pipeline, more on that possibly later on. Will there be an interesting Silverlight project? Only Steve Ballmer knows ;)

Happy Holidays and see you next year!

This week I was one of the lucky ones to attend the Adobe MAX event in Milan. I just blogged about the general sessions on the event already at the Nascom blog. So I won’t repeat too much what I said there in this post. I just want to share with you what I got out of MAX for my professional career.

My top 5 sessions:

1. Anatomy of a Seriously Sophisticated Adobe AIR Application: Definitely the best session for me because it showcases the power of Adobe AIR. The presenters Rick Williams and Adam Creeger were involved in the Fiat ecoDrive project. We got a high level presentation about how they organized their development team by using Unit tests and Continuous Integration. The application also added a community aspect by uploading the data to ecoVille, an online community by Fiat.

2. Looking ahead to the next version of Flex: The session was a demo about the new FXG format that is going to be used in the new version of Flex. This basically means that we can represent graphics like shapes, paths, strokes, … in MXML. Also the new components will be based on this new format. Flex will also have better text support. For more information about the new component architecture click here.

3. Looking ahead to the next version of Flex Builder: The next version of Flex Builder (also called Gumbo) will have a lot of new features. The most important features are productivity improvements like generating getters/setters, FlexUnit integration, auto generate event handler functions and more. Te also added Data Centric functionality like being able to use the Client Side Data Management without LifeCycle DS. And last but not least the Network Monitor is back. You can download the Preview version of Gumbo here.

4. Introduction to Thermo and the Next Generation of Flex: Well actually it’s not Thermo anymore the new name is Flash Catalyst. We had a quick feature tour of Flash Catalyst and Flex Builder Gumbo. Exciting times are coming for the Flex developers. Unfortunately the Preview version of Flash Catalyst is only available on Mac for now.

5. Flash Lite3: Learn to Package and Distribute Mobile Content: This session made it clear to me that building Flash Lite application is one thing, getting them deployed on all the different devices is a challenge. We saw a demo of the Adobe Mobile Packager Beta that makes it easier to create packages that can be deployed on Windows Mobile and Symbian.

Some of the other sessions I attended were a bit disappointing because they did not matched my expectations. Maybe this is because Adobe MAX is a commercial event where Adobe showcases their new technologies and products and they don’t want to scare people off, but for me it could have been be a lot more technical.

I had a good time in Milan, got to know my colleagues Rien, Michael and Sakri a bit better. We ended each day with a Johnny Walker at Hotel Johnny. Hopefully until next year somewhere in Europe.

Nov
25
Posted by Alain at 10:31 pm

Nascom has been an Adobe partner for some time now. And because of this partnership we were asked to join them at their booth on Devoxx (formerly Javapolis), the java community conference. I will be there giving a demo of an AIR application we build using Flex. The application is used in house for time tracking and has been build on top of the Basecamp API. Fo the moment the application is not available for download, so if you are interested please come and see us at the Adobe booth on 10/12.

Nov
24
Posted by Alain at 11:28 pm

Last year I was the lucky one who could represent Nascom at Adobe MAX Europe in Barcelona. This year I don’t have to go alone and I will be accompanied by my colleagues Sakri, Rien and Michael. Last year if followed some really interesting sessions and hopefully this year will be as good as last year. There was already a lot of new stuff announced in the States last week. You can read my previous post about MAX for some of the announcements. For me the following sessions are booked in my schedule:

  • Introduction to Thermo and the Next Generation of Flex
  • Adobe Roadmap: Rich Internet Applications
  • Get It from the Source: Visualizations by ILOG Elixir R&D
  • Advanced Papervision3D
  • Anatomy of a Seriously Sophisticated Adobe AIR Application
  • Designer Best Practices with Flex
  • Monetizing Applications with Adobe AIR
  • Experiences That Scale Across Devices
  • Building Enterprise Applications Using Flex, Adobe AIR, and LiveCycle ES
  • Looking Ahead to the Next Version of Flex Builder

See you in Milan.

I just installed AlertThingy, which is a very cool Adobe AIR application that connects to different services like FriendFeed, Flickr and Twitter. The company who build it is howard/baines and just found this very good presentation from Jeremy Baines. It is called “How to build a desktop app from your web app”. The presentation was recorded at the Future of Web Apps conference last week.