Adobe CS3.0/ AS 3.0/ Dicas e truques/ Flash CS 3

#1 – Planejando uma aplicação RIA de sucesso, cuidados que deve-se tomar.

De ontem para hoje eu me deparei em um projeto interno que está sendo desenvolvimento onde o principal objetivo é otimizar a aplicação Flex. E um dos laços que faz isso melhorar a aplicação, são loops, tamanho de swf, hardware envolvido, etc. Os loops sejam eles for, for each, while, do while, for in, timer. E por incrível que possa parecer, os resultados podem não deixar muita gente contente, mais é uma pura verdade quando você faz uma aplicção para ser usada em quaisquer circunstâncias, sejam elas ótimas ou muito más, de todo jeito tem que ser testada e funcionar.

Qual equepamento foi usado?

Geralmente quando faço um aplicativo eu procuro testar em qualquer hardware que vocês imaginar, sejam máquenas excelentes e tops de linhas até maquinas com 8 anos de vida como um K6 da AMD, lembram?

O equepamento foram 2, seguem abaixo:

AMD K6 com 256mb de memóri processador de 550Mhz, placa de video de 32bits e resolução máxima de 1024×768, com sistema Operacional Windows 2000.

Intel core 2 duo com 4Giga de memória, placa de video 32bits resolução de 1280×800 com sistema operacional Vista Home Premium.

Primeiro problema: Compatibilidade

Flash Player 9 não é compatível com Windows 2000, a versão do último build a 0.75 não pode ser instalada. já a versão 9.045 roda tranqüilamente. Problema resolvido, vamos ao segundo teste.

Segundo Teste: Performance de Frames Rates

No AMD K6-II com uma taxa de 24fps em uma aplicação Flex o consumo da memória chega a picos entre 17mb e 23mb, consideravelmente alto, já que essa versão do build tem esse bug, então a pergunta do tal “você quer interromper esse script ou continuar” aparece sempre. Então diminuímos para 16fps e problema resolvido o aplicativo começa a executar tranqüilamente perfeito.

No Intel core 2 Duo com o FPS em 24 o aplicativo chega a consumir entre picos de 3mb até 4mb de memória, com o FPS, chega aumentar cerca de 40% ‘a mais o uso de memória.

Resultados
Em todas as vias use o padrão de 40fps caso sua aplicação for usada nessas poderosas máquenas, se não sabe use o fps do K6-II com toda certeza vai rodar em qualquer máquena.
Como no meu caso eu não sei quais máquenas isso vai ser executado como por exemplo eu posso saber se for usado internamente em uma intranet e peço ao pessoal de infra para me passar uma auditoria. Então publicamente onde todo tipo de PC se conecta na internet, então preferir levar o resto da aplicação em 16fps.

Terceiro teste: Intervalos de chamadas de métodos

Testando chamada de métodos por intervalos de tempos cheguei a conclusão que é impossível alcançar uma perfeição no caso de uso de intervalos por for. Tem até um documento no LiveDocs que reforça meu pensamento, como a aplicação é feita colaborativa, o uso de loops como os citdos no título deste artigo, faz com que a dependência do hardware seja um fator descritivo entre qual delas irá rodar mais rápido, como eu preciso controlar isso e executar no mesmo intervalo de tempo, então eu preciso realmente usar Timer e não for or do while.

Timers, são ótimos nisso, qualquer aplicativo multi-usuário e colaborativo que se preze usa Timers para despachar eventos. O que em minha super máquena potente não sentirá isso nem tampouco a AMD K6-II. Ambas farão a tarefa no mesmo tempo.

Quarto teste: Tamanho do SWF

Como já cheguei a uma conclusão e que muitos dizem que me preciptei, você não espera pelo futuro próximo para saber que naquile dia eu previ o futuro.
Usar módulos não funciona, o que eu usei? o MASAPI, não preciso nem explicar o por que do uso, ele por sí só se explica.
Separo todas as partes por swf do tipo (Application), e carrego no Main Application todas as dependências dos arquevos externos e o framework por RSL, o que resulta para eu um SWF com 30kb e o MASAPI cuida do resto.
Então feito, tamanho de SWF não será problema. Eu vi que um conhecido meu o Arthur lançou um chamado Bulk Loader . Sem dúvida pelo que já li é promissor para caramba, não testei, mais comparando com a capacidade dos criadores e colaboradores, eles não faz besteiras.

Quinto teste – Arquetetura usada para Design Patterns: MVC

Tem gente que ainda acredita no Carningorm da Adobe, eu desaconselho usar, o Carningorm teve seu imporante papel na evolução do Flex e é inquestionável seu uso na versão do Flex 1.5. Já não tenho o que dizer na versão 2.0. No Flex 2, o SDK ganhou tanta maturidade que o que eu vi e vejo por ai é gente usando seu próprio framework para MVC, não faz sentindo usar um framework que para você no campo real não agrega valor tanto do lado do desenvolvedor para treinar sua equepe em aprender Carningorm quanto para quem está pagando por ele.
Por que não focar sua equepe em desenvolver seu próprio framework particular?
Foi e é o que faço sempre em meus projetos específicos e em consultoria. Focar a empresa em desenvolver seu próprio framework para MVC, assim eu tenho de imediato do lado do desenvolvedor uma certa intimidade no que foi feito, a conversa flui mais rápida do que algo que já está pronto no mercado e você tem que adaptá-lo até o máximo para rodar.

Porém nesse específico caso como já havia-se feito parte do software em PureMVC, tive que continuar com o PureMVC. Quem não conhece vale a pena e muito, o PureMVC tem menos idade que o Carningorm, mais é estilo completão, uma de suas características que batem o Carningorm é a documentação completa, coisa que até hoje Carningorm não definiu nada além de tutorial defasado e sem perspectiva de sobrevivência.
O que mais gostei e estou enamorado com o PureMVC são o Facade (extrutura singleton para MVC), Observer(provê encapsulamento do objeto na notificação do callback) .

No meu pessoal, eu copiei essa idéia, facilita muito deixa a complexidade de lado, deixa livre a dependência de versões do Flex SDK.

Sexto teste: Trabalho em equepe de duas pessoas acima.

Sem dúvida um controle de versão é ótimo nestes casos, use o SVN, ele tem se comportado bem com o Flex Builder tanto plug-in quanto Stand Alone. CVS é bom mais não tem comandos que o SVN possui. Já que todos dizem que o SVN é usado em grande maioria e será a substituto do CVS.
Para trabalhar com o Flex Project e SVN, você pode marcar todos os diretórios do seu projeto menos é claro da pasta BIN, não faça isso, caso contrário seu swf terá comportamentos que só o voodoo poderá explicar.

No caso de trabalho solitário, você sozinho pode controlar o histórico local de seu .mxml ou .as, pois o Flex Builder 2/3 já vem o History Local que por padrão guarda até 10x o arquevo salvo. É uma boa quando você quer voltar as alterações de arquevos independentes.

Sétimo teste: Internacionalização.

Eu já vi e desaconselho, se a sua aplicação for vista ou usada apenas por brasileiros, por que usar Multi-Idiomas? Isso é um trabalho de trouxa que quer impressionar o chefe ou à sí mesmo em dizer que tal aplicativo é visualizado em vários idiomas. Lembre-se do alvo, não esqueça que o propósito fundamental do Flex é focado no usuário. Se ele fala só português e será usado só por quem domina o idioma, esqueça essa questão.
Agora no caso de aplicações para américa latina ou mundo, ai sim o uso da internacionalização ( Resource Bundle) é obrigatório, constando neste caso não use traduções dentro do MXML ou actionscript, por favor use o compilador para isso.

Conclusão desta primeira parte.

A segunda parte está vindo por ai.

Adobe CS3.0/ AS 3.0/ Flash CS 3/ Flex/ Flex Componentes

Como usar o Flash CS3 com o Flex?

O Flex Doc Team tornou público um documento em PDF que ajuda o desenvolvedor a criar e interagir Flash CS3 SWF com o SWF do Flex.

Essa integração não é apenas feita usando Flash Local Connection, você pode criar componentes diferenciados (bem diferentes mesmo), que o Flex não é capaz de criar, e interagir usando os componentes do Flex para os mesmos.

Eu já fiz alguns experimentos alguns meses atrás que foi criar Gráficos no Flex sem o Flex Charts, usando só o Flash CS3 + Tweener(uma biblioteca pública feita pelo Zé). Você pode ver o exemplo aqui.
Quando se entra no Mundo do Flash, você pode ter inúmeras opções de componentes 100% diferentes dos atuais e corriqueiros HBox,Vbox, Buttons … etc.

Saiba mais, Imprima o PDF e saiba mais.

Adobe CS3.0/ Apollo/ Flash Player/ Flex/ SilverLight

SilverLight ou Flash Player?

Está ficando difícil escrever com freqüência para o blog, mais na última semana a Microsoft liberou uma bomba bem guardada a sete chaves que com toda certeza deixou e ainda está deixando muito desenvolvedor RIA, acostumado com Flex, Flash, Actionscript3, com um pé atrás quando se trata de Microsoft.

Vou tentar ser o mais cauteloso e opinar para o que eu acho desse pronunciamento da Microsoft em entrar de cara e com forte investimento ( estima-se que é $100mi ), para a nova era de aplicações Web, Rich Client Application.
Após o lançamento li tudo quanto foi texto para saber quais as novidades e o porquê da Microsoft entrar no mercado RIA e oferecer para seus desenvolvedores uma forma competitiva de revalidar seus concorrentes.
Silverlight e Adobe Flash Player são totalmente diferentes em comparação a novas funções e compatibilidade.

Considere o SilverLight um novo plug-in como o Flash Player mais com capacidade de um aplicativo feito em Apollo ou Zinc rodando em seu navegador.

No site do Silverlight a Microsoft promete muita coisa embora ainda seja alpha e inclui uma página “why SilverLight?”, para esclarecer o por que Silverlight vai ser bom para os clientes.
Uma coisa que pode ser considerada e que não me deixa contente é que SilverLight não faz stream, resumindo, para que você consiga ver o conteúdo feito em Silverlight você precisa esperar que a aplicação que você quer ver precise ser baixada completamente para máquena do usuário, passada para o Javascript runtime e depois executar, isso vai levar um tempinho, exemplo disso é o site deles mesmo, baixei o plug-in e demorou 1min e 34 segundos para executar apenas uma simples imagem.
SilverLight tem uma coisa que pode ser convocadamente um avanço em relação ao Flash Player, ele tem back-end próprio para quem é desenvolvedor .net e Microsoft tem mais expertise em C#, C++, J# etc em aplicações desktop do que Adobe. Porém não se limita só a isso, eles agora liberaram acesso para seu Silverlight acessar o back-end de terceiros, que resumi-se à o quê? Que qualquer PHP, Java ou até mesmo ColdFusion possa trabalhar em conjunto com criações para o SilverLight.

Acho que essa função acima de “não importar qual seja o back-end”, isso eles já imitaram do Flex. Embora todos esses pontos flutuantes que faz você se preocupar, relaxem, SilverLight ainda não tem adoção de 98% do mercado, Microsoft tem muito poder em relação a recursos ilimitados, mais ela deveria se preocupar em ter um produto com maior qualidade para oferecer a seus desenvolvedores coisas que a concorrência não tem, mais que até agora não me influenciou muito, não sei por que falo do lado Flex que uso em meu dia, mais sou celetista e digo se a Adobe abandonar o Flex e começar a vender a patente por U$1.00 eu paro e mudo para o SilverLight.

Não só isso, acho que a experiência que tive nos últimos 7 anos com Flash, não me faz voltar atrás para o que já conquestei e para o que ainda quero conquestar.

Estou super satisfeito com o uso do Adobe Flash Player e com o que já desenvolvo, só espero que o Apollo da Adobe seja maduro suficiente para fazer o que o .net já faz, em um curto espaço de 2 anos.

Saiba mais sobre o SilverLight no site oficial

Adobe CS3.0/ Fireworks CS3/ Notícias

Usando Fireworks CS3 para criar layouts de aplicações Flex 2.0.1

Hoje via Devnet da Adobe, Senocular(agora na Adobe), escreveu 2 ótimos artigos para quem trabalha como UI Designer, No Fireworks CS3 você pode exportar todo o seus symbols para mxml e imagens diretamente no seu projeto do Flex Builder.

Para você entender um pouco como funciona isso, você pode ler direto os artigos introdutórios dele.

Exporting MXML e imagens

Creating Rich Symbols for MXML and Imagens

Se você quer ver como é esse comportamento, veja esse sneek peak que fiz ( com Captivate).

Adobe CS3.0/ Notícias

Adobe CS3.0 – Nova suite trás uma palavra "integração total"

Novo pacote de softwares da Adobe foi anunciado hoje em todo o mundo nesse exato momento tem acesso aos novos recursos e informações que podem te ajudar a escolher o melhor pacote.

Com a compra da Macromedia em 2005, a Adobe aumentou a oferta de soluções em seus produtos e trás até você 4 opções de compra do seus pacotes suites que incluem pacotes premiums e standards.

A Adobe criou um site excluviso para você acessar e saber mais sobre cada produto. Visite o Creative License.

Preços e outras informações, dentro do próprio site tem essas informações. Os downloads trials só estarão disponíveis em 20 de abril.

* Adorei o jungle do hotsite.

Adobe CS3.0/ Notícias

Adobe CS 3.0 dê uma espiada antes de sair

Amanhã estará disponível para Download o Adobe CS 3.0, com várias e novas funções em cada uma de suas ferramentas.

Photshop, Flash, Dreamweaver, Fireworks, Encore, etc.

Veja o preview do novo Flash CS 3.0 abaixo, clique na imagem para aumentar o tamanho.

Flash CS 3.0

Preview do Dreamweaver CS 3.0 abaixo:

Dreamweaver CS 3.0

Preview do Fireworks CS 3.0 abaixo:

Fireworks CS 3.0

Mais detalhes do novo Studio você pode ver aqui direto do site da Amazon que já começou o pré-venda dos softwares. Detalhes técnicos e o que há de novo no Flash, Dreamweaver, etc, só quando lançarem, até lá aguardem que prometo escrever mais sobre eles.