Flex 2 - AS3


Supongo que soy uno de los últimos en postear esta gran noticia, como siempre el tiempo escasea :P . El lunes Macromedia anunció Labs Macromedia. La simple url ya denota un símbolo de grandeza! (no os recuerda a google? ;-)

Cuando se anunció el acontecimiento hará cosa de 3 semanas, pensé que se trataba de un salto más cualitativo que no cantitativo. Pero después de llevar una semana entera jugando con las nuevas prestaciones durante más de 8 horas al dia, estoy más que maravillado con los resultados que han logrado. Es un calitativo y cuantitativo!.

A mi parecer los cambios que Macromedia introduce con este salto abren 4 frentes claramente diferenciados y con vida propia.

  • Flash Player 8.5: El santo grial del cambio. Durante mucho tiempo hemos estado pidiendo cambios, estabilidad, performance, más prestaciones y capacidades, etc. Las releases previas del Player han ido "apedazando" (en el mejor sentido de la palabra) las versiones anteriores con la problemática que eso conlleva, pero consiguiendo grandes avances. El hecho de tener que mantener compatibilidades limita la tecnología de forma que el player no se podía aprovechar de muchas cosas que estaban al orden del dia.

    El flash Player tiene ya un rodaje de 8 añitos y arrastra cosas aún de aquel entonces
    (ahí está el problema). La nueva versión y para poder satisfacer con creces todo lo que
    los desarrolladores y también los usuarios, cada vez más experimentados de internet, da
    en su version 8.5 un cambio radical.

    Tiene un gran número de cosas nuevas implementadas de forma nativa: E4X, Regular expressions,
    Timers, Sistema de eventos, tipado estricto, just in time compilation,
    runtime exceptions, capacidad de tratamiento binario de datos, mejora más que importante
    en la api de dibujo y en el render engine, etc.

    La velocidad es uno de los cambios más suculentos y atractivos que nos permitirá desarrollar
    aplicaciones en las que hasta ahora no hemos podido ni pensar.

    Mi opinión personal es que Macromedia ha hecho una apuesta para meterse de paso en el
    mundo de las aplicaciones de escritorio. Con esto no me refiero a que vayan a desarrollar
    una API que trabaje a nivel de sistema operativo sino que otros lenguajes que ya lo hagan
    como java, C, C++, C#, etc. utilizen flash como GUI. Flash ahora es estable, tienen un
    mejor entorno de desarrollo y la performance es altísima. Repito que esto es una impresión
    mía. Por otro lado esto también me abre los ojos acerca de lo que compró Adobe. Adobe no
    compró a Macromedia por lo que era sinó por lo que pueda llegar a ser, compro su
    roadmap de producto.

  • Flex Framework 2.0: no más dolores de cabeza innecesarios

    ¿Por qué cuando desarrollo una RIA tengo que perder más tiempo pensando en cómo funciona
    un comboBox o por qué está fallando, que en cómo mejorar las prestaciones y capacidades
    de mi aplicación? Cuando hago algo en HTML sólo me tengo que preocupar de que quede bonito
    y tengo CASI asegurado su correcto funcionamiento. Creo yo que todos nos hemos
    quejado largo y tendido de los componentes que hasta ahora acompañaban a Flash.

    Pues bien, resulta que Flex ha ido evolucionando esos componentes (seguro que muchos estan
    reescritos desde cero) y ahora son geniales.

    Gestores de layout para desarrollar RIA's que nos ahorraran muchas horas. Con ellos
    ya no tendremos que preocuparnos de qué pasa si el usuario maximiza nuestra aplicación
    o de sí hay 20 elementos en vez de 10.

    Assets como combos, radio buttons, checkboxes, colorPickers, listas,etc... Todas
    funcionando al unisono, fáciles de usar, y a priori parecen muy estables.

    El tema del skinning es otra de las preguntas que seguro que muchos tendreis. Pues
    bien, el tema ha mejorado mucho. Por lo menos a mi me lo ha parecido. Pero mi punto de vista
    es que por qué nadie se queja de que un combo de html no se lo pueda skinear? O por qué a
    un scroll no se lo puede poner serpenteando por la pantalla? Pues supongo que todos aceptamos
    que son elementos standard no? Pues creo yo que los símiles de esos componentes en Flash
    los tenemos que ver con los mismos ojos. Habrá casos que no servirán, pero no por ello
    serán malos...

    Para terminar de aliñar la ensalada tenemos el mxml. El XML como siempre, pegando fuerte.
    MXML es, como XML, un lenguaje estructurado descriptivo que nos permite usar los componentes
    (ya sean del de Framework o caseros) mediante XML. Esto, para el desarrollo de RIAS, permite
    que desparezcan los .fla. Son muchas las ventajas: trabajo en equipo, diffs, cvs y un sinfin
    de cosas. Pero ello no implica que desaparezcan los .fla. El uso de estos pues (simpre hablando
    desde una perspectiva RIA) quedarán relegados a hacer animaciones y cosas basadas en
    linea de tiempo o cosas de diseño.

    El framework aporta muchas más cosas que componentes visuales, también aporta varios
    managers que realmente están muy bien.

    El DragManager es una gran abstracción de la problemática de los arrastrables.
    Ahora cualquier cosa se puede convertir fácilmente en arrastrable y controlarlo mediante
    eventos. De esta forma, por ejemplo, podemos arrastrar un elemento de un datagrid a otro
    con menos de 2 lineas de codigo. En breve colgaré ejemplos de esto.

    HistoryManager. Aún no está visible en la alpha, pero ya se habla de él. Una de las
    cosas que más molesta cuando navegamos por un site hecho entero en flash es el no poder
    usar los botones adelante y atrás del navegador. HistoryManager al rescate! Implementando
    un patron Memento lo que hace este manager es gestionar el estado de los elementos cargados
    y permitir reestablecer su estado a un estado anterior. Óbviamente nuestro código lo tendremos
    que hacer en base a unas bases, pero la parte más compleja nos viene dada.

    CursorManager. Su nombre lo dice todo, nos permite gestionar el dibujito del ratón
    a nuestro antojo sin quebraderos de cabeza y sin complicaciones.

    Me dejo muchas cosas el tintero, pero poco a poco las iré escribiendo...

  • Flex Builder (AKA Zorn): La potencia sin control no sirve de nada.

    Una de las cosas que siempre me ha decepcionado ha sido el IDE que Macromedia facilita para
    desarrollar. Flash no es un IDE, flash está muy bien para lo que es, para usar su
    liniea de tiempo y hacer diseños. No tiene Debugger, porque aunque tenga uno no se lo puede
    considerar como tal. No aporta ninguna facilidad de trabajo al desarrollador y lo único que
    hace es relentizar el proceso productivo.

    Pues bien con todos estos problemas en mente, y muchos más, aparece Zorn. Basado en Eclipse
    es un IDE que poco a poco se irá haciendo nuestro amigo. Ahora cuando me gire y vea a mis
    compañeros javeros debugando en sus fantasticos debuggers ya no tendré ningun tipo de envidia ;)

    ¿Qué más podemos esperar de él? Pues aunque de momento esté en alpha yo creo que está
    muy bien apuntalado, y que poco a poco iremos viendo como se acerca más a un entorno Eclipse para
    Java. Syntax highlighting, autocompletación, inline javadoc, vista jerárquica de clases, interrelación
    de clases, gestión de paquetes, etc.

    De momento es más lento que un caracol! Pero MM ya avisa de ello cuando lo descargas. Es lento
    de cojones a la hora de compilar, todo esto dicen que se mejorará muchísimo (me los creo).

    El nuevo ide permite generar de forma visual interfícies gráficas con los componentes de
    layout y assets (como lo permitía FlexBuilder). Pero también tiene la vista de código. Sinceramente,
    la vista gráfica la usé las dos primeras horas, después es mucho más rápido hacer las cosas
    directamente en XML.

  • AS 3.0 La piedra filosofal.

    Para darle seriedad a todo lo que he comentado hasta ahora hacía falta un cambio de lenguaje,
    con más prestaciones y más ventajas para el programador.

    Los nombres de espacio cambian como de la noche al dia, las cosas (si están) no están donde
    estaban. Se ha ordenado todo y se le ha dado un sentido mucho más lógico. Un MovieClip es lo que era
    pero se usa desde otro punto de vista. Aparece el concepto de Sprite, que para entendernos
    es un movieClip pero de un solo frame. Aparece el concepto de displayList que es una lista
    con referencias a los elementos que se muestran. Se jerarquiza aún más el concepto de padre-hijo o
    contenedor-contenido.

    Se orienta mucho más a objetos. Ya no utilizaremos más un attachMovie o un duplicateMovieClip.
    Para instanciar un elemento visual lo haremos como con cualquier otra clase new MyClass(). Lo
    cual es potentísimo y mucho más limpio.

    Introducen formalmente el concepto de reflection y de metadata asociada a la clase. Esto ya
    era factible hasta ahora pero no como ahora. La metadata, por ejemplo, es accesible en tiempo
    de ejecución.

    Un evento es lo que era conceptualmente pero se usan de forma distinta. Para hacer
    clickable un MC no basta con definirle el método onRelease, sinó que todo se orienta al
    nuevo sistema de eventos. Los eventos ahora pueden progarse! Esto quiere decir que si tenemos
    un mc anidado dentro de otro y los dos están suscritos al evento CLICK ambos recibirán
    la notificación si así lo decidimos en tiempo de desarrollo. Por otro lado se han
    añadido de forma nativa eventos como DOUBLE_CLICK, WHEEL y muchos más. Otro que resulta
    interesante es para detectar cuando el ratón entra o sale del area de nuestra aplicación.
    De esta forma se podrá detectar en un html si el ratón está sobre nuestra película o
    no.

Como podeis ver los cambios son muchos y muy potentes. Mi recomendación sería que no os espereis
a que se haga el lanzamiento estable del producto para empezarlo a mirar. Por otro lado (y aunque
esto merezca un post enterito) que nadie se asuste por las incompatibilidades. A priori no tiene
que exisitir ninguna con lo que ya haya hecho. El nuevo player empaqueta internamente dos players: el
nuevo y el antiguo. De esta forma si se carga una película antigua la lanza el player antiguo y si
es nueva la lanza el nuevo. El problema es que las aplicaciones ya programadas que quieran
utilizar las nuevas prestaciones del player se tendrán que convertir y adaptar. En muchos casos estoy
seguro que esto será un infierno. Y más teniendo en cuenta que, a priori, hasta la versión 9 del
Flash este no podrá compilar AS3.

Estos dias he ido haciendo bastantes pruebas y conforme vaya teniendo tiempo las iré colgando
para ir viendo funcionalidades más concretas.

Information and Links

Join the fray by commenting, tracking what others have to say, or linking to it from your blog.


Other Posts
Sprite creation and performance test
columnador: bug del flash player 8

Write a Comment

Take a moment to comment and tell us what you think. Some basic HTML is allowed for formatting.

Reader Comments

Be the first to leave a comment!



Bad Behavior has blocked 359 access attempts in the last 7 days.