May
16

Flash Player 10 beta disponível no Adobe Labs

A Adobe disponibilizou o Flash Player 10 no Adobe Labs. Esta nova versão do Flash Player traz novidades revolucionárias, como suporte de 3D nativo, aceleração por hardware, e suporte para filtros e efeitos criados pelo utilizador.

A versão do Flash Player disponibilizada é compatível com Windows, MacOS (>=10.4), Linux e Ubuntu.

Novas funcionalidades

Filtros e efeitos criados pelo utilizador > ver vídeo

Através do Adobe Pixel Bender quem quiser pode agora criar novos filtros e aplicá-los nas suas aplicações Flash de uma forma tão simples como fazia anteriormente com os filtros existentes. Os filtros criados pelo utilizador podem ser aplicados a qualquer tipo de DisplayObject, desde imagens e vectores a vídeo. Os filtros podem depois ser animados em runtime.

Suporte 3D nativo > ver vídeo

Podemos finalmente usar 3D nas nossas aplicações sem termos que recorrer ao Papervision 3D, Sandy ou Away3D, graças ao suporte embutido da coordenada Z. O melhor é ver o vídeo acima. :)

Melhorias drásticas no suporte a texto > ver vídeo

O suporte a texto foi drasticamente melhorado, permitindo:

  • Aplicar anti-alias, rotações, etc, às fontes de sistema (device fonts);
  • Suporte a texto right-to-left;
  • Suporte a elementos tipográficos, como ligaduras tipográficas;
  • Controlo do layout do texto através de tabelas, imagens inline, colunas;
  • Suporte de anti-aliasing avançado (Saffron 3.1), que aumenta a performance e a qualidade das fontes anti-aliased;

Melhorias à Drawing API > ver vídeo

É agora muito mais fácil desenhar sem ser necessário recorremos à técnica do “lineTo”, “lineTo”, “lineTo”, sendo possível construir figuras complexas com relativa simplicidade. Uma das características da nova Drawing API é a possibilidade de alterar figuras já construídas - o que simplificará largamente o processo de se animarem figuras desenhadas pelo utilizador.

Aumento da performance visual graças a aceleração por hardware > ver vídeo

Através de um parâmetro no código de Embed do SWF o Flash Player passará a utilizar a placa gráfica para calcular efeitos de composição de bitmaps, filtros, blend modes, vídeo, etc, deixando mais espaço para o CPU respirar. Em utilizadores cuja gráfica na seja suportada, o Flash Player adapta-se para utilizar o processador, tal como acontecia antes.

Suporte de audio e vídeo melhorados

Foi introduzido o suporte de Dynamic Streaming que permite que seja ajustada automaticamente do lado do servidor a qualidade do vídeo de forma a optimizar a experiência de visualização do utilizador, evitando-se o efeito de “vídeo aos soluços”. Este ajustamento é feito através de cálculos de qualidade do serviço que medem tanto as condições da rede (largura de banda) ao longo do tempo, como informações do CPU.

O suporte de streaming por RTMP também foi melhorado, sendo introduzido o protocolo RTMFP que não é mais do que o RTMP a correr sobre UDP, obtendo-se uma performance muito superior.

O audio também foi melhorado com a introdução de um novo codec - Speex - que permitirá uma melhor qualidade de som com menores necessidades de largura de banda.

Acesso ao FileReference em runtime

Esta é uma das minhas funcionalidades favoritas! É agora possível utilizar a janela de browse para escolher um ou mais ficheiros no disco, manipulá-los localmente (sem ser preciso enviar para o servidor), e depois voltar a colocá-los no disco. Basicamente, o utilizador poderá agora escolher, por exemplo, uma imagem com vários megas, sendo imediatamente carregada no Flash Player (sem ser preciso ser enviada para o servidor). Poderão posteriormente ser aplicadas transformações à imagem, e ser gravadas localmente ou no servidor, caso o pretendamos.

Outras funcionalidades

  • Gestão de cor - os SWFs podem ser convertidos para sRGB, e podem utilizar os perfis de cor (ICC) dos monitores;
  • Geração dinâmica de som;
  • Novo tipo de dados: Vector - este novo tipo de dados foi introduzido em conformidade com a norma EcmaScript 4, resultando em ganhos de performance. Um Vector é o mesmo que uma matriz, com a particularidade de que todos os elementos que agrega são do mesmo tipo de dados;
  • Suporte de bitmaps até 16,777,216 pixeis (4096×4096)
  • Controlo do context menu: temos agora mais poder sobre o context menu, sendo inclusivé possível colocar Rich Text nas opções do context menu;
  • Suporte à norma GB18030 (o conjunto de caracteres chineses mais recente);
  • Suporte ao Ubuntu OS.

Para experimentar a nova versão do Flash Player será preciso remover a anterior. Para quem trabalha com Flash/Flex e não quiser perder o Flash Debug Player, é recomendado que removam o Flash Player 9 apenas no Internet Explorer e instalem o Flash Player 10 para IE, mantendo o Flash Debug Player 9 no Firefox.

Mais informações sobre o Flash Player 10 aqui.




May
01

Adobe anuncia Open Screen Project - Flash Player em TODO o lado

Segundo as estatísticas da Adobe, o Flash Player está hoje em dia em 98% dos computadores ligados à Internet. Sendo o bytecode dos SWFs interpretado da mesma forma pelos diferentes sistemas operativos, browsers e agora também aplicações desktop através do Adobe Air, poderíamos incorrer no erro de dizer que o Flash Player é a melhor forma de construírmos aplicações ubíquas.

Porém, cada vez mais o futuro passa por usarmos outros dispositivos para ligar à Internet, além do nosso PC. Telemóveis, PDAs, a própria televisão, e até o nosso carro. Se pensarmos desta forma a penetração de 98% já não parece tão relevante…

Conscientes desta realidade, a Adobe deu um passo em frente ao anunciar o Open Screen Project. Este projecto consiste essencialmente em remover restrições de várias licenças, a publicação de alguns protocolos, e a consolidação de esforços com entidades como a Cisco, Intel, LG, Motorola, Nokia, Samsung, Ericsson, Toshiba, etc, etc, no desenvolvimento de uma solução verdadeiramente ubíqua a correr nos mais variados dispositivos.

O que se pretende é que o mesmo Rich Content que designers e developers colocam na Internet para correr nos nossos PCs através do Flash Player passe também a poder correr da mesma forma em qualquer dispositivo. Ou seja, os nossos sites, RIAs, e experiências multimédia passam realmente a poder ser acedidas de qualquer local e dispositivo.

Os primeiros passos que a Adobe vai tomar são:

Remoção das restrições na utilização das especificações SWF e FLV/F4V e
publicação das APIs de portabilidade do Flash Player para dispositivos

Com isto, quem quiser instalar o Flash Player num dispositivo pessoal poderá fazê-lo. O objectivo não é fazer com que comecem a surgir uma panóplia de versões do Flash Player incompatíveis entre si (perdendo-se a ubiquidade), mas sim permitir que outros vendedores possam desenvolver a camada necessária que permita integrar e correr o flash player nos seus próprios dispositivos.

Publicação dos protocolos Adobe Flash Cast e AMF

Não só foram publicadas as especificações SWF e FLV/F4V, como as especificações dos formatos de comunicação de dados usados pelo Flash Player. Pretende-se com esta iniciativa em específico que os mais variados dispositivos possam utilizar Flash/Flex Remoting e os protocolos Flash Cast para comunicar com o servidor.

Remoção dos custos de licenciamento do Flash Player e Adobe Air

Passa a tornar-se gratuíto distribuir o Flash Player e o Adobe Air. Quer isto dizer que quem quiser colocar uma versão do Flash Player junto da sua aplicação, ou mesmo equipar um modelo de telemóvel ou outro dispositivo com o Flash Player, poderá fazê-lo gratuitamente.

São no fundo notícias importantes tanto para o utilizador final como para quem desenvolve na plataforma Flash. Caminha-se para a ubiquidade, e cada vez mais teremos acesso às suas aplicações e experiências multimédia a partir de qualquer local e dispositivo.

Mais informações




Apr
08

Bug no FlashPlayer? Queixem-se à Adobe!

Depois de ter disponibilizado o acesso ao bugtracker do Flex e do BlazeDS, chega agora a vez do próprio Flash Player ter o seu exposto à vista de todos.

O bugtracker irá listar todos os bugs actuais que não estejam relacionados com segurança visto esses tornarem-se privados para evitar que se utilizem como exploits até serem corrigidos.

Não encontrou o bug no sistema? Têm a certeza que é um bug? Então já pode, não só adiciona-lo, como acompanhar a evolução da resolução do mesmo.

Mais um passo da Adobe que confirma o seu empenho em colaborar com a comunidade.

Justin Everett-Church ( Product Manager ) diz mesmo que poderão influenciar o que o próximo Flash Player irá suportar, bastando para isso, inserir um Enhancement Request ou comentar/votar num já existente.




Mar
31

Adobe onAIR Tour Madrid - Parte 2 (Tarde)

O Ricardo Castelhano ficou com os dedos cansados e pediu substituição na tarefa de blogger. Portanto, aqui vai o resumo do que se vai passando durante a tarde.

[13:45] Adobe AIR API Overview (Daniel Dura)

O Daniel Dura está a demonstrar as funcionalidades da API do Adobe Air. Acabou de mostrar o quão simples é criar uma janela normal do sistema operativo (NativeWindow), e definir as suas propriedades. Por exemplo, alterar o chrome.

Explicou que existem vários tipos de NativeWindowType:

  • Normal - janela normal do sistema operativo
  • Lightweight - ideal para usar por exemplo em popups.
  • Utility - ideal para usar por exemplo em paneis dockable, e janelas para complementar a janela “Normal”

Está neste momento a demonstrar a api de File I/O, que obviamente permite a leitura e escrita de dados no disco local. Podemos escrever as nossas próprias janelas de diálogo para interagir com o disco, ou usar as do sistema operativo.

Explicou que existem duas formas de interagir com ficheiros: sincrona e assincrona. Para quem não sabe, a síncrona irá interromper a aplicação enquanto um ficheiro carrega. A assíncrona permite que a aplicação continue a correr como normalmente, e quando o ficheiro termina de carregar é lançado um evento a avisar que o ficheiro está disponível.

Acabou agora de explicar que é possível chamar a janela de dialogo do sistema operativo para “browse” de ficheiros de três diferentes formas:

  • browseForDirectory
  • browseForSave
  • browseForOpen

Está neste momento a mostrar que ao abrir um ficheiro é possível ir buscar praticamente todo o tipo de informação do ficheiro, como por exemplo, a imagem do ícone.

Chegou o momento de demonstrar como fazer ligações SQL a partir do Adobe Air. É realmente muito simples - muito semelhante ao que se faz em PHP.

[Nota: presentes no evento a representar a Adobe, vi o Ryan Stewart, Lee Brimelow, Daniel Dura, Mike Chambers, Enrique Duvos, Serge Jespers, Chris Brichford, Andre Charland, a Sumi Lim e o nosso Paulo Coelho. Também me cruzei com o Carlos Rovira e outros nomes que não me recordo agora]

Estamos agora na API de Drag/Drop e de acesso ao Clipboard. Esta é de longe uma das funcionalidades mais interessantes, visto que não é particularmente fácil criar um sistema de drag&drop multi-plataforma. Está a mostrar uma aplicação que permite arrastar uma “imagem” da aplicação para fora da mesma para outras aplicações no sistema operativo. O Luís da Flag explicou-me que o suporte multi-plataforma é conseguido graças ao facto de que todos os sistemas operativos possuem um clipboard, e foi através disso que foi implementado o suporte de drag&drop.

Chegou a altura de ver o suporte de icones. As aplicações Air recebem ícones no formato PNG, e é possível definir ícones para quase tudo (tray icon, application icon, etc) e em runtime.

O Daniel Dura está neste momento a mostrar como se faz para monitorizar se a aplicação está ligada ou não à Internet. É realmente fácil: basta instanciar um URLMonitor, e adicionar os respectivos eventListeners para escutar as alterações ao estado da ligação.

Outras funcionalidades genéricas são por exemplo: gravar localmente dados encriptados; notificações de dock; e notificações de idle. No blog do Daniel Dura existem/existirão variados exemplos de como usar quase todas as funcionalidades da API do Adobe Air.

[14:30] Data Intensive Enterprise AIR Applications (Enrique Duvos)

Começa a sessão do Enrique Duvos. Em Espanõl… Vai ser um bocado complicado acompanhar esta, mas vamos ver o que se consegue fazer…

O Enrique começa por mostrar o Census feito pelo James Ward, uma aplicação para comparar em termos de performance e largura de banda as diferentes tecnologias/métodos de comunicação com o servidor. Dá obviamente destaque à performance do Flash Remoting, que é de longe a mais eficiente de todas.

Explica que o Flex pode ligar a praticamente qualquer backend, e começa a explicar as vantagens do LCDS - LiveCycle Data Services. Tais como poder “empurrar” dados para os clientes (sim, o servidor toma iniciativa), sincronizar dados entre todos os terminais, etc.

Explica que existe uma solução open-source suportada pela Adobe que possui parte das funcionalidades do LCDS, o BlazeDS. Está a demonstrar uma aplicação “fictícia” que permite que todos os clientes possam ver em real time os dados da bolsa. Sempre que é actualizado o valor de uma acção no servidor, todos os clientes recebem esses dados.

Mostra a versão Air da aplicação, de forma a demonstrar que é possível ter múltiplos clientes tanto web como desktop a consumir mensagens.

[Nota: O Ricardo Castelhano também está a bloggar sobre o evento em real time. ]

O Enrique está agora a demonstrar aplicações que se sincronizam assim que a ligação volta a ficar disponível. Isto é, se tivermos a trabalhar, e a ligação cair, quando a ligação é reposta o data management permite sincronizar os dados sem que se percam. Ou por exemplo, podemos construir uma aplicação que pode correr tanto offline como online usando os mesmos dados. Quando está offline, os dados são gravados localmente. Quando a ligação é reposta, são sincronizados com o servidor (com gestão de conflitos incluída). Chama-se a isto “Offline synchronization using LCDS Data Management”.

Termina a sessão do Enrique. Não consegui acompanhar tudo, mas ficou aqui o principal…

(Ricardo Castelhano here…o PC do João Saleiro está com stresses…falta-lhe o RedBull ! Vamos aguardar para o PC arrefecer um pouco, e o João já voltará ao “live posting”)

[João Saleiro: back to live blogging. Aparentemente o portátil estava excessivamente quente... Uff!!]

A sessão do Chris Brichford já vai quase no fim, e já não consigo perceber bem o que se está a fazer. Basicamente, o tema é:
[15:05] HTML / JavaScript desktop applications on Adobe AIR. (Chris Brichford)


Learn how add desktop functionality to an HTML application running on Adobe AIR on the desktop. Learn about using the drag and drop API, the file system API, and other Adobe AIR APIs from HTML.O Chris está neste momento a mostrar como é possível fazer ligações a um servidor SQL a partir de HTML/Javascript usando a API do Adobe Air.

Começa a sessão seguinte.

[15:35] Using JavaScript Frameworks in AIR Applications (Andre Charland)

O Andre apresenta-se, e apresenta a empresa dele: Nitobi. Explica que trabalham sobretudo com AJAX, e que é uma empresa relativamente pequena. Apesar disso trabalham com empresas com a BMW, Nintendo (e outras que não me lembro do nome, já passou o slide).

Porquê usar AJAX com Air?

  • Reutilização de código
  • Reutilização de skills
  • HTML é realmente bom em algumas coisas
  • Manter alguns padrões de UI
  • O Javascript continua a crescer

As frameworks AJAX compatíveis com AIR:

  • Spry
  • jQuery
  • mochikit
  • nitobi
  • mootools
  • extjs
  • yahoo ui library
  • dojo

São demonstrados alguns exemplos de aplicações AIR feitas com AJAX. Está agora a mostrar um exemplo de um “FishEye Menu” feito em AJAX a correr dentro do AIR. Concorrência ao meu (versão em Flash). A fluídez do menu pareceu-me um bocado “choppy”, mas talvez seja do computador do Andre.

Explica que os clientes muitas vezes exprimem preocupações relativamente à necessidade de se ter que descarregar e instalar um runtime para se instalar uma aplicação, mas que o install badge do Adobe Air vem resolver todos esses problemas, bastando ao utilizador fazer um clique, e o resto é gerido pelo Air.

O Andre falou de algumas experiências pessoais/profissionais com o AJAX e o Adobe Air.

Termina a sessão.
[16:30] AIR Conditioning (Lee Brimelow)


Nesta sessão vão mostradas as funcionalidades da API do Adobe Air usando Flash. É uma sessão direccionada sobretudo aos Flash Designers. A primeira API a apresentar será a Windowing API.

São mais uma vez apresentados os Window Types do Air, Normal, Utility e LightWeight. O Lee explica que a Lightweight window não cria janela nenhuma: somos nós que a temos que desenhar. Relativamente ao “chrome”, existem:

  • System chrome;
  • Custom (opaque);
  • Custom (transparent);

É mostrado o código para criar uma NativeWindow. É extremamente fácil e intuitivo. A classe NativeWindow possui métodos e propriedades como:

  • activate()
  • alwaysInFront=true;
  • close()
  • maximize()
  • minimize()
  • orderInBackOf(otherWin);
  • orderInFrontOf(otherWin);

O Lee explica agora como adicionar essa Window ao nosso Stage. Basta simplesmente definir as propriedades da janela (largura, altura, alinhamento, etc) fazer um addChild ao Stage. Simplicíssimo!

São agora apresentados os eventos:

  • activate
  • deactivate
  • closing
  • close
  • moving
  • move
  • resizing
  • resize
  • display_state_changing
  • display_state_change

O Lee explica que numa aplicação Flash tradicional que corra em Full Screen não é possível ler dados do teclado por motivos de segurança. Com Air é possível contornar isso, visto tratar-se de uma aplicação desktop que o utilizador tem que instalar explicitamente.

Está agora a apresentar uma mini-aplicação que permite criar janelas dinamicamente para mostrar as diferenças entre os tipos de janelas.

Começa a explicar os Native Menu Types que são possíveis de criar no Air:

  • Application menus
  • Window Menus
  • Context Menus
  • Dock and System tray menus
  • Popup menus

O Lee explica que há certos OSes podem não suportar menus. Para verificar isso, pode ser usado uma estrutura condicional if (NativeApplication.supportsMenu).

Entramos outra vez na API de File I/O. Como já se falou muito na File I/O API, o Lee está a passar por cima disso muito rapidamente. É novamente explicado que a API pode ser síncrona e assícrona (ver acima). A API possui ainda algo extremamente útil, um conjunto de métodos que devolve as directorias de sistema independentemente do sistema operativo.

O Lee está agora a falar em Encripted Storage, que permite gravar no local Filesystem dados encriptados, como passwords, e outra informação sensível.

O Lee explica agora como se cria uma base de dados local, como se faz uma ligação e como se acede aos dados.

Surge então a parte de “OS Interaction”. Existe uma propriedade no Air que permite activar o “Launch on Login”, que permite que uma aplicação corra automaticamente quando um utilizador faz login no Windows. É possível também gerir as associações dos ficheiros do sistema operativos.

Outra coisa interessante, é escutar eventos que indicam se o utilizador está ou não a usar a aplicação, nomeadamente detectando se um utilizador está idle ou não. É também possível detectar se o utilizador está a fechar a aplicação, para, por exemplo, gravarmos dados antes que esta feche.

Voltamos à parte da ligação à internet, que permite gerir ligações ocasionalmente ligadas, permitindo detectar tanto o HTTP Status como o estado de uma ligação por sockets.

O Air permite ainda colocar duas aplicações a comunicar entre elas, através do LocalConnection. Para identificar as aplicações é usado o appID.

O Lee diz que é já possível descompilar código Actionscript de aplicações para o Flash 9. Está a mostrar o AOL Music - Top 100 vídeos, uma aplicação AIR muito gira e que uso várias vezes. Pergunto-me o que irá ele fazer… descompilar a aplicação? Ok, e foi mesmo isso. Simplesmente abriu o SWF, e o Sothink SWF Decompiler mostra tudo: imagens, morphs, código, etc. O código não é 100% descompilado, mas sim 95%. Há algumas coisas que não são possíveis recuperar.

Chega a hora da imperial! :P




Feb
21

Material das apresentações do Portugal Flex Camp

Está finalmente reunido o material usado nas apresentações do Portugal Flex Camp. Deixo-vos abaixo os links:

Vou ver ainda se consigo que me entreguem os vídeos das apresentações, embora não saiba se será possível.

top