Arian Pasquali

making it run

Archive for the ‘adobe’ Category

Flex For Kids

with 2 comments

Flex for Kids

Flex for Kids

Comece 2010 fazendo uma boa ação e participando do primeiro evento Flex do ano. Assista a 10 palestras sobre Adobe Flex ao vivo com feras da comunidade brasileira e ainda ajude uma instituição carente.

A maratona de palestras on-line será realizada no dia 06/02/2010 e contará com palestras de nomes conhecidos como Beck Novaes, Mario Junior e compania.

Qualquer pessoa, empresa ou faculdade poderá participar do Flex for Kids, para isto basta fazer uma doação de um valor simbólico de R$ 30,00 para ter acesso as 10 palestras on-line e suas gravações que serão disponibilizadas 15 dias após o evento.

Todo dinheiro arrecadado será doado ao Cotolengo de Mato Grosso do Sul. Para conhecer a instituição Cotolengo clique aqui.

Quer oportunidade melhor que essa pra aprender e ainda ajudar quem precisa?

Site oficial: http://www.flexforkids.com

Written by arianpasquali

dezembro 28, 2009 at 8:26 pm

Publicado em flex

Tagged with , , ,

Descobrindo código que cheira mal no seu projeto Flex

leave a comment »


Baseado no PMD, ferramenta de auditoria de código bem conhecida dos javeiros,
FlexPMD é uma ferramenta de auditoria de código capaz de detectar más práticas comuns em código Flex (MXML/AS3) e ajudar a melhorar o nível da qualidade do código produzido pelo time. Exemplo:

Código não usado (functions, variáveis, etc)
Código duplicado
Código muito longo (classes, metodos, etc.)
Uso inapropriado do ciclo de vida de componentes Flex (ex. commitProperties, etc.)

O FlexPMD faz a auditoria automática do código baseado em regras escolhidas por você. Um relatório XML é gerado relacionado as violações de acordo com as regras configuradas. Existem várias regras prontas para serem usadas, mas é possível criar suas próprias regras para atender as necessidades de cada projeto. Você pode criar uma regra para forçar uma convenção de código ou para verificar se todos os métodos estão documentados por exemplo.

Esse é o FlexPMD Ruleset Creator, uma aplicação em Flex que facilita a criação dessas regras customizadas.

FlexPMD pode ser chamado via linha de comando, Ant, Maven ou até Automator do Mac OS. O relatório gerado pela ferramenta pode ser visualizado pelo viewer da Adobe, mas o ideal mesmo é integrar a alguma ferramenta de integração contínua como o Hudson.

Fica aí a dica pra quem, assim como eu, estava a tempos procurando um auditor de código automatizado para implantar no serviço de integração contínua.

Espero poder utilizar no meu próximo projeto Flex.

Written by arianpasquali

novembro 16, 2009 at 5:26 pm

Publicado em flex

Tagged with ,

Adobe Flash Pro CS5 deve suportar desenvolvimento para iPhone

leave a comment »

Flash CS5 e iPhone

Adobe anuncia hoje no Adobe MAX que a próxima versão do Flash Professional CS5 vai permitir que desenvolvedores criem aplicações em ActionScript 3 e exportem o projeto para código nativo executável em iPhone OS.
Dessa forma desenvolvedores AS3 poderão desenvolver suas aplicações e publicar na AppStore.
Pelo menos essa é a promessa.
Pra Apple será uma aplicação como qualquer outra.
A Adobe não deve esquecer que esse código exportado pela Flash CS5 deve estar nos conformes para ser aprovado pela Apple para publicar na AppStore.

Beta da ferramenta deve ser liberado até o final desse ano.

É uma promessa arrojada.
Só acredito vendo. =)

Mais em http://adobe.com/go/iphone

Written by arianpasquali

outubro 5, 2009 at 7:16 pm

Publicado em adobe, iphone

Tagged with , ,

Flex Builder Hot Tip – Blueprint plugin

with one comment

Uma boa IDE, um browser e um link ADSL são ferramentas indispensáveis para qualquer desenvolvedor. Você já parou pra contar quantas vezes você faz pesquisas procurando uma luz sobre como utilizar uma determinada classe ou implementar algo novo pela primeira vez? As teclas Alt+Tab devem estar até gastas de tanto mudar o foco da IDE para o browser e vice-versa o dia todo.

Pensando nisso que o time do Flex Builder fez um plugin chamado Blueprint (é um codenome na verdade, ainda não tem um nome oficial).
Blueprint é um plugin pra Flex Builder (compatível com a versão 3 ou 4) que torna o trabalho de pesquisar exemplos de código Flex na internet tão fácil quanto um code complete. Você seleciona um texto e os resultados são mostrados direto na IDE.

A pesquisa é feita utilizando a engine do Google em sites de documentação, blogs e forums. O resultado é formatado e resumido, facilitando a leitura e a navegação.

Pra instalar o plugin  siga as intruções passo a passo aqui

Como utilizar? Selecione um trecho de código e pressione o atalho padrão que no Windows é Alt+b e no Mac Control+b.

obs: Uma pena que funcione só pra código Flex.

enjoy it

Written by arianpasquali

junho 11, 2009 at 7:44 pm

Publicado em adobe, flex

AdvancedDataGrid with contained DataGrid

with one comment

Essa semana nos deparamos com a necessidade de apresentar uma entidade hierarquica em forma de tabela.
Até aí tudo bem, o problema é que os itens filhos deveriam mostrar colunas diferentes do pai.

advanceddatagrid_with_contained_datagrid3

Eu sabia que era possível fazer com AdvancedDatagrid no Flex 3 sem apelar para gambiarras. Foi quando descobri os rendererProviders e  do AdvancedDatagrid.
Os rendererProviders do AdvancedDatagrid permitem customizações bem avançadas.
No meu caso eu precisava renderizar um outro Datagrid no nível filho.
A documentação do AdvancedDatagrid não detalha bem esse recurso ficando apenas nos exemplos de gráficos dentro dos grids.

Encontrei um post no Flex Cookbook com um exemplo prático do Dean Pittsinger.
http://www.riamaven.com/FlexSolutions/ADGwithContainedDGDemo.html

O código é realmente muito simples, mais do que eu esperava encontrar.  No AdvancedDatagrid principal define-se um AdvancedDataGridRendererProvider em rendererProviders.

 <mx:rendererProviders>
    <mx:AdvancedDataGridRendererProvider depth="2" columnIndex="1"
                                         renderer="SubDataGrid"
                                         columnSpan="0" />

 </mx:rendererProviders>

No atributo renderer define-se a classe a ser renderizada, nesse exemplo a classe criada se chama  SubDataGrid e extende de AdvancedDatagrid. O único segredo está em fazer override do método “set data”.

   <mx:Script>
     <![CDATA[
         import mx.controls.Alert;            

        override public function set data(value:Object):void
        {
           // set dataProvider
           dataProvider = value.service;

           // If using the array data source, use this instead:
           // dataProvider = value;

           // adjust rowCount
           this.rowCount = dataProvider.length + 1;
        }

     ]]>
   </mx:Script>

Normalmente não é algo que eu aconselharia, deve ser usado com moderação e como última alternativa pra não prejudicar demais a usabilidade e a focalidade das informações.

Flex Cookbook: http://www.adobe.com/cfusion/communityengine/index.cfm?event=showdetails&postId=12326&productId=2

Written by arianpasquali

maio 7, 2009 at 12:34 am

Publicado em flex

Tagged with ,

Marshall Plan – Sub-applications, não modules

with 2 comments

Como já comentado anteriormente, eventualmente, pode ser que não seja possível manter todos os SWF sob a mesma versão do Flex.

Para resolver esse problema a Adobe entendeu que apenas Modules não resolveria o problema. Para isso criou o projeto Marshall Plan, que resultou em mudanças significativas no Flex 3.2.
A última versão do SDK do Flex 3.2 possui permitirá uma Application utilizar Sub-Applications compiladas em diferentes versões do Flex.

Atualmente o Flex 3.2 é o ponto de partida, esse recurso por enquanto ainda não suporta as versões anteriores 3.1, 3.0, ou 2.x, portanto você vai precisar migrar para 3.2 para usar esses recursos hoje.
Se sua aplicação já é compilada em Flex 3.2, aplicações compiladas em Flex 4, 5, etc poderão utilizar sua aplicação.

Refatorar o seu código vai dar trabalho, isso você pode ter certeza. Separar módulos e sub-applications em diferentes domínios de aplicação e ainda permitir comunicação entre eles dá trabalho. Esse refactoring para permitir que os SWFs de diferentes domínios continuem conversando entre si foi cunhado como ‘marshalling’.

Lição de história: o Plano Marshal original foi uma forma que os paises europeus encontraram para se reerguer em paz. O Marshall Plan da Adobe é uma maneira de fazer com que diferentes versões do Flex conversem em paz.

Como isso funciona?

Cada sub-application é carregada em um ApplicationDomain independente, possue seu próprio StyleManager por exemplo, o que significa que Application e Sub-Applications não compartilham nem estilos.
Todos os singletons do Flex Framework precisaram seu refatorados para suportar o Marshall Plan, portanto provavelmente você terá retrabalhos no seu código que usa Flex Managers como DragDrop, PopUps, ToolTips e Cursors.

Singletons não são mais tão “Singletons” assim

sub-applications

Exemplo:

MySubApp.mxml
ToolTipManager.toolTipDelay = 1000;

MyApp.mxml
trace(ToolTipManager.toolTipDelay); // 500 (default) not 1000

MySubApp’s ToolTipManager não é o mesmo objeto que MyApp’s ToolTipManager

Limitações do Marshall Plan

  • Styles não são compartilhados. Cada aplicação tem seu próprio estilo, nem ao mesmo herda estilos da Application principal. Estilo de uma sub-application não interfere no estilo da application principal e vice-versa.
  • ResourcesBundles também não são compartilhados da mesma forma que Styles. Cada sub-application deve carregar seu próprio ResourcesBundle.
  • HistoryManager apenas para a Application principal.
  • Use systemManager.getSandboxRoot() no lugar de systemManager para listening de eventos do Mouse e do Keyboard.

Utilizar esse recurso pode dar trabalho. Existem várias questões de segurança envolvidas nesse processo. Pretendo comentar sobre elas nos próximos posts.

Written by arianpasquali

novembro 18, 2008 at 5:18 pm

Publicado em max2008

Tagged with ,

How Large is a Large Application?

leave a comment »

“Se você pode me dizer o quão grande é sua aplicação, então ela não é tão grande assim.”
Alex Hurair

Em tom de piada Alex começou sua palestra com assim. Pode parecer pragmático demais, mas se você pensar cuidadosamente você acaba concordando com ele. Problemas de performance todos nós enfrentamos, mas escalabilidade é um assunto muito mais delicado do que apenas performance.

Quando se trata de aplicações desse tipo em Flex, ela deve sofrer de pelos menos um dos dois seguintes problemas

  • Tempo de download demorado
  • Out of memory no navegador enquanto executa a aplicação

A primeira solução para download demorado de uma aplicação é quebrar a aplicação em vários SWFs. No Flex conseguimos fazer isso graças a Modules.

Modules para aplicações pesadas

Para entender exatamente a razão de usar módulos precisamos ter em mente que um swf Flex possui dois frames:

  1. Preloader frame
  2. Application frame

A aplicação toda precisa ser baixada antes que ela seja iniciada. Logicamente, quanto menos código no frame 2 significa que a aplicação vai iniciar mais rápido e vai consumir menos memória.

lição número um:

  1. Pegue todo o código que não é necessário no startup e coloque dentro de um  Module.

Limitações dos Modules

  • Você não pode referenciar diretamente uma classe de um módulo a partir de sua Application, você deve usar interfaces compartilhadas.
  • Modules e Application devem ser compiladas com a mesma versão do Flex

Novidades sobre Modules no Flash Player 10

  • Modules agora podem ser removidos da memória.

Ok, temos Modules para diminuir o tempo de download da aplicação. Porém, nem tudo são flores na vida de Joseph Climber, a partir daí a coisa pode complicar ainda mais. Alguns SWFs podem possuir dependência de alguma versão do Flex e por alguma razão não podem ser atualizadas ou ainda para piorar os Modules podem ser criados por diferentes equipes que possuem prazos diferentes entre si.

Continuarei nesse assunto nos próximos posts.

Written by arianpasquali

novembro 18, 2008 at 4:51 pm

Publicado em max2008

Tagged with , ,