Main

AIR Adobe Integrated Runtime Archives

June 10, 2007

Cerchi una consulenza su Flex 3, AIR, Livecycle data services e Java per lo sviluppo di RIA ? E' nata Comtaste Consulting

Dopo oltre un decennio di attività da free lance per lo sviluppo e la consulenza su Flash, Flash Media Server e, successivamente, Flex (fin dalla versione 1) e Flash Lite, ho formato e dirigo un team di professionisti che hanno una profonda conoscenza di queste tecnologie ed un solido background in Java, EJB3, Struts, Hibernate, POJO e Spring in ambiente Java Enterprise (J2EE).
Oltre a frequenti attività di supporto ad Adobe in importanti progetti nell’area EMEA (EuropeMiddleEastAfrica), questo team di consulenza e sviluppo è stato ingaggiato più volte da prestigiose aziende worldwide per consulenza in materia di analisi, sviluppo e ottimizzazione di applicazioni in cui gli aspetti gestionali e di sicurezza tipici del mondo enterprise integrano saggiamente l’attenzione alla user experience che è il fulcro dell’approccio RIA (Rich Internet Applications).

Se hai bisogno di assistenza per un'applicazione interna o vuoi rendere un'applicazione eistente più ricca e accattivante, o se hai un'idea che vuoi realizzare utilizzando le più moderne, efficaci ed affidabili tecnologie disponibili sul mercato quello che stai cercando è il mio team! Forniamo consulenza e assistenza in ogni parte del mondo, on site e off site, both on a Time&Material and on a TurnKey basis.

Per contattarmi in merito ad attività di consulenza, scrivi una email a consulting[ AT ]comtaste.com

June 12, 2007

Something in the AIR (Adobe Integrated Runtime)

Logo_air_156x136Adobe announced the final name for Apollo : Adobe AIR.

A free AIR software development kit has released today.

You can download it on the Adobe Labs together with the Apollo Extension for Dreaweaver.

Also on Monday, Adobe plans to release the beta of Flex 3, its software development tool that can now be used for writing AIR applications in addition to Flash and HTML-based Web applications. (via Marco Casario)

June 14, 2007

Adobe AIR, Flex 3 and Integration between Fireworks,Photoshop and Flash CS3 with Flex. All of these topics at the AdobeLive 2007

Today is the second day of AdobeLiveConference here in Italy.
I'm here with Enrique (and some enormous mosquitos) in the business room of the AdobeLive and we're about to start our presentation.

Enrique will present Adobe AIR (formerly Apollo) and talk about Flex 3 and new features.

After his presentantion I'll show the integration of the Adobe CS3 with Flex and Flex Builder.
It's incredible how many things designers and creative are now able to do to help Flex developersin creating the user interface of Flex applications.
Using Photoshop CS3, Fireworks CS, Illustrator CS3 and Flash CS3 , of course, they can export graphic symbols, layouts and components for the Flex enviroment.

With Fireworks CS3 you can now use the Exoprt as MXML features to convert a PNG layouts into MXML code. You can do this using the new Flex Component Common Library (you can also create your own Flex components using an image and a javascript JSF file).
The MXML code generated from Fireworks is ready to be edited and customized by the developer in Flex Builder.

With Illustrator CS3 you can create vector based symbols and export them as SWF files, ready to be used and imported in Flex. For example you can export your vector symbols and then use them for change the style of a button flex component usign :

overSkin: Embed(source='styles.swf', symbol='mysymbol');
upSkin: Embed(source='styles.swf', symbol='mysymbol');
downSkin: Embed(source='styles.swf', symbol='mysymbol');

Then in Flash CS3 you can do whatever you want with the Flash CS3 Component Kit for Flex. You can interact in Flex with Flash contents, call public methods, refer to each single object.

If you're in Milan come to see the sessions !
They're great !

June 25, 2007

Flex 3,LiveCycle Data Services and Adobe AIR sessions at the MAX 2007 Conference

On the Adobe MAX 2007 blog has been published the pre-conference training day, a full-day hands-on training sessions. These are the tracks dedicated to Flex 3, Adobe AIR and LiveCycle Data Services :

Flex 3: Integrating with ColdFusion
This session provides ColdFusion developers with hands-on, practical experience connecting their Flex 3 client applications to remote, dynamic data provided by ColdFusion and LiveCycle Data Services.

Flex 3: Integration with Java
This session provides experienced application developers with hands-on, practical experience connecting their Flex front ends to remote, dynamic data using LiveCycle Data Services.

Flex 3: Developing Rich Client Applications
Get hands-on, practical experience using Flex.

Adobe Integrated Runtime (AIR): Bringing Rich Internet Applications to the Desktop
This full-day course will include everything you need to get started building applications with Adobe AIR.

November 1, 2007

Who is replacing the web?

These days a lot of posts have been made around a new technology by Mozilla: Prism.
Prism has been announced on Mozilla Labs as an experiment that tries to create desktop-based applications using web technologies.
Prism allows you to create shortcuts on desktop or start menu to your favorite web applications.
These applications will start in their own window without the Firefox chrome,
that is you will not see back and forward button or a file menu anymore, just the normal desktop window with the web application.
You can say there is nothing exciting; yes, i agree, but you should notice the potential behind the technology.
Mozilla developers are planning to include local data storage, 3D capabilities and more, moving web application closer to desktop application;
Prism is built on Firefox, so it supports all the technologies like HTML, JavaScript, CSS supported by the browser itself. By now there is only a Windows build; Mac OS X and Linux builds are coming.

According to the post in Mozilla Labs:

"Unlike Adobe AIR and Microsoft Silverlight, we’re not building a proprietary platform to replace the web. We think the web is a powerful and open platform for this sort of innovation, so our goal is to identify and facilitate the development of enhancements that bring the advantages of desktop apps to the web platform."

Leaving aside Microsoft Silverlight, that can be barely compared to Adobe Flash, we can do a comparison between AIR (Adobe Integrated Runtime) and Mozilla Prism.

Prism tries to enhance web applications and the user experience with the help of desktop technologies, but they are and remain web applications: whatever runs in Firefox, runs in Prism.
On the other hand, AIR is a complete new world that allows developers to deploy rich internet applications right on the desktop, thanks to a runtime available at the moment for Windows and Mac OS X (and soon on Linux).

An important post has been published by Mike Chambers on his blog commenting this news: http://www.mikechambers.com/blog/2007/10/25/mozilla-prism-and-the-disingenuous-web/
This post focuses on this topic: is Prism really so different from AIR or the only difference between the two technologies is the open/closed source model?

Asa Dotzler exposes his thoughts on the topic here: http://weblogs.mozillazine.org/asa/archives/2007/10/mike_chambers_i.html

My personal thought is that Prism and AIR are going into complete opposite directions, the former is something evolutionary, the latter is revolutionary; Prism is going to improve the Firefox platform, AIR can create a completely new experience in which the web is not the only actor; however closed source or not, neither will "replace the web".

March 27, 2008

Comtaste launches new Adobe Flex 3 and Adobe AIR training courses in New York City, London and Milan

Comtaste has just launched its new training courses on Adobe Flex3 and AIR for late spring-early summer 2008.

First courses to be scheduled are:

"Flex 3 and Flex Builder 3: Developing Rich Internet Applications with the new Flex 3 SDKs" (Milan and London 26-29 May, NYC-Manhattan 2-5 June)

"Developing desktop applications with Adobe AIR, Ajax and Flex" (Milan 14-17 April, NYC-Manhattan 9-12 June, London 23-26 June).

Our educational proposal, designed and set up by Flex expert Marco Casario, is mainly the result of our strong experience in real world enterprise projects.

Our courses reflect our clients' training needs that our consultants have encountered in the day by day running of enterprise-class projects, where Flex and AIR are also connected to backend applications under robust and rigid JEE architectures or other server side technologies.

Training programs and other details on company's website www.comtaste.com/en/training.htm

June 20, 2008

Creating and accessing JavaScript objects from ActionScript classes in AIR

These days I'm working on the O'Reilly AIR Cookbook creating the examples for the chapter on the HTMLLoader class.
The HTMLLoader class has a powerful method that lets you to load html content from a simple html string. The method is part of the public methods of the HTMLLoader class: loadString().
It accepts a parameter that contains the html content to load within an istance of the HTMLLoader class.

With this simple code you'll load the htmlToLoad string into the HTMLLoader class. The _html istance will render as HTML the content through the WebKit engine.

NOTE: Due to formatting problem I've posted the code examples and the ActionScript 3 class for this post on my personal blog :
Creating JavaScript functions within an ActionScript class in AIR

The cool thing is that you can use this approach to write JavaScript objects, functions and properties as well as defining the HTML structure within an ActionScript class, and then access to the html DOM via ActionScript code.

In the next page I've created an example where an HTML content is created within an ActionScript class and then loaded into an HTMLLoader object. I've accessed using ActionScript to the HTML DOM to get the content within the DIV tag.

Consider these three important considerations:
a) access to the DOM elements and JavaScript objects only after the page load event is dispatched. The page load event corresponds to the COMPLETE event dispatched by the HTMLLoader class. You can create an event listener for this event using the addEventListener() method:

_html.addEventListener(Event.COMPLETE, onComplete);

b) you can access to DOM elements using the window.document object and invoking the getElementById, and getElementsByTagNamer() methods. The window object represents the global JavaScript object for the content loaded into the HTML control.
c) you can edit and create the content of the html content using the innerText and innerHTML properties

NOTE: Due to formatting problem I've posted the code examples and the ActionScript 3 class for this post on my personal blog :

Creating JavaScript functions within an ActionScript class in AIR

September 12, 2008

Monitoring the connection against TCP/IP socket endpoints in AIR using JavaScript

Adobe AIR gives you the ability to use socket connections for push-model connectivity. For a this application is crucial to check and monitor the the connection against TCP/IP socket endpoints. The AIR service monitor framework can be used for this purposes.

In JavaScript, the operations to check and monitor the connection against TCP/IP socket endpoints use the SocketMonitor that is a subclass of the ServiceMonitor class.

The service monitor framework is external to the standard AIR APIs so that the SocketMonitor can be instanced only after having imported the service monitor framework.
In order to import the service framework, the servicemonitor.swf file needs to be imported with a script tag in the page:

<!-- Include service monitor framework -->
<script src="frameworks/servicemonitor.swf" type="application/x-shockwave-flash" />

The following code uses the SocketMonitor to test and monitor if the network state changes against a given socket endpoint using HTML and JavaScript. If the test has a positive outcome we carry out the connection to the socket server with the nsIServerSocket interface of Mozilla.

The nsIServerSocket interface provides a way to connect to a server socket. It is implemented by this component: @mozilla.org/network/server-socket;1.
This interface is intended to be used as an instance using the following JavaScript syntax:

var myIstance = Components.classes["@mozilla.org/network/server-socket;1"].createInstance(Components.interfaces.nsIServerSocket);

In this example I will use this component and its methods to create a socket server connection.
This is the full HTML file with the service monitor APIs invoked by JavaScript:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>

<!-- Include service monitor framework -->
<script src="frameworks/servicemonitor.swf" type="application/x-shockwave-flash" />

<script type="text/javascript" src="frameworks/AIRAliases.js" />

<script type="text/javascript" src="frameworks/AIRIntrospector.js" />

<script type="text/javascript">

var xmlhttp = newXMLHttpRequest();
var socketConn = null;
var checkSocket = null;
var host = 'localhost';
var port = 25;

function checkConn()
{
checkSocket = new air.SocketMonitor( host, port );
checkSocket.addEventListener(air.StatusEvent.STATUS, announceStatus);
checkSocket.start();
}

function announceStatus(e)
{

document.getElementById("resultDiv").innerText = HTTPMonitor.available;

if (HTTPMonitor.available)
{
socketConn = Components.classes["@mozilla.org/network/server-socket;1"]
.createInstance(Components.interfaces.nsIServerSocket);

socketConn.init(25,false,-1);
socketConn.asyncListen(listener);

} else {
document.getElementById("resultDiv").innerText = 'Can’t connect to the rss feed. The connection is unavailable';
}
}

var listener =
{
onSocketAccepted : function(socketConn, transport)
{
var stream = transport.openOutputStream(0,0,0);
stream.write("OK",2);
stream.close();
},

onStopListening : function(socketConn, status){}
};


</script>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Monitoring the Connection to a Specific Port on a Server (JavaScript)</title>
</head>

<body onload="checkConn()">

<div id="resultDiv">Checking .... </div>

</body>
</html>

The SocketMonitor class accepts two parameters in the constructor, the host and the port.
These two parameters are declared in the global variables in the script block and then used in the checkConn() function, invoked on the the onload event of the body.

The announceStatus event listener is created, and inside it we check the availability of the socket server. If the result is positive, and therefore the available property returns true, the nsIServerSocket instance of the interface is created with the createInstance()method.

To launch the server socket connection we use the init() method to initiate the connection and we specify the following three topics:

port: specifies the port to listen to

loopbackOnly: indicates whether connections are allowed from any machine or just the same machine

backLog: specifies the length of the queue of incoming connections

Finally, a listener object is passed to the asyncListen method to start the socket listening for connections.

December 18, 2008

Examples and slides of our latest events on PureMVC, BlazeDS, Java, AIR, and RIA User Interface design

Between October and November we held a couple of events for the italian Flex User Group (FlexGala) and Adobe Italy (Adobe TechConnection events).
These are the urls to some of slides and examples showed at those events:


March 2, 2009

Dao-Ext, an open source ActionScript Value Objects and Data Access Objects generation tool

How many times during your ActionScript, Flex and AIR development you've forced to spend several time to create ActionScript Value Objects and Data Access Objects for your the data access login of your application.
We at Comtaste have released an open source AIR tool (under GPL) to reduce the development time: Dao-Ext is come!

Dao-Ext is a tool that auto-generates ActionScript VOs and DAOs starting from a local SQLite databse and that will make your life easier when developing Adobe AIR Applications which use local persistent data.
All you need is to donwload and launch Dao-Ext AIR tool, select your local database file and let Dao-Ext does the job for you.

In this first release Dao-Ext simply creates VOs and DAOs for database tables. The tool allows you to choose namespaces to use for classes generation.
In the next upcoming release will give you the ability to fully customize the VOs and DAO creation process.

You can download Dao-Ext from Google Code: http://code.google.com/p/dao-ext/!

About AIR Adobe Integrated Runtime

This page contains an archive of all entries posted to Comtaste Consulting | Enterprise RIA consulting and development in the AIR Adobe Integrated Runtime category. They are listed from oldest to newest.

Actionscript 3 is the previous category.

AJAX is the next category.

Many more can be found on the main index page or by looking through the archives.

Powered by
Movable Type 3.33