Dec
17

Aniversário do RiaPT: a minha apresentação sobre a Display List

Foi com enorme satisfação que participei e ajudei no evento de aniversário da comunidade. Espero que esta continue a crescer conforme tem demonstrado, e tenho a certeza que ano de 2008 será o ano de expansão das RIAs a nível mundial mas também neste nosso cantinho ao fundo da Europa chamado Portugal.
Quero desde já referir também a qualidade das apresentações do evento que superaram e de que maneira as minhas expectativas. Sem desprimor para as restantes, os meus parabéns para as apresentações do Paulo Moreira e do Luís Costa, pois apresentando exemplos de aplicações reais acho que se destacaram das outras.

Concordo com o João e outros que já comentaram o evento na mailing list, nomeadamente que no próximo teremos que fazer um programa com horário, intervalos, coffee breaks, jantar, strippers, convívio, …, pois penso que aí falhamos, mas também acho que esta falha foi resultado da grande afluência e o que se projectou ser uma reunião informal, acabou por ser um workshop de muito bom nível. Tenho a certeza que para a próxima não falharemos nesse aspecto.

Não posso também deixar de referir o meu agradecimento a FLAG pelo apoio e disponibilização das suas instalações para a realização deste evento.

Para concluir e em jeito de mini tutorial, vou deixar aqui um resumo da minha apresentação - Display List em Flash CS3, conforme prometido, e apelar também a todos aqueles menos “geeks” da comunidade que não se acanhem e comecem também a participar. É essencialmente a esses a quem eu me quis dirigir com esta apresentação, e a todos os que estão em processo de migração do AS2 para o AS3..

Display API / Display List em AS3

Umas das principais funcionalidades do Actionscript é mostrar elementos no ecrân. Para tal a plataforma Flash disponibiliza-nos uma grande variedade de ferramentas para criar e manipular elementos gráficos que poderão ser divididas em 2 categorias:

  • Flash runtime API: são um conjunto de classes que permitem utilizar e interagir com elementos visuais, assim como utilizar bitmaps e formas vectoriais.
  • User Interface Components
    • o conjunto de UI componentes da framework do Flex, uma colecção personalizável de pequenas user-interfaces construidas em cima da Display API.
    • o conjunto de UI componentes do Flash, semelhante ao do Flex mas simplificado e com funcionalidades mais limitadas, assim como em muito menor numero.

A Display API, está presente em todas as plataformas Flash e portanto disponível em qualquer ficheiro .swf . Todos os elementos gráficos criados em Actionscript são criados e manipulados através do conjunto de classes que constituem esta API.

Todas estas classes estão hierarquizadas de forma reflectir 3 níveis de funcionalidades, nomeadamente: Visualização, Interactividade e de Contentor. Estas funcionalidades correspondem as classes DisplayObject, InteractiveObject e DisplayObjectContainer. Estas classes não podem ser instanciadas e servem unicamente como Abstracção para classes mais concretas e que estão estruturadas da seguinte forma:

Display API - classes

No 1º Nível teremos todas as classes que descendem da class DisplayObject, e por esse motivo qualquer instância destas poderá ser posicionada, escalada, etc… Ou seja, podemos utilizar as propriedades x, y, width, height,…. Teremos também neste nível métodos de conversão de coordenadas como localToGlobal(), globalToLocal(), …, e possibilidade de testar colisões ou intersecções com os métodos hitTestPoint(), hitTestObject(), … Podemos também a estas classes aplicar transformações, mascaras e filtros.

No 2º Nível teremos todas as classes que descendem da classe InteractiveObject pelo que todas as instâncias destas poderão responder a eventos de rato e teclado.

No 3º Nível, teremos as classes que descendem do DisplayObjectContainer pelo que essencialmente é-lhes acrescentada a particularidade de poderem conter outras instâncias dentro destas, sendo que o nível de sobreposição dentro de cada container será gerido pela Display List como será explicado seguidamente. Dentro destas classes temos o MovieClip e o Sprite cuja diferença é essencialmente o facto do Sprite ser um MovieClip sem timeline (um MovieClip só com uma frame).

Display List

Definidas as classes visuais, a gestão de como todos os elementos gráficos aparecem no palco é feita por uma Display List, que não é mais nem menos que uma estrutura hierárquica que gere os níveis de sobreposição de todos os elementos de um .swf - pode ser vista como a sobreposição de objectos no eixo dos zz, tal como se faz com as layers no Photoshop ou outra aplicação do género.

Ao ser criado um .swf é criada uma instância da classe Stage, instância esta que irá conter a nossa aplicação Flash, seja esta feita directamente na timeline, ou criada por uma Document Class. Dentro da instância da aplicação serão acrescentados todos os elementos gráficos através do método addChild(), ou addChildAt(), conforme a representação gráfica que se segue:

Display List

Depths

Acrescentar elementos à Display List faz com que o nível de sobreposição seja sequencial e a medida que se acrescenta um elemento este fica numa hierarquia superior ao elemento anterior. No entanto poderemos utilizar alguns métodos para remover, alterar, trocar, ler níveis. É de salientar que esta gestão é gerida toda ela pela própria Display List, não podendo haver níveis vazios entre elementos gráficos. Podem experimentar alguns destes métodos na animação que se segue, sendo que se quiserem poderão também ler o código desta neste ficheiro .fla:

Despeço-me por aqui, e espero que este seja o primeiro de muitos posts para aquele pessoal menos “geek. Desafio também o resto dos presentes a participar, e mais uma vez foi um prazer fazer parte do evento.




Dec
16

As minhas conclusões do encontro do primeiro aniversário do RiaPT

Bolo do riaptPrometi a mim próprio que mal chegasse a casa iria descansar e…. vou quebrar essa promessa, deixando aqui as minhas conclusões do encontro de hoje antes de ir dormir.

Queria dizer que fiquei surpreso com o número de inscrições no evento, e algo que seria supostamente um encontro entre “geeks” maluquinhos das RIAs a apresentarem coisas “geeks” para “geeks”, acabou por se tornar num conjunto de apresentações, que embora não tenham tido a qualidade de um Adobe Max, até foram bastante interessantes considerando que não houve qualquer tipo de organização/preparação.

Estão de parabéns os que foram assistir, estão de parabéns os que apresentaram, e se houve desilusões, digam o que não gostaram (e o que gostaram) para corrigirmos num futuro evento.

Este tipo de eventos não é suposto que seja perfeito - era supostamente um “encontro informal” -, mas de qualquer forma existem alguns pontos menos positivos a corrigir num próximo:

  • O nível técnico na generalidade talvez tenha sido demasiado alto. A grande maioria das pessoas está ainda a conhecer estes mundos, e talvez tivesse sido mais proveitoso se as apresentações tivessem sido mais introdutórias. Ou pelo menos que a primeira apresentação tivesse sido de introdução às RIAs, e respectivas tecnologias tal como aconteceu no seminário no ISCTE (apresentação disponível aqui)
  • A minha entrada (boas vindas) não correu particularmente bem, estava demasiado “speedado”, muito ausente e talvez devesse ter perdido um pouco mais de tempo com alguns conceitos de base.
  • Ainda não foi hoje que o Silverlight me surpreendeu. Queria ver algo prático, algo demonstrativo do desenvolvimento em Silverlight e mais uma vez fiquei sem conhecer a plataforma.
  • Talvez tivesse sido preferível ter havido uma apresentação mais introdutória sobre Cairngorm, com um conjunto de motivações e razões para a sua aprendizagem antes da apresentação do João Fernandes. Embora seja muito fácil utilizar a framework, para a perceber é preciso dominar conceitos muito técnicos e difíceis de interiorizar. Tirando isso, o João Fernandes esteve muito bem, visto que não é nada fácil explicar Cairngorm ainda mais em tão pouco tempo.
  • As strippers mais uma vez não apareceram. O que, é no mínimo chato…
  • E, aquele que considerei o ponto menos positivo: para um encontro informal, foi demasiado formal! Os objectivos principais do encontro eram mesmo promover o conhecimento entre as pessoas, e as apresentações eram “apenas” um extra para criar um precedente. Vim-me embora sem ter nomes associados a caras, o que é algo que não poderá acontecer num próximo evento, até porque vai completamente contra os objectivos da comunidade. Num próximo evento, terá que haver um intervalo de pelo menos hora e meia, com comida à mistura, para que as pessoas possam falar livremente. E no final, voltamos à comida e à conversa, mas ficarmos sem confraternizar é algo que não pode voltar a acontecer!

Positivamente, tenho a realçar:

  • O número de pessoas que foi ao evento, que superou de longe as expectativas!
  • O facto de, não tendo havido nenhuma organização em específico e preparação prévia, as apresentações até terem corrido bem.
  • A apresentação do Asko/”A minha primeira aplicação em Flex”, pelo Luís Costa, foi bem feita e deviam ter havido mais apresentações do género, de pessoas que entraram à pouco tempo nesta área, com as respectivas dificuldades e sucessos. Mas continuo a achar que a aplicação precisa de um novo interface gráfico. Algum designer se oferece para fazer um novo layout para a aplicação?
  • Fiquei completamente estupefacto com a apresentação do Paulo Moreira, “And now for something completely different”. É realmente fantástica a utilização que ele faz do Flash, e é algo que eu gostaria imenso de ver ao vivo. Ainda estou pasmado, e espero vir a voltar a ver mais coisas do género. Acima de tudo, também fiquei extremamente contente por ver alguém que puxa o Flash aos limites, e sabe o que faz e do que fala. Paulo Moreira, por favor, estou ansioso pela tua próxima apresentação!!
  • Julgo que a minha apresentação de integração do Flash CS3 com o Flex 2 foi muito útil, até porque vai ajudar muitos dos que usam Flash CS3 a arriscar-se um pouco mais a entrar no Flex, pois agora têm a opção de escolher a ferramenta certa para cada caso. Enquanto esperamos pelo Thermo…
  • Deu para perceber que, apesar do Flex ser algo ainda novo para muitos dos presentes, valeu muito a pena apresentar Cairngorm pois o problema da organização do código, não só em Flex mas noutras linguagens, é um problema sentido por muitos dos que tiveram presentes que perceberam o objectivo da framework.
  • Também gostei bastante da última apresentação, do Alexandre Xavier, mostrando o Flash a ser usado no contexto que menos esperaríamos: na área da engenharia industrial. Colocar o Flash a comunicar com aplicações como o Autodesk Inventor, ainda mais da forma como foi feita e com a utilidade prática que tem, é algo simplesmente fabuloso!
  • Termos terminado o ciclo de apresentações ainda com 20 pessoas na sala, é algo extremamente positivo, e que não esperava ainda mais quando foram 4 horas seguidas de injecção!
  • O anúncio do Adobe Flex Camp em Portugal com Serge Jespers e Ryan Stewart! Mais tarde teremos mais notícias…

Espero não me ter esquecido de nada… O João Fernandes filmou as apresentações, e julgo que as colocará online em breve.

Para quem ficou curioso com a integração de Flash com Flex, pode visitar este link, e este. Relativamente ao Cairngorm, podem visitar este link. O FlexFuel, por sua vez, pode ser consultado aqui. Houve quem tivesse à espera de ter visto uma apresentação sobre ligação de Flex a um backend PHP usando AMFPHP, mas não foi possível prepará-la. No entanto, podem consultar este link, e este, ou todos os posts que já fizemos sobre AMFPHP.

Gostaria de saber a vossa opinião: o que gostaram, e o que não gostaram para que possâmos melhorar da próxima vez.

Parabéns a todos nós! E que se voltem a repetir eventos do género várias vezes ao longo do ano!

 [Update]

Os comentários ao evento estão a ser feitos sobretudo na Mailing List.




Dec
13

BlazeDS, Remoting e Messaging tornam-se OpenSource

A Adobe acaba de libertar o BlazeDS, o novo produto OpenSource (Licença LGPL v3) que corresponde à tecnologia JAVA server-side que dá suporte tanto para o Remoting assim como ao Messaging. Juntamente, foram libertadas as especificações do AMF3 para quem não possa utilizar directamente o BlazeDS (visto ser em JAVA).

Por outras palavras, agora é possível construír gratuítamente aplicações multi-utilizador com data push (!!). Exemplos? Desde um chat, até a uma aplicação de gestão, onde sempre que é introduzido determinado conteúdo na base de dados, todos os clientes ligados são notificados, e recebem no seu interface gráfico os novos dados sem terem que refrescar a “página”.

A Adobe está também empenhada em contribuir com a comunidade para permitir a implementação deste protocolo na maioria das plataformas server-side.

Enquanto que o Remoting já tinha sido implementado na maior parte das soluções server-side actuais, a disponibilização de messaging por protocolo HTTP (RTMP não foi libertado) irá permitir a aplicações fazerem data-push por um mecanismo de publishing/subscribe semelhante ao que o LifeCycle Data Services permite.
James Ward disponibilizou também o BlazeBench que permite analizar a diferença de performance entre AJAX JSON, Flex XML e Flex AMF3 usando BlazeDS.

O LCDS continuará a ser um produto comercial à parte que fornecerá as famosas API de data-management, sincronização offline, integração em portais, etc.

Foi disponibilizado um novo bugbase para este produto.

E para os fãs de AMFPHP (Retirado da press-release) :

“While there are open source projects and technologies that offer remoting and messaging to Adobe Flash® and Flex client applications, the contribution of these technologies and the AMF protocol specification represents a huge step forward for standardizing implementations across multiple platforms,” said Wade Arnold with AMFPHP. “Working with Adobe, we can create a common programming model that enables RIA developers to extend the reach of their applications across different server technologies in a compatible and consistent approach. The AMFPHP project is ecstatic to be able to work directly with Adobe in order to better leverage the AMF protocol in LAMP applications.”




Dec
13

Flex Builder 3 Beta 3,AIR Beta 3 e Flex 3

A Adobe, como prometido, lançou mais uma versão Beta do conjunto.

Estes encontram-se online aqui AIR , Flex Builder 3 e Flex 3 SDK .

É aconselhado vivamente a desinstalar as versões previamente instaladas.
Caso surjam problemas com o Flex Builder  (versão StandAlone) em que este  pareça não ter code highlighting, iniciem o programa com o comando -clean ( FlexBuilder3.exe -clean ).




Dec
09

Encontro de comemoração do aniversário do RiaPT: parte 2

Tal como já foi anunciado, no dia 15 de Dezembro - Sábado - haverá um encontro de comemoração do primeiro aniversário do RiaPT a partir das 16h, na Flag - Atrium Saldanha. O endereço do local pode ser visto aqui. O estacionamento no Atrium ao Sábado é gratuíto, pelo que poderão deslocar-se de automóvel ou metro com relativa facilidade.

As inscrições devem ser efectuadas deixando um comentário no post anterior, estando actualmente 31 pessoas inscritas. Aconselho também a leitura do post anterior que possui mais informação para complementar este.

Infelizmente já sei que não poderemos contar com o Kim Hansen nem com o José Luís Gouveia que não estarão em Portugal na altura. Lá teremos que fazer outro evento lá para finais de Fevereiro …. ; )

O encontro será marcado por curtas apresentações de 10 a 20 minutos, e poderemos contar também com a presença de uma equipa da 4inWeb que irá apresentar o Microsoft Silverlight.

Assim sendo, aqui fica o índice de apresentações que me chegaram às mãos até ao momento, sem nenhuma ordem em específico. Irei actualizando este post à medida que mais pessoas se forem oferecendo para fazer apresentações.

Índice de apresentações

  1. Boas Vindas
  2. Apresentação do Microsoft Silverlight - 4InWeb
  3. Display List em AS3 - João Gonçalves
  4. Integração de Flash Cs3 com Flex 2 - João Saleiro
  5. Showcase: Asko / “A minha primeira aplicação em Flex” - Luís Costa
  6. Introdução ao Cairngorm - João Fernandes
  7. Showcase: FlexFuel - João Saleiro
  8. And Now for Something Completely Different … - Paulo Moreira
  9. Showcase: Configurador de Regras - Alexandre Xavier

Se houverem interessados, posso ainda apresentar “Interligação entre Flex e PHP utilizando AMFPHP”. Não incluí na lista para não terem que me aturar demasiadas vezes, mas se houver muitos interessados posso por exemplo substituir uma das minhas sessões por esta.

Antes das “palestras” teremos um fase de apresentações para que as pessoas se conheçam. No final, voltamos todos a sentar-nos e falamos livremente.

Temos tudo montado para um grande primeiro aniversário! Ok, falta o bolo… alguém se oferece para fazer um bolo? :P

top