Arian Pasquali

making it run

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 ,

Apple e Stanford vão oferecer curso gratuito de iPhone SDK

leave a comment »


flicker shapeshift

Apple e a Universidade de Stanford anunciam que vão produzir em parceria um curso gratuito de desenvolvimento de aplicativos para iPhone.
O material será produzido pela própria Apple e vai poder ser baixado pelo iTunes no canal da universidade Stanford.
As primeiras video-aulas devem sair ainda esse mês.

Written by arianpasquali

maio 6, 2009 at 10:13 pm

Publicado em iphone

Tagged with

Search Engine como componente mais vital para aplicativos empresariais

with one comment

Search Engine se tornará o componente mais vital para aplicativos empresariais nos próximos anos.

The use of full text search will have a major impact on how the applications interact with the data. Instead of actively looking for information by digging for information with tons of drill downs and clicks, you just type what you want or highlight what matters to you.

Anatole Tartakovsky Search Engine as the most valuable enterprise application component

Anatole Tartakovsky atribui isso ao fato de que os usuários estão se acostumando a realizar buscas na internet que processam milhões de resultados dentro de poucos milisegundos e vão exigir cada vez mais que os aplicativos que utilizam nas suas empresas apresentem o mesmo nível de responsividade.

Ninguém quer ficar dando 79 cliques para chegar na informação que se precisa, estamos cada vez mais acostumados a digitar nossos desejos em uma caixinha e receber o resultado em milésimos de segundos.

Written by arianpasquali

abril 9, 2009 at 4:17 pm

Publicado em Uncategorized, usabilidade

Tagged with

Impressões sobre Certificação Flex 3 with AIR

with 7 comments

ACE Na última sexta-feira dia 27/fev/2009 tive a oportunidade de realizar a prova de certificação Adobe Flex 3 with AIR.
Quando comecei a me preparar para a prova logo percebi que estudar para uma certificação da Adobe não é como se preparar para fazer uma prova da Sun que possui toneladas de simulados pela internet e livros especializados no assunto.

O material para estudo é basicamente a documentação oficial do produto. Complete Flex 3 documentation (69 MB)

Encontrei talvez o único simulado de Flex disponível hoje. Attest é pago e por enquanto só conta com simulado da antiga certificação Flex 2.  Vem com um teste trial de 35 questões que já dá pra ter uma noção da prova.

A prova foi remodelada e está um pouco diferente da Flex 2 especialmente por não contar mais com a sessão integração com Cold Fusion, mas em compensação questões sobre AIR foram incluídas. Os tópicos que caem na prova são os seguintes:

Topic Area % of Exam # of Questions
Creating a User Interface (UI) 22 11
Flex system architecture and design 18 9
Programming Flex applications with ActionScript 24 12
Interacting with data sources and servers 16 8
Using Flex in the Adobe Integrated Runtime (AIR) 20 10

Mais detalhes em Adobe Flex 3 with AIR Exam Preparation Guide (PDF, 56K)

Para meu azar 20% da prova é específica sobre AIR. Pelo fato de não trabalhar diretamente com AIR as perguntas mais complicadas pra mim foram justamente sobre essa sessão,  Em uma prova de 50 questões e tendo que atingir 67% para passar 20% é muita coisa para arriscar sem estudar, tive que dar uma lida na documentação.

Para minha supresa não caiu pra mim nenhuma pergunta sobre o compilador do AIR, debugger etc, a pergunta mais estranha foi do tipo como desinstalar uma aplicação AIR no Mac OS.

Essa foi a minha preparação para o exame.

Resultado : SCORE 80%, GRADE: PASS

O voucher da Adobe custa 100 dolares e conta apenas com a versão em inglês por enquanto.

Written by arianpasquali

março 2, 2009 at 4:34 pm

Publicado em certificações, Uncategorized

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 , ,