Archive for the ‘flashplayer’ Category

Flash Player 10.1 en Android 2.2 y Android Apps en AIR

Jueves, Mayo 20th, 2010

Todos lo sabían, pero sigue siendo una gran noticia. Android tendrá instalado por defecto Flash Player 10.1 y podrá reproducir, tal como funciona en un desktop, todos los sitios y aplicaciones hechas en Flash o Flex. Nada del bullshit de Steve Jobs. Flash corre perfecto en dispositivos móviles touch, no es un "drenador" de batería y no requiere recodear toda la web. Simplemente funciona.

Apps nativas hechas en Flash en el market de Android

En el sandbox muestran también varias apps nativas de Androids que se instalan desde el market, pero que fueron construidas con Flash y compiladas con AIR. Tal como funcionaba el compilador para iPhone, un developer puede crear una app en Flash y ponerla en el market de Android, la Ovi Store de Nokia o el Market de Blackberry.

Para el usuario, ambas experiencias son nativas y transparentes. Para los desarrolladores, la vida es más fácil.

Enviar comentario

Google TV

Jueves, Mayo 20th, 2010

Google TV fue anunciado hoy en el Google I/O 2010. Es una "caja" que se integra con el TV, el cable y todo tu sistema de entretenimiento y añade una caja de busqueda, la web entera y el sistema operativo Android de manera transparente a la televisión. El código de Google TV es open source.

Lo realmente revolucionario es que funciona.

Televisión + Busqueda

El primer cambio es simbólico para Google. Una caja de búsqueda en el TV cambia la forma y la usabilidad de la televisión. Puedes poner el nombre de un canal y te lo cambia. El de un show y te lo pone en el canal que esté. Si no está en vivo, te lleva a la web para verlo en demanda donde lo encuentre.

La web completa: Android + Chrome + Flash

Google TV trae un navegador completo (Chrome con Flash 10.1) con lo que es posible usar Youtube, Hulu, Youporn, Amazon OnDemand, Netflix o lo que sea. Completamente integrado con la televisión.

Antes podías hacerlo con Boxee y un par de hacks, pero no tan fácil como Google TV. Y definitivamente superior a como Apple TV lo hace.

Un teclado o un Android o?

La idea es reemplazar el control remoto de tu TV con uno de los muchos controles "universales" creados para Google TV. Controlan todo tu TV, pero también dan un teclado y acceso total a la web completa. Eso puede ser un punto en contra, pero si el uso se masifica, será natural comprar un Televisor que diga "GoogleTV Ready".

O puedes usar Android. Google empujó en el I/O 2010 mucho el uso de Android. Si tienes un teléfono con Android, puedes simplemente decirle "cnn" por voz y el canal cambiará. Control completo por voz o touch con el teléfono.

En teoría, el protocolo de control de Google TV es abierto, así que quizás pueda haber una app para iPhone que controle Google TV. Eso es si Apple lo aprueba.

Youtube Leanback y rentals

Corto y rápido. Google cree que sabe lo que te gustaría, así que creo Youtube Leanback. Un algoritmo detecta tus costumbres y videos más vistos y reproduce automáticamente videos que el algoritmo asume que te gustarán. Igualmente, Youtube lanzó la posibilidad de rentar películas y series, que podrás ver en la app de Youtube de Google TV.

Tienda de aplicaciones para tu TV

Al igual que Android, Google TV tiene un market de aplicaciones instalables en el TV. Apps especializadas de Netflix, FOX y demás para dar una interfaz mucho más optimizada que un sitio web y así acceder a contenido por demanda.

Las apps moviles de Android funcionan en Google TV también. Igual que las apps de iPhone funcionan en iPad. Ligeramente "escaladas", pero funcionan. Tienes Android entero en tu TV.

¿Te interesa?

Funciona, es lindo. Pero claramente está enfocado al mercado gringo inicialmente. Yo uso un laptop conectado a Boxee para hacer algo muy similar a Google TV, pero gratis y ya mismo. Google TV tiene Android, Youtube y lo más importante, la caja de búsqueda. Falta ver precios y detalles, pero ¿Te interesa? ¿Lo comprarías?

Enviar comentario

Adobe abandona iPhone en Flash, se enfoca en Android

Miércoles, Abril 21st, 2010

Mike Chambers, manager de Flash Platform en Adobe, anunció hoy en su blog que Adobe dejará de invertir en herramientas para desarrollo orientado al iPhone de Apple. No es una sorpresa, pero es la posición oficial de Adobe frente a Apple y su prohibición de apps hechas en Flash dentro de la App Store.

Android, el futuro para Adobe

Además, anuncian que Android será la plataforma móvil donde se dirigirán sus esfuerzos. Hablando del Motorola Droid, el Nexus One y la tabla Android con NVIDIA Tegra, futura competidora del iPad.

Hablan de otros sistemas operativos móviles, pero el enfoque clave del artículo es en Andoid.

Adobe reitera lo cerrado de Apple, se compromete con "open"

Recuerdan además que Apple no sólo ha restringido el desarrollo de apps para iPhone con herramientas de terceros, sino también el uso de otras redes de publicidad (como AdSense) diferentes a las propias de Apple, así como su ilógico sistema de rechazo de apps por contenido.

Cierra el artículo Mike asegurando que "las plataformas abiertas le ganarán al final a aquellas cerradas y controladas que Apple quiere crear", recordando que Adobe AIR y Flash Player 10.1 permitirá crear apps nativas para Android, Palm, Windows Phone 7, Symbian y Blackberry.

Lo que me deja esperando que ponga su dinero donde sus palabras están. Que abran el Flash Player como open source, igual que Flex. Ya es hora.

Enviar comentario

Multitouch con Adobe AIR 2, Flash Lite 4 y Flash Player 10.1

Lunes, Febrero 22nd, 2010

-
Con las novedades del Flash Player 10.1, Flash Lite 4 y AIR 2.0 existe una que a los usuarios de iphone o macbook les debe ser muy familiar, el multitouch. En este tip enseñaremos como utilizar la clase TransformGestureEvent que nos permite zoom y rotar elementos. Para eso necesitamos Flash Builder con el SDK de AIR 2.0 que ya pueden descargar del sitio Adobe Labs. Cuando Flash CS5 sea liberado, también podrán usarlo para sus aplicaciones.

Una vez configurado el SDK de AIR 2.0, creamos un proyecto FLEX del tipo Desktop (Adobe AIR) y lo primero que haremos es cargar una imagen que usaremos de ejemplo:

Código :

var l:Loader = new Loader();
l.load(new URLRequest("logo.png"));
l.x = l.y = -100;
$__img1 = new Image();
$__img1.addChild(l);
this.addElement($__img1);
$__img1.x = $__img1.y = 200;

Con eso agregamos un elemento a nuestro stage de la aplicación, y ahora pasamos a agregar un evento para que detecte la rotación, usaremos el evento TransformGestureEvent del tipo GESTURE_ROTATE

Código :

this.addEventListener(TransformGestureEvent.GESTURE_ROTATE, _rotation, false, 0, true);

Este evento se dispará cuando se detecte los dos dedos sobre el stage y hagas el movimiento de rotación

Código :

private function _rotation(e:TransformGestureEvent):void{
$__img1.rotation += e.rotation;
}

Ahora, si queremos usar el zoom o escalar los elementos abriendo o cerrando los dedos sobre el stage usamos GESTURE_ZOOM del evento TransformGestureEvent.

Código :

this.addEventListener(TransformGestureEvent.GESTURE_ZOOM, _zoom, false, 0, true);

Y creamos su función:

Código :

private function _zoom(e:TransformGestureEvent):void
{
   if (e.scaleX > 1)
   {
      $__img1.scaleX += e.scaleX / 100;
      $__img1.scaleY += e.scaleY / 100;
   }
   else
   {
      $__img1.scaleX -= e.scaleX / 100;
      $__img1.scaleY -= e.scaleY / 100;
   }
}

Aquí es necesario un IF porque siempre está detectando que el zoom actual es 1 cada vez que interactuas, entonces si juntas los dedos al momento de querer hacer ZoomIN, irá de 1.0, 0.9, 0.8 así sucesivamente.

La aplicación final quedaría así:

Código :

<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009"
                  xmlns:s="library://ns.adobe.com/flex/spark"
                  xmlns:mx="library://ns.adobe.com/flex/mx"
                  creationComplete="init()"
                  width="320"
                  height="400">

   <fx:Script>
      <![CDATA[
         import mx.controls.Image;
         private var $__img1:Image;

         //
         private function init():void
         {
            var l:Loader=new Loader();
            l.load(new URLRequest("logo.png"));
            l.x=l.y=-100;
            $__img1=new Image();
            $__img1.addChild(l);
            this.addElement($__img1);
            $__img1.x=$__img1.y=200;
            //
            $__img1.addEventListener(MouseEvent.MOUSE_DOWN, activeMove, false, 0, true);
            $__img1.addEventListener(MouseEvent.MOUSE_UP, activeMove, false, 0, true);
            this.addEventListener(TransformGestureEvent.GESTURE_ROTATE, _rotation, false, 0, true);
            this.addEventListener(TransformGestureEvent.GESTURE_ZOOM, _zoom, false, 0, true);
         }

         private function _rotation(e:TransformGestureEvent):void
         {
            $__img1.rotation+=e.rotation;
         }

         private function _zoom(e:TransformGestureEvent):void
         {
            if (e.scaleX > 1)
            {
               $__img1.scaleX+=e.scaleX / 100;
               $__img1.scaleY+=e.scaleY / 100;
            }
            else
            {
               $__img1.scaleX-=e.scaleX / 100;
               $__img1.scaleY-=e.scaleY / 100;
            }
         }

         private function activeMove(e:MouseEvent):void
         {
            if (e.type == MouseEvent.MOUSE_DOWN)
               $__img1.startDrag();
            else if (e.type == MouseEvent.MOUSE_UP)
               $__img1.stopDrag();
            else
               throw new Error("upsss!!!");
         }
      ]]>
   </fx:Script>
</s:WindowedApplication>

Puedes descargar el ejemplo aquí, necesitas tener el runtime de AIR 2

Enviar comentario