Flash&Flex Developer Magazine

mayo 12, 2009

Hace algún tiempo me encontre con  Flash&Flex Developer Magazine una revista de orientada a desarrolladores de tecnología flash y flex que se ofrece suscripción tanto para versión en formato digital como impresa, en cuanto a esto no sé muy como será el envío para quienes suscriban desde fuera de Estados Unidos, en cuanto a la versión en pdf, me han llegado todas, al principio costó mucho el primer contacto, peo luego no he tenido demoras. 

Sin lugar a dudas un recurso más que interesante para todo aquel que se relacione o se quiera interiorizar en esta tecnología.

En la revista se presentas contenidos (flash, flex, AIR, ActionScript, Flash Lite, PaperVision) del más alto nivel, escritos por grandes personalidades (descúbranlas ustedes pueden darle un vistazo a la version online), de todas formas lo que más destaco es la posibilidad que da de ser autor de artículos así como también revisor, partners.

Tengo que insistir que es interesantísima y aborda distintos niveles de conocimiento, un exelente artículo es el que escribió Bernardo Pineda  Will You Flex que lo pueden leer desde el blog del autor.

Espero que resulte interesante y productivo, los saluda Adru desde buenos aires mientras leo ffdmag.


Exelente recurso para iniciarse en Flex

enero 5, 2009

Desde hace bastante tiempo que la gente de Adobe ha publicado Flex in a week, sin duda desde ahora un paso obligado para todo el que quiera iniciarse en flex. 

Consiste en una serie de videotutoriales y ejercicios que dan un paseo por todo lo que necesitas saber de flex, es interesante por que cubre desde lo mas basico de como crear un proyecto pasando por LCDA LiveCycle Data Services, ColdFusion y Adobe AIR. No se asuten despues de leer esto, es muy sencillo de seguir y solo se necesitan 5 días, es asi como esta organizado el temario.

Insisto que si queres aprender flash es una visita obligada y no te la podes perder, como digo siempre a lo sumo lo peor que te puede pasar es que en una semana tengas conocimentos que antes no tenias.

Desde mi casa, mientras todos duermen
Adru


AIR File API

marzo 29, 2008

Es una de las APIs más funcionales en AIR

Es posible crear archivos y directorios, abrir y leer archivos, escribir archivos, listar el contenido de un directorio, acceder a directorios, comunes entre S.O., inspeccionar propiedades de un archivo, son todas clases del paquete flash.filesystem

Las tres clases que manejan toda esta API son File, FileMode, FileStream para leer/escribir archivos. Cuando queremos trabajar con archivos el primer paso es referenciarlo, se pueden identificar dos formas de hacerlos, la primera es instanciando un objeto y definir la propiedad nativePathvar

archivo =  new air.File();   
JS
var archivo : file = new File(); 
AS
Archive.nativePath = “C:/Documents and Settings…”;
Si bien esta alternativa es totalmente valida la forma más usual es a través de un directorio especialvar archivo File;
archivo = File.documentsDirectory.resolve(“foto.jpg”);
var archivo;
archivo = air.file.documentsDirectory.resolve(“…”);

Los directorios especiales pueden usar el método resolve para obtener un path hijo o usar el mismo objeto como File, tenemos los siguientes directorios especiales:

 applicationStorageDirectory: Donde podemos almacenar archivos propios de nuestra aplicación applicationResourceDirectory: La carpeta donde están nuestros archivos de instalación
desktopDirectory: “Escritorio del usuario”
documentsDirectory: “Mis Documentos”
userDirectory: Generalmente en un nivel superior a Mis Documentos Las operaciones sobre los archivos pueden ser sincronicas o asincrónicas, en el caso de asincrónicas, debemos escuchar el evento “complete” o Event.COMPLETE

Los métodos existentes son:

File.copyTo()                             File.copyToAsync()
File.deleteDirectory()              File.deleteDirectoryAsync()
File.deleteFile()                        File.deleteFileAsync()
File.listDirectory()                    File.listDirectoryAsync()
File.moveTo()                           FilemoveToAsync()
File.moveToTrash()                 File.moveToTrashAsync()
FileStream.open()                    FileStream.openAsync()

Un detalle de las propiedades de los archivos:

  • exists
  • icon
  • isDirectory
  • isHidden
  • isPackage
  • isSymbolicLink
  • nativePath
  • parent
  • url
  • creationDate
  • extension
  • modificationDate
  • name
  • size
  • type

Para abrir y leer un archivo, debemos obtener una referencia al objeto File y luego crear un FileStreamvar flujo:

FileStream = new FileStream();
flujo.open(archive, modo);

Los modos posibles son: FileMode.READ, FileMode.WRITE, FileMode.APPEND, FileMode.UPDATE.
También tenemos métodos para escribir distintos tipos de datos writeBoolean, writeInt, WriteUTF y para leer en el mismo orden, creamos archivos binarios.
El trabajo con directorios es igual que con los archivos, hay que referenciarlos y también es posible crear directorios temporales y borrarlos.


SQL en AIR

marzo 20, 2008

AIR puede conectarse a datos mediante un RDBMS embebido, hablamos de SQLite, esto es parte de los 10 MB que incluye el runtime de AIR.

Existen dos modelos que podemos utilizar, Sincrónico / Asincrónico pero una vez elegido un método, hay que continuar siempre con el mismo.

Las clases que mas podemos llegar a utilizar:

air.SQLConnection: representa a la conexión
air.SQLStatement: representa una consulta
air.SQLResult: representa una respuesta de la Base de Datos
air.SQLEvent: representa un evento de base de datos
air.SQLerrorEvent: representa un evento de error en la base de datos.

Para ejecutar una consulta tipo SELECT:

  1. Crear y abrir la coneccion
  2. Crear el SQLStatement y especificar la base de datos
    1. var select = new air.SQLStatement();
    2. select.sqlConnection = conn;
  3. Definir el query
    1. select.text = “SELECT * FROM CLIENTES”;
  4. Definir eventos
    1. Select.addEventListener(air.SQLEvent.RESULT, respondio);
  5. Definir la función respondió para capturar el resultado
  6. Ejecutar
    1. select.execute()

Opcionalmente se pueden definir parámetros en el query y luego definirlos como parameters, también es posible traer solo los primeros XX resutados y luego ir pidiendo mas, para eso se usa execute.


Firmando Aplicaciones AIR

marzo 4, 2008

Las Aplicaciones de Adobe AIR se deben firmar para instalarse en otro sistema, esta es la filosofía de las aplicaciones construidas con AIR, existen alternativas de generación de paquetes AIRI provistos por los distintos plugins, pero esta alternativa está pensada para los casos que la aplicación deba ser firmada en un equipo distinto o cuando la firma se gestiona de forma distinta al desarrollo de la aplicación.

Firmando una aplicación

Como se menciona anteriormente el cuadro de firma digital nos da dos opciones, firmar con un certificado de digital o preparar un paquete AIRI. En el caso de firmar la aplicación, puede usar un certificado digital concedido por una entidad emisora de certificado raíz, o bien, crear un certificado con firma automática.

Cualquiera puede crear un certificado con firma, y es justamente ese el problema, a la hora de abrir una aplicación e instarla en nuestros equipos siempre serán más fiables las que han sido firmadas con las firmas que proveen las entidades emisoras.


El archivo AppDescriptor

marzo 1, 2008

El archivo descriptor de una aplicación AIR se llama “Application.xml” y es un archivo XML que setea algunas directivas que nuestra aplicacion AIR debera seguir, puede ser generado manualmente mediante cualquier editor de texto o con algun plugin. Dreamweaver nos ofrece una version muy simplificada y Basica con lo escencial que una aplicacion necesta. Aptana nos ofrece otro bastante mas completa bastante completo de todas formas siempre pueden ser modificacos posteriormente.

Esta es una aproximación a los nodos principales de un Application.xml standar con algunos comentarios.


<?xml version="1.0" encoding="utf-8" standalone="no"?>
 
<application xmlns="http://ns.adobe.com/air/application/1.0">
<id>ar.com.algonzalez.example.seteos</id><!-- Identificador único de caracter obligatorio es por esto que se recomienda una notacion del tipo direccion web inversa. -->
<filename>seteos</filename><!-- Un nombre de archivo para la aplicacion de caracter obligarorio, no lleva extension. -->
<name>seteos</name><!-- Este es el nombre que se visualizara duranta la instalacion de la aplicacion de caracter opcional -->
<version>1.0</version><!-- Designa en forma de texto una version para la aplicacion (V1, Version 1.0, Beta, Release, etc) es obligatorio . -->
<description>Aplicacion de prueba de seteos standart para una aplicacion AIR</description><!-- Tambien de caracter opcional y se podra ver en durante la instalacion de la nuestra aplicacion AIR. -->
<copyright>No tengo copy right</copyright><!-- Una informacion de copyright de caracter opcional -->
<initialWindow><!-- Es obligatorio y se usa de contenedor para configurar algunas opciones de la ventana inicial. -->
<content>seteos.html</content><!-- Es el pricipal HTML de la aplicacion y es obligatorio. -->
<title>Mi Aplicacion AIR<title/><!-- Titulo de la ventana principal. es Opcional. -->
<systemChrome>standard</systemChrome><!-- Puede contener dos valores "standard" or "none". Es opcional y por defecto standard. -->
<transparent>false</transparent><!-- Los valores pueden ser true o false, por defecto false y se puede aplicar solamente cuando systemChrome sea "none". -->
<visible>true</visible><!-- para inicializar la ventana en visible o no, es opcional y por defecto esta en false. -->
<minimizable>true</minimizable><!-- Si estara disponible la opcion de minimizar. Default true. -->
<maximizable>true</maximizable><!-- Si estara disponible la opcion de maximizar. Default true. -->
<resizable>true</resizable><!-- Si estara disponible la opcion de redimensionar. Default true. -->
<width>1024</width><!-- Espesifica el ancho inicial de la ventana. Opcional. -->
<height>768</height><!-- Espesifica el alto inicial de la ventana. Opcional. -->
<x>200</x><!-- posicion inicial de la ventana en x. Opcional. -->
<y>200</y><!-- posicion inicial de la ventana en y. Optional. -->
<minSize>800 600</minSize><!-- Especifica la configuacion minima de visualización de la ventana, Opcional. -->
<maxSize>1280 1024</maxSize><!-- Especifica la configuacion maxima de visualización de la ventana, Opcional. -->
</initialWindow>
<icon> <!-- El icono que representara la aplicacion se recomienda usar todas las medidas para su correcta visualizacion. -->
<image16x16></image16x16>
<image32x32></image32x32>
<image48x48></image48x48>
<image128x128></image128x128>
</icon>
<fileTypes><!-- Defines un tipo de archivos. Opcional. -->
<fileType> <!-- El nombre que el sistema mostrara para registrar un tipo de auchivo. Requerido. -->
<name></name> <!-- La extension que se va a registrar. Requerido -->
<extension></extension> <!-- Una descripcion del tipo de archivo. Opcional. -->
<description></description> <!-- El tipo MIME. Opcional. -->
<contentType></contentType> <!-- El icono que se va a mostrar por el tipo de archivo Opcional. -->
<icon>
<image16x16></image16x16>
<image32x32></image32x32>
<image48x48></image48x48>
<image128x128></image128x128>
</icon>
</fileType>
</fileTypes>
</application>


Adobe AIR 1.0 y Flex 3.0 en “Produccion”

febrero 26, 2008

Ayer 25 de febrero Adobe comunico a la comunidad que Adobe AIR y Flex 3 dejaban de ser Betas.

Adobe AIR 1.0 en su versión final fue lanzado sin grandes cambios de su versión Beta 3, y como lo había prometido Adobe el runtime es gratuito, no OpenSource (Se supone que debe ser por el flash player).
Como dije anteriormente no hay grandes cambios de su versión Beta pero en un principio lo que si es seguro que habrá que recompilar los proyectos realizados con las versiones Beta2 y Beta3, el resto me ire enterando despues de leer en detalle los papers.

Flex 3.0 también se ha lanzado y también como se preveía su runtime no solo es gratuita si no también OpenSource. Para los desarrolladores interesados se puede bajar una versión trial de 60 días que adobe pone a disposición de Flex Buider 3 para Windows y Mac.
También tenemos nuevo proyecto para flex 4 con nombre de código “Gumbo” que prevé lanzamiento para el 2009.