Esta es una excelente recopilación de Frameworks para trabajar con Flash/Flex, las categorías son:

  • MVC frameworks and Dependency Injection
  • Testing frameworks and code coverage
  • Building and Continue Integration
  • Flash 3D Engines
  • Server side libraries/frameworks for Flex

El texto introductorio dice:

“Some say that if a technology has a lot of frameworks, then it is a sign of maturity. You might argue with that, but still I think it is interesting to know what are the available frameworks in the Flex/Flash world.”

La información completa y links la pueden encontrar en el blog de Mihai Corlan

Enjoy!

Link : Flex Frameworks

Evento enfocado a todos los entusiastas de la Plataforma Flash en México. Se hablarán de las próximas novedades Flash para iPhone, Flash CS5, Flash Builder, Flash Catalyst y más…

latinflash

Fecha: 18 de Noviembre 2009.
Hora: 9:00 am. a 2:00 pm.
Lugar: Universidad Iberoamericana.
Dirección: Prolongación Paseo de la Reforma 880, Lomas de Santa Fe, Mexico D.F.

Patrocinado por:

AdobeInfluxis

Twitter: @latinflashtour hashtag oficial #latinflashtour

Para ingresar al evento se debe presentar impreso el registro

Conferencistas Magistrales:

Todos ellos evangelistas de Adobe para la Plataforma Flash.

Organizadores:

RIActiveRIAhispanoFlash MC

El uso de los frameworks al momento de desarrollar es muy conveniente, ya sea para mejorar la estructura del código, mantener y escalar la aplicación, o simplemente para la reutilización de código.

A lo largo del tiempo han existido diversos tipos de frameworks, hablando exclusivamente de Flex podemos nombrar entre otros a: Cairngorn “el pionero” pasando por PureMVC o Swiz.

Mate Framework

En esta ocasión quiero hablar de Mate, una de las ultimas propuestas y una realmente interesante.

Mate es un framework para flex basado en etiquetas (MXML tags) y manejado por eventos.

La idea general de Mate es organizar los eventos en una sola locación y a partir de “Eventhandlers” controlar la lógica de la aplicación.

Mate es un framework ligero, con una curva de aprendizaje corta y con una flexibilidad amplia.

Sin duda Mate se ha convertido en mi framework favorito al trabajar con Flex.

En futuros post hare una guia basica de Mate asi que esten atentos al blog. ;)

Links
Mate (Flex Framework)
ASFusion

En estos últimos 2 días se han dado un par de eventos, los cuales me han puesto a pensar de una manera realmente concienzuda si el pago por los servicios de desarrollo en Latinoamerica, principalmente en México esta subvalorado, la verdad es que si, pero hasta que punto? ; Los eventos a los que me refiero son:

El día de ayer en la agencia en donde soy socio (AureaCode) no rechazaron un presupuesto para desarrollar un sitio para una compañía multinacional de mucho éxito (Fabricantes de Tenis ), El trabajo constaba de copiar literalmente el sitio oficial de EEUU. Este sitio consta de, entre lo obvio:

  • Una tienda en linea, (Administrador, y Front-end)
  • Rastreo de pedido
  • Pasarela de pago integrada
  • Creación de crear tu propio tenis
  • Localización de revendedores cercanos mediante CP
  • Administrador de Noticias, Eventos
  • Integración de Blog
  • Todo lo anterior en Full-Flash

Bien, Yo soy el encargado de estimar tiempos de esfuerzo y desarrollo, con esta información llegue a la conclusión de que el proyecto podría ser acabado en 60 días con el esfuerzo de 1 diseñador y 2 programadores, tratando de ajustar a lo menos para no inflar el precio final.

Esto dio como resultado un aproximado de 1440 horas de trabajo, a un coste de US$25 por hora.

Aquí lo que me hizo ruido, no fue que no aceptaran el presupuesto, sino como, diciéndonos que estábamos “Fuerisisisisima” del presupuesto literalmente.

Esto me hizo preguntar cuanto tenían de presupuesto, o cuanto les habían cotizado las demás “Agencias“.

El siguiente punto fue, que el día de hoy mediante un tweet veo los precios promedio que ofrecen las compañías americanas, entre US$60 y $US75 por hora.

Entonces, somos o nos hacemos.

¿Solo por que estamos un poco mas al sur debemos regalar nuestro trabajo?

¿En verdad en México esta tan mal pagado el desarrollo web?

Quiero hacer una encuesta rápida para ver, de una manera no muy científica :) , como anda en promedio, el costo de desarrollo por hora en LatinoAmerica. Así que por favor tómense un momento para responder, se los agradeceré.

Saludos!

El día de ayer descubrí gracias a un tweet hecho por @yacaFx, un plugin para Flex y Flash Builder llamado BluePrint.

Blueprint como ya dije es un plugin que se instala en Flex Builder o Flash Builder el cual permite un acceso rápido a referencias de código sobre un componente, clase o función haciendo la vida de los desarrolladores un poco mas sencilla (Si eso es posible :p ).

Con una combinacion de teclas ALT+b para Windows o  CTRL+b para Mac, se lanza una ventana de ayuda con las referencias de codigo del elemento seleccionado.

Blueprint se instala de una manera simple y sencilla y sin duda es de gran ayuda.

blueprint

[Enlace] Blueprint

Los chicos de Riactive con el propósito de apoyar el proyecto AWI han lanzado oficialmente un concurso patrocinado por Adobe EU y Latam, tal y como lo comenta Edgar.

Dicho concurso consta de crear un cliente para AWI [AMFPHP-WordPress Integration], ya sea para reproducir una interfaz en Flex/Flash para wordPress como blog o como un CMS para sitios web.

Como comenta Edgar el primer lugar ganara una licencia de Flex con Charting y el segundo lugar ganara una licencia de Flash 8.

Esto es para ponerse las pilas por su parte lectores para crear el cliente y para mi para trabajar a marchas forzadas para terminar al 100% AWI.

Como saben, AWI tiene un par de semanas vivo y aun esta en un estado alpha, pero cuenta con 16 métodos funcionales de lectura de información con los cuales se puede trabajar un cliente sin problema.

Junto con los desarrollos que ustedes vayan creando por supuesto que comenzaran a existir peticiones, comentarios etc que al final del día dará como resultado un “producto” espero yo robusto y estable creado a partir de las opiniones de cada uno de ustedes.

Por mi parte daré, de ahora en adelante, prioridad uno a este proyecto tratando de satisfacer todas aquellas peticiones que surjan.

Por ahora pueden usar mi servidor como conejillo de indias ya que aquí esta montado AMFPHP 1.9 y la ultima versión de AWI.

La url del Gateway es :

http://tmeister.net/amfphp/gateway.php

el browser de los servicios lo encuentran en:

http://tmeister.net/amfphp/browser/

Una vez que los métodos de escritura estén listo montare un wordpress exclusivo para el proyecto en el cual podrán hacer o deshacer lo que quieran ;)

Para peticiones, sugerencias, reclamos, etc. Por favor háganlo directamente en la lista de correo del proyecto para subscribirse a la lista basta con enviar un email vació a la dirección

awi-dev-subscribe@googlegroups.com

Ahora por ultimo y no por ello menos importante no me queda mas que agradecer a todos los miembros del equipo de Riactive por el apoyo, principalmente a Edgar Parada, estoy realmente agradecido por el apoyo en este proyecto.

No queda mas que… a ponchar código. :p

No sean tímidos y envíen sus clientes

Saludos!! 8)

Bueno gente, Esto va en serio, he creado un sitio especial para el proyecto en el cual estarán las ultimas noticias sobre el proyecto, los links relacionados, Mailing-list, descargas, SVN, Blog etc.

De verdad les agradecería sus comentarios sobre el proyecto, que al fin del día es un proyecto para la comunidad o sea todos nosotros :P

La url del sitio es : http://tmeister.net/awi/

Nos estamos viendo.

English translation, at the bottom

Hace un par de días comencé a trabajar sobre un nuevo proyecto. Su nombre oficial es AWI (Amfphp WordPress Integration).

El propósito de AWI es hacer servicios para Amfphp, los cuales servirán de “gateway” entre Flex/Flash y WordPress, para así poder hacer GUI’s sobre estas 2 plataformas de desarrollo.

Como comente al inicio, este proyecto lo comencé apenas hace un par de días. Y espero dedicarle un par de horas al día, por lo menos ( O lo que el cuerpo aguante :) ), ademas de esto decidí hacer de este un proyecto abierto, se que es un proyecto pequeño, pero que mas da, veamos cual puede ser el resultado.

Por el momento el proyecto consta solo de 4 servicios y estan en estado alpha, por el momento, solo leen algunas propiedades de WordPress.

Ademas de contar con los métodos para tomar la información normal del blog, Post, Comentarios, Categorías, BlogRoll, etc. Tal vez también se integre todo lo referente a la administración del mismo aun no lo se.

Si alguien esta interesado en participar pueden encontrar el proyecto hospedado en GoogleCode

http://code.google.com/p/awi/

Los archivos los pueden descargar en

http://code.google.com/p/awi/downloads/list

Para ver los métodos hasta el momento puede entrar a

http://tmeister.net/amfphp/browser/

bajo el apartado WordPress.

Si alguien tiene comentarios, ideas, etc son bienvenidas.

– English –

Two days ago i began working on a new project officially called AWI (Amfphp WordPress Integration).

The objective to reach is to make services for working on Amfphp, which will be like a “gateway” between Flex/Flash and WordPress, and building GUIs on those two platforms.

like i said at the beginning, this project started two days ago, and i will spend at least a couple of hours a day, as well as beginning this project, it will be open source, i know it is a little project but doesn’t matter, we’ll see the impact and the results.

Currently it has just 4 services in alpha status, they access a few properties from WordPress.

As well as to have the methods for taking the normal data from the blog, posts, comments, categories, blogroll, etc, maybe i will add features about the management but i still dont know.

If anybody is interested and want to collaborate, the project is hosted in GoogleCode:

http://code.google.com/p/awi/

You can download the files from:

http://code.google.com/p/awi/downloads/list

The methods written currently could be reached at:

http://tmeister.net/amfphp/browser/

under the WordPress section

Any help, ideas, comments would be appreciated.

cheers 8)

Hace poco mas de un mes se anuncio el lanzamiento de la versión 1.9 alpha de amfphp, esta versión por fin soportaba AMF3 y con ello interactuar totalmente con Flex2. Y el pasado viernes se lanzo la versión beta 2, Así que es hora de que nos vayamos enterando de como funciona esta nueva versión =)

1.Descargar e Instalar Amfphp 1.9 beta 2.

Descarga el archivo zip de amfphp 1.9, descomprimelo y sube el folder amfphp a algún lugar de tu servidor, el mejor sitio seria el directorio principal de tu sitio. Para comprobar que todo esta correcto haremos la vieja pero siempre efectiva comprobación. En tu navegador escribe la dirección que apunte hacia el archivo gateway.php

Si el folder de amfphp se encuentra en el folder raíz de tu sitio entonces la dirección seria:

http://www.tusitio.com/amfphp/gateway.php

Si todo sale bien debes de ver un mensaje como este.

“amfphp and this gateway are installed correctly. You may now connect to this gateway from Flash.

Note: If you’re reading an old tutorial, it will tell you that you should see a download window instead of this message. This confused people so this is the new behaviour starting from amfphp 1.2.

View the amfphp documentation

Load the service browser”

2. Crear nuestro primer servicio.

HelloWorld.php

[php] class HelloWorld
{
public function SayHi()
{
return "Hi there. =)";
}
}
?>
[/php]

Si ya habías trabajado con una versión vieja de amfphp te darás cuenta que $this->methodTable se ha eliminado de la estructura de la clase.

$this->methodTable era utilizado para asignar las propiedades de las funciones, sobre todo la descripción, y la forma de acceso, esto ultimo para saber si se podría acceder a la función de forma remota o solo local.

En esta nueva versión como dije antes $this->methodTable dejo de usarse. Ahora esta nueva versión de amfphp asume que todas las funciones pueden accederse remotamente a menos que el nombre de la función comience con guion-bajo “_” o la función sea declarada como privada, esta ultima opción solo esta disponible en php5.

Un ejemplo HelloWorld2.php
[php] class HelloWorld
{
public function SayHi()
{
return "Hi there. =)";
}
private function connectDB()
{
//PHP5
//Solo se puede ejecutar desde la misma clase
}
function _localMethod()
{
//PHP4
//Esta funcion tambien sera accesible desde la misma clase unicamente
}
}
?>
[/php]

3. Configurar Flex2 para trabajar con amfphp

Debemos crear un proyecto básico en Flex.

project1

project2

Ahora necesitamos crear un archivo de configuración para que flex sepa donde buscar nuestros servicios de amfphp.

Para ello creamos el archivo services-config.xml con la siguiente estructura

[xml]






*









[/xml]

La única linea que nos interesa y que debemos modificar es la siguiente:

[xml]
[/xml]

Modificando la ruta hacia donde esta nuestro archivo gateway y guardandolo en el folder raíz de nuestro proyecto.

Una vez que tenemos nuestro archivo, dar click derecho sobre el nombre del mismo e ir a propiedades. Se abrirá una ventana de propiedades, obviamente, seleccionamos del menú izquierdo la pestaña “Flex Compiler” y en la linea de “Argumentos adicionales de compilación” -s services “services-config.xml” y damos click en “Ok”

project3

Ahora ya estamos listos para trabajar con amfphp 1.9 y Flex.

4. Probando la conexión

Lo primero es subir nuestro servicio “HelloWorld.php” el cual creamos en el paso 2.

Este servicio debe de estar dentro del folder amfphp/services, dentro, puedes crear folders anidados sin ningún problema en este caso lo colocare en la carpeta Tutorials/HelloWorld.

Creamos una pequeña interfaz la cual constara de un un par de LinkButtuns, un TextArea contenidos dentro de un panel cuyos botones ejecutaran los métodos remotos de amfphp.

Algo así

[xml]



import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
public function onMethodResult(event:ResultEvent):void
{
out_txt.text = "Result "+event.result
out_txt.text += "nDataType "+ typeof(event.result)
}
public function onServiceFault(event:FaultEvent):void
{
out_txt.text = "Fault "+event.fault
}
]]>


id="helloService"
source="Tutorials.HelloWorld.HelloWorld"
destination="amfphp"
fault="{onServiceFault(event)}"
showBusyCursor="true"
>

name="SayHi"
result="{onMethodResult(event)}"
>









[/xml]

vamos a ver parte por parte.

[xml] id="helloService"
source="Tutorials.HelloWorld.HelloWorld"
destination="amfphp"
fault="{onServiceFault(event)}"
showBusyCursor="true"
>

name="SayHi"
result="{onMethodResult(event)}"
>


[/xml]

En este tag como se puede ver creamos nuestro RemoteObject los parámetros son:

id : El nombre con el cual haremos referencia
source: el path a partir del folder amfphp/services, donde se encuentra nuestro servicio en el servidor,
destination: el identificador seteado en el tag <destination> del archivo services-config.xml
fault: El método que sera ejecutado al momento de que ocurra un error.
showBusyCursor: Mientras dure la ejecución del método remoto flex mostrara el cursor de ocupado

Dentro del tag RemoteObject debemos agregar los métodos a los cuales vallamos a acceder desde Flex y definir la función que se ejecutara cuando el método se haya ejecutado con éxito.

Esto lo hacemos definiendo el tag <mx:method>

[xml] name="SayHi"
result="{onMethodResult(event)}"
>

[/xml]

los parámetros son:

name: El nombre del método que se ejecutara, que es el mismo que tenemos en nuestro servicio.
result : asignamos la función que se ejecutara cuando el método remoto se ejecute.

Por ultimo, debemos ejecutar dichos métodos desde nuestra interfaz, en este ejemplo se ejecutan mediante un LinkButton

[xml]
[/xml]

Al momento de dar click enviamos la petición de ejecución del método SayHi que esta definido dentro del RemoteObject helloService, simple cierto? ;)

Este es el resultado final.

[FLASH]http://tmeister.net/flex/tutorials/helloworldamfphp.swf,250,200[/FLASH]

Aqui estan los archivos completos del proyecto. helloworld-amfphp19.zip

Con esto podemos comenzar a trabajar y a aprovechar todas la ventajas que amfphp nos ofrece.

Cheers. 8)

Follow me through my day

Send requests or questions about my products, find out on what I'm working and stay tune with my updates or just say hello ;)

Array

@Tmeister

active