jun 19

Veja no video abaixo porque o curso Imersão Adobe Flex (http://egenial.com.br/imersao-flex) está imperdível!

O resultado do sorteio da vaga para o curso pode ser encontrado neste post: http://blog.egenial.com.br/?p=283

jun 10

Não é de hoje que as empresas estão com a atenção voltada para os blogs e serviços de mídia social. Também pudera: é exatamente onde seus consumidores se expressam e no Twitter não poderia ser diferente.

Na semana passada enfrentei muita instabilidade em minha conexão de internet, provida pela Net. No segundo dia, já bem chateado com a situação, twittei a respeito, reclamando do serviço e como tive respostas de diversos amigos/followers complementei meu comentário dizendo que eu acho eficiente reclamar pelo Twitter pois sei que as empresas estão de olho.

Pois bem, aqui está a comprovação: a imagem abaixo é um printscreen de uma mensagem enviada pela Net, para meu e-mail, no dia de hoje. Está aí a prova de que quando reclamamos, somos sim ouvidos. Basta utilizar os meios certos.

net

jun 04

Fábio já estou a seguir os teus trabalhos a algum tempo e tenho uma pergunta para te colocar… Eu estou a dar os meu primeiros passos com Flex, mas a minha maior dúvida nestes primeiros passos é a conectividade com a base de dados…o que usar? O único que testei até agora foi o AMFPHP, mas sei que existem outras soluções talvez mais eficazes…
O que aconselhas? SQLite?BlazeDS?LiveCycle?

Recebi hoje este comentário deixado por Eduardo Costa, de Portugal. Ele ilustra bem uma dúvida que, mesmo após muito tempo de Flex no mercado e sua crescente adoção por profissionais e empresas, ainda paira pelas cabeças de muitas pessoas.

Então vou procurar saná-la. Venho vivendo Flex diariamente há mais de 2 anos e apesar de estar longe de saber tudo sobre o framework, assumo que sei o suficiente para contribuir com meus centavos.

O Flex é um framework e é opensource. Você não precisa do Flex (agora Flash) Builder para desenvolver aplicações. O framework possui uma ferramenta de linha de comando que é utilizada para compilar o swf a partir de seus arquivos .mxml e .as. Para mais informações consulte este link.

Apesar disso, não é comum encontrar desenvolvedores codificando no bloco de notas (ou o que o valha) e compilando o código via linha de comando. Simplesmente não é produtivo, se comparado com todos os recurso do Flash Builder. É nele que você encontrará um ambiente completo de desenvolvimento, com os componentes do framework listados de forma que torna possível arrastar e soltar, para montar a interface. A compilação se dá apenas pressionando um botão e é possível configurar o compilador, passando parâmetros tais como background padrão, serviços de conexão com servidor web, arquivos de idiomas entre outros.

Muitas pessoas ainda confundem o Flex Builder com o Flex Framework e por isso a mudança do nome da ferramenta de desenvolvimento gerou tanta polêmica, quando passou de Flex Builder para Flash Builder. Essa mudança foi coerente, pois o Flex Builder vinha sendo utilizado pelos desenvolvedores Flash como ambiente de desenvolvimento, devido aos inúmeros recursos que tornam a codificação rápida e coniável, recursos não presentes em nenhuma versão do Flash (Adobe Flash), mesmo na nova versão CS4. Assim, o nome Flash Builder tráz o software mais para perto da Plataforma Flash, que envolve animações, sistemas e videos.

A grande dúvida de quem está chegando agora no mundo Flex é sobre o acesso a dados. Fica aqui um esclarecimento: o Flex não acessa diretamente qualquer banco de dados, apesar de iniciativas isoladas neste sentido. Podemos aqui fazer uma analogia com o HTML, padrão para qualquer sistema web. Da mesma forma que o HTML não acessa qualquer banco de dados, o Flex também não. É necessário um webservice, uma requisição HTTP ou uma linguagem no servidor habilitada a acessar o banco de dados e enviar as informações para a interface. É dessa última que pretendo falar agora.

A Adobe criou um protocolo, que é a forma utilizada pelas máquinas para trocar informações entre si, que permite a serialização de dados vindos do servidor e chegando a interface Flex que reside no cliente (browser do usuário). O protocolo chama-se AMF, que significa Action Message Format e transporta os dados de forma binária sendo muito mais rápido do que qualquer outra forma de tráfego de dados utilizada na internet. Para saber mais, veja este benchmark neste link.

A Adobe possui dois produtos que funcionam como camada intermediária entre o servidor e o cliente, que são o Life Cycle Data Services (LCDS) e é pago e o BlazeDS, que é opensource. Ambos devem ser utilizados com Java. Para outras linguagens, existem diversas soluções no mercado, nenhuma desenvolvida pela Adobe, mas que são muito eficientes e largamente utilizadas. Vejamos:

  • PHP - O mais utilizado é o AMFPHP, que teve seu desenvolvimento parado a bastante tempo e que serviu de base para seu sucessor, o ZendAMF, que faz parte do Zend Framework e tem seu desenvolvimento apoiado tanto pela Adobe quanto pela Zend, empresa sinônimo do PHP. Além destes, existe também o WebORB para PHP. Sei da existência de outros, mas me limitarei a estes dois por serem os mais utilizados.
  • .NET – o WebORB for .NET, desenvolvido pelos The Midnight Coders é muito bem conceituado. Outra solução que alguns desenvolvedores que conheço utilizam é o FluorineFX e em seu site é possível ver que vai além do protocolo AMF.
  • Java - além das soluções proprietárias da Adobe, os Midnight Coders mais uma vez, com a clara intenção de abraçar o mundo do Flash Remoting, possui sua solução para utilização do AMF com Java. Outra opção opensource é o GraniteDS, que segundo o Mario Junior, é a melhor opção de código aberto.  Assim, Java conta com 4 boas opções.
  • Coldfusion – por ser uma tecnologia de propriedade da Adobe, o Coldfusion se conecta com o Flex nativamente. Apesar disso,  os intrépidos Midnight Coders também possuem sua solução: WebORB for Coldfusion.
  • Ruby on Rails – são duas as opções para o pessoal do fantástico Rails: RubyAMF e adivinhem? WebORB for Rails
  • PythonpyAMF é quem resolve.

Pois bem… procurei listar as tecnologias mais utilizadas para desenvolvimento web. Imagino que existam soluções para outras linguagens, mas estou satisfeito com as listadas acima.

Independente da linguagem utilizada no servidor e a camada AMF escolhida, na lado Flex a a conexão é idêntica, sendo utilizada uma instância da classe Remote Object. Assim, quando você aprender a utilizar essa classe, independente da linguagem que você encontrar no lado do servidor, seu trabalho no Flex será sempre o mesmo. Isso beneficia os desenvolvedores Flex, que podem conseguir contratos apenas para a interface, orientando os desenvolvedores que farão a parte do servidor a expor seus objetos da forma adequada à utilização do AMF.

Quando eu estava aprendendo a desenvolver com Flex, por pura inexperiência, utilizava HTTPService, enviando e recendo as informações por XML. Rapidamente, no entanto, notei que a performance deixava a desejar. Foi quando meu primo fez uma integração do Flex com PHP utilizando AMFPHP e me passou as dicas. Desde então, nunca mais utilizei outra forma de tráfego de dados, a não ser no caso de webservices, o que é uma outra situação e que não cabe neste post. Atualmente estou utilizando o ZendAMF.

Espero não ter chovido no molhado.

Gostaria de deixar uma dica para quem está chegando agora e encantado com o universo Flex: aprenda orientação a objetos, que lhe será útil não apenas com o Actionscript3, mas com qualquer outra linguagem de programção que utiliza o paradigma. Também é muito útil se acostumar a codificar escrevendo diretamente o MXML, que é a linguagem de marcação utilizada no Flex Framework. Seu código ficará muito mais legível e fácil de manter.

Deixo um grande abraço a todos que me apoiam.

Ved

jun 03

Trata-se de um dashboard para mostrar o resultado de uma pesquisa. Este trabalho foi feito no ano passado e sua aceitação foi tão boa que este ano nos solicitaram alguns aprimoramentos.

 

Clique para acessar a aplicação

Clique para acessar a aplicação

jun 02

Trata-se de um screencast curto, apenas para demonstrar uma integração que muito me agradou, pois considero o Adobe Flash a melhor ferramenta de desenho que temos a disposição e a integração nativa no ambiente de desenvolvimento Flex é uma feature muito bem vinda.

 

Clique para acessar o screencast

Clique para acessar o screencast

Alguns links relacionados ao screencast:

mai 29

www.screencaster.com.br

www.screencaster.com.br

mai 22

Estou desenvolvendo minhas primeira aplicação séria com Adobe AIR. Trata-se de uma agenda que integra os contatos cadastrados com o Twitter, Google Maps e URLs de serviços utilizados pelo contato. Já está em fase alpha e sendo testada por alguns developers amigos. Para saber do que se trata, visite http://socialagenda.net/.

O que aconteceu e que me deixou um pouco preocupado foi o seguinte: ontem eu fiz algumas implementações/correções sugeridas pelos testers e coloquei um novo release no servidor. A aplicação possui verificação automática por atualizações, verificação esta que é feita quando a aplicação é iniciada. Funciona de forma redonda, sempre.

Ao clicar no botão de atualização da tela apresentada ao abrir a agenda, o download foi feito mas a atualização encontrou um problema e foi abortada. Fui então fazer a instalação manual utilizando o arquivo .air. A instalação me mostrou então um novo erro, um pouco mais detalhado, dizendo que já existia uma aplicação com o mesmo nome na pasta de destino e que a instalação não poderia ser feita. Foi a primeira vez que isso aconteceu. Todas as outras vezes, a runtime do AIR identificou uma instalação prévia e me deu algumas opções, como atualizar ou excluir a instalação anterior.

Frente a este novo erro, fui obrigado a desinstalar o release que eu já tinha e instalar a nova versão. Não haveria tanto problema em fazer isso, não fosse o fato de que na remoção do aplicativo, o banco de dados que continha meus contatos já cadastrados ter sido apagado. Felizmente ainda está em fase de desenvolvimento e nenhum dado sensível foi perdido, mas isso me deixou preocupado. Sendo otimista e pensando que a aplicação será bem aceita e que terá no futuro milhares de utilizadores, o que poderá acontecer se um problemas semelhante ao mencionado acima acontecer?

Eu procurei bastante no Google por alguém que tenha passado pelo mesmo problema, verifiquei documentação oficial da Adobe e nada. Por isso deixo minha pergunta: vc que está lendo este post já enfrentou uma situação semelhante?

Update – acabei de verificar que o banco de dados, que no Windows se encontra em “Dados de Aplicativos” não foi apagado, porém, outra pasta com um novo banco de dados foi criada. Menos mal. Agora é implementar uma verificação se o banco de dados já existe e se sim, passar a utilizar o existente. Ao que tudo indica, a Adobe não dá ponto sem nó.

mai 20

Como implementar estatísticas de navegação em aplicações Flex, Flash e AJAX. O Flex foi utilizado no exemplo, mas o mesmo conceito pode ser aplicado para as demais tecnologias.

Clique para acessar o screencast

Clique para acessar o screencast


Link para o video no Blip.tv
Faça o download do screencast em formato FLV

mai 19

Por falta de um nome melhor, chamei esta técnica de “Ancorar componentes”, que consiste em vincular o status de determinado componente ao status de outro, para habilitar e desabilitar o componente.

Clique para acessar o screencast

Clique para acessar o screencast

Link para o video no Blip.tv
Faça o download do screencast em formato FLV

mai 15

Mais uma valiosa fonte de consulta para tópicos mais avançados do mundo do Actionscript

HexoSearch – The World’s First Search Engine Dedicated for Actionscript
http://www.hexosearch.com/