AIR 2.0/ Flash/ Flash Lite/ Flex/ Flex Mobile Framework/ Open-source/ RIA/ Slider Framework/ Symbian

Flex e AIR para dispositivos móveis brigando contra o bixo papão

Já haviamos comentado aqui no site, que a Adobe estava trabalhando em versões do Flex e AIR para dispositivos móveis.
Essa semana a coisa esquentou, mesmo sendo no Brasil uma época em que todos os olhares estão voltados para a maior festa brasileira “O Carnaval”, algumas pessoas já devem saber da notícia via twitter ou pela lista de discussão.
Foi ai que decidir escrever alguma coisa mais completa, detalhada e que lhe ajudasse a entender melhor quais os principais desafios existentes hoje na plataforma Flash Player e AIR. Durante o texto quando me referir à FP significa que estarei me direcionado ao Flash Player , interop à interoperabilidade, GC ao Garbage Collector e Mobile para qualquer dispositivo móvel, celular, tablets, smartphones.

As mudanças

De 24 meses para cá houve-se uma mudança grande na maneira como as pessoas interagem com aplicações comerciais, tais ações são impulsionadas por toques visuais, realidade aumentada, projeções sobre qualquer superficie, interop entre diversos tamanhos de telas.
Para se ter uma idéia do grande problema, tente criar um design ou um simples site que seja visualmente fiel em TODOS os navegadores existentes no Mundo. imaginou? Fez aquela cara de “é???”. É bem por ai que começa os desafios.
E um dos grandes desafios do projeto Open Screen project é fazer com que outras tecnologias tirem vantagem do FP, já que a idéia do projeto Open Screen Project é fazer com que você escreva para uma única plataforma (FP), e ela seja auto escalonada para qualquer outra plataforma sem se preocupar com resolução de tela.
No ambito geral, o projeto open screen project que facilitar a vida do desenvolvedor e habilitar outras indústrias de criação de conteúdo e fabricação de bens de consumo duráveis, tirar projetos da experiências ricas criadas com o FP.

Telas diferentes
Tal iniciativa do openscreen project tem ajudado bastante ao time de engenheiros do FP e do AIR runtime à adotar uma estratégia singular colocando a plataforma Flash em um ambiente não apenas voltado para monitores, mais também para dispositivos móveis, telas sensíveis a toques, projeções, realidade aumentada.

Voltando ao tamanho de telas, imagine o seguinte, existe hoje smartphones diferentes em tamanho e funcionabilidades, a mesma coisa acontece nos monitores de mesa, que vão desde 9″ até 60″ onde o FP é testado.
Agora no mundo dos telefones, há uma grande diferença entre não só resolução mais área tangível, sensível ou não ao toque, rendenização, matrix de pixels, leds, lcds, existe uma inifinidade de mudanças que agravam e muito o desenvolvimento de uma experiência rica para celulares.

Um exemplo disso é a foto abaixo, que foi retirada do site mobiforge.
screen_sizes_small

A grande jogada é que no mundo PC/MAC muitos usuários tem uma resolução média aplicável, por exemplo 1024×768, tendo isso em mão é fácil escalonar qualquer experiência para o usuário, seja ela feita em Flash /Flex / AIR / HTML. O dificil ocorre quando esse âmbito é mobile, como comentei acima.

Tais dificuldades geram um enorme esoforço em fazer funcionar tudo em uma API que torne simples e que da mesma maneira que você usa em PC você possa usar para TV, HTPC,PC, Tablet e Smartphones.
Ai é onde entre o tal do bixo papão.
Em outras plataformas de desenvolvimento é uma mão de duas vias, você ajeita em um canto e do outro acaba desajeitando o que você havia feito. Como é o caso recente onde o youtube não aguentava mais consertar o suporte para o IE 6 que acabou bloqueando o site para quem usar o IE6 e pedindo para que quem tiver ainda essa raridade, atualizasse para uma versão mais nova e com menos riscos.

Do nível de execução

Outro bixo papão do nível dispositivos móveis é a tal capacidade de processamento. Em média hoje no Brasil um PC popular possui 1GB de RAM, Processador 1.2Ghz, HD de 80GB e tela de 15″. Esse é o padrão de mercado Brasileiro, tendo isso em mente eu consigo gerar grandes experiências sem ter que perder na qualidade final.
No mundo de dispositivos móveis a coisa é totalmente diferente do que você está acostumado a fazer, já que o padrão de mercado atual é 133Mhz de processamento, 64kb de memória e 168kb de HD, levando em consideração as configurações padrões existentes.
O que deve levar que quando se desenvolve experiências ricas para o usuário final que tenha um celular, você deve levar em consideração esse fator de “padrão do mercado” em conta. À não ser que você desenvolva para um padrão já específico que é o caso do próximo bixo papão “Plataformas”.

Quando se trata de desenvolvimento para mobile, você tem que tratar o FP ou AIR com carinho respeitando muito o GC de ambos, uma mão na roda era se você pudesse ler esse documento. Que a Adobe descreve como boas práticas para desenvolvimento móvel com FP e AIR.

Esse sem dúvidas é um grande bixo papão de desenvolvimento para mobile, aproveitar o máximo que o mobile tenha e não prejudicar o ambiente no geral que ele tenha. Afinal celular é também feito para conversar.

Plataformas
Ou grande bixo papão para desenvolvimento Mobile é os sistemas operacionais, cada empresa tem seu próprio sistema operacional ou usam um sistema operacional de código aberto e acaba protegendo desenvolvedores que usam sua própria linguage de programação e se fechando em copas para outras plataformas mais interativas que agrege valor ao conteúdo final.
Exemplo disso é o Symbian, BlackBerry, iPhone OSX. Acabam atrasando o desenvolvimento de novas funções e limitando certos tipos de funcionabilidades para a plataforma FP.

Como é de costume, quem não se abrir acaba sendo engolido pela evolução madura do mercado. Foi pensando nisso que a Symbian recentemente lançou recentemente mão do código fonte do seu sistema operacional para que outros desenvolvedores ajudassem a evoluir a plataforma. Como outro caso de grande sucesso é o da Google, o Android é um OS já open-source e ovacionado por diversas empresas criadoras de dispositivos móveis, eu não falo só em HTC, falo em Sony Erickson, Nokia, LG, Xperia, Helio, Motorola. Todas essas empresas gigante do mundo dos celulares e/ou dispositivos móveis viram que era melhor usar uma plataforma open-source à que usar uma fechada.

A grande barreira do OS aos poucos é quebrada e inclusive ganha motivadores aos desenvolvedores que tem habilidades em desenvolver para aquela plataforma em específico. Não é atoa que a Apple tem o melhor programa de desenvolvimento para seus desenvolvedores para o iphone e ipod touch. Eu não tiro a razão dela em bloquear o o FP para seus smarts phones, mais ao mesmo tempo ela vem a calhar na própria evolução do mercado e faz o “usuario final pensar” Por que não posso ver um site em Flash em meu dispositivo móvel pagando o mesmo preço em outro que toca?
Usuários finais eles sim, são os gerentes e os clientes, onde dedicem qual plataforma ou dispositivo móvel vão usar.

Sem dúvida a Adobe e Apple estão trabalhando em conjunto para trazer o FP ao iPhone/iPod e iPad de forma sustentável para ambas as companhias. Segundo últimos comentários do Tinic Uro um dos grandes engenheiros do FP, o FP para MAC agora é basicamente uma aplicativo 100% escrito em Cocoa/Objective-C. O que prova que a maturidade do FP se adaptar em qualquer plataforma chega a um nincho que é mera medida de tempo.

Já que o grande problema em não ter o FP no iPhone foi erro disproporcional e acabou levando uma coisa a outra. Toda essa “guerrinha” é pura encenação e acredito que logo logo isso será resolvido da melhor maneira possível, agradando não só ao desenvolvedor de ambas as empresas quanto aos usuários finais que poderão ver o conteúdo feito em FP.

Interop entre as plataformas

Outro grande fator que leva ao atraso de adotar o FP e o AIR aos dispositivos móveis é a diferenciação entre as plataformas. Cada uma possui comportamentos específicos e não seguem um padrão exigente como é escrito hoje na esfera WEB. Cada uma possui comportamentos singulares, por exemplo a maneira como o Acelerometro do Android possui é diferente do Acelerometro do iPhone. Os comportamentos são iguais, mais a maneira que eles fizeram cada é que é diferente.
Onde o FP precisa se adaptar e criar apenas uma única API simples que tire vantagem disso e aproveite todo esse potencial que se tem e crie uma experiência para o desenvolvedor final usando uma única API e único código para diferentes dispositivos.

O Flash CS5 é uma das grandes novas apostas da Adobe para isso, Ela demonstrou que está levando muito a sério em portar de forma elegante o AIR e o FP à dispostivos móveis. Como foi visto do Mobile World Congress, no blog do Ted você consegue ver que já é possível rodar AIR e FP no Android tanto no navegador quanto como aplicativos nativos.

Esse mesmo AIR 2.0 Beta 2 você já pode começar a experimentar essa fluidez, porém para testar de fato no dispositivo você vai ter que aguardar um pouco mais de tempo até eles lançarem todas essas novidades no MAX 2010.

Ferramentas de cross-compile:

Existe hoje ferarmentas no mercado que já faz o seu código em AIR / Flex virar uma aplicação nativa, como é o caso da empresa Open Plug, que resolveu sair na frente e lançar uma IDE junto ao Eclipse e que use o mesmo SDK do Flex com algumas modificações para fazer a cross-complicação do seu código feito em AS3/MXML para código nativo da máquina.

O bixo papão disso, é o resultado final. Você passa a não ter controle do que está indo dentro dos binários distribuidos e pode vir a ter sérios problemas de portabilidade e maturidade no futuro. Por exemplo. eu nao arriscaria fazer um produto que fizesse cross-compile no atual momento até chegar Outubro desse ano. Já que muitas definições serão tomadas nesse tempo e muitas mudanças cheguem a ocorrer.
Ok, você pode pensar que tais mudanças não afetariam o código escrito em AS3/MXML, olha não teria certeza quanto a isso, já que a cada mudança sempre sofre com nomeclatura de API, mudanças de nome de métodos, sintaxe, eventos. É coisa a se pensar. Pode começar a explorar, ver como é feito o processo. Porém comercialmente ainda não é o momento ideal. Principalmente quando se está forjando uma plataforma para dispositivos móveis.
A aposta do Open Plug com o Elipse é sem dúvida inovadora, você poder escrever em MXML e traduzir isso para plataformas Mobile como Nokia S60 3 e 5th geração é ótimo. Sem eu me preocupar nenhum pingo com C++. É fantástico ele fazer todo o trabalho sujo que teria que fazer. Porém até mesmo a própria Open Plug depende dessas decições do mercado.

Uma outra empresa que está apostando muito nessa Interop é a Appcelerator, não só voltada para o Flash e AIR, mais na Web como um todo, você faz a tradução da sua Aplicação WEB seja ela feita em JS/HTML ou Flash/Flex, ela consegue gerar instaladores nativos na plataforma alvo. Embora ela tenha a mesma fraqueza do Open plug em esperar a maturidade do mercado.

Esse é o grande Bixo papão de ambas, esperar um pouco mais para ver o que será definido daqui para frente, não tão longe assim, eu arriscaria uma solidez nesse sentido daqui uns 4 meses.

Flex Slider Framework, esse ainda vai demorar a sair, e acredito eu que vai surpreender a muita gente que desenvolve em Flex hoje atualmente, não só no Flex, mais ao todo como no geral.

Conclusão

Com tanta dificuldade de se gerar conteúdo para diferentes plataformas, diferentes telas, diferentes propriedades, eu tiro o Chapéu para o time do FP e AIR, não é fácil organizar todas essas diferenças em uma API interop que funciona da mesma forma que funciona em A ou em B.

Actionscript Frameworks/ Flex/ Flex Mobile Framework/ Labs/ Slider Framework

Flex Mobile Framework

Ontem a Adobe oficializou o anúncio que estava trabalhando em uma versão optimizada para dispositivos móveis do Flex SDK.
O Flex Mobile Framework ou melhor Slider é uma grande promessa para então já esperada comunidade de desenvolvedores da plataforma Flex.

Com o recém chegado Flash Player 10 para dispositivos móveis a coisa muda de status e passa a amadurecer mais ainda esssa idéia de rodar Actionscript 3.0 para celulares.

Em minha opinião pessoal, acredito que há sem dúvida muito trabalho a ser feito para optimizar o Flex SDK para dispositivos móveis, onde os principais desafios são multi-toque, pouca memória disponível e pouco nível de processamento. O que acarreta atualmente na inviabilidade de se rodar isso “Out of Box”.

Pesquisas internas rodando o novo Flash Player em meu Nokia e62 serie 60 5th mostrou que ainda tem muito que amadurecer o player para rodar nos dispositivos móveis. Principalmente para o futuro Slider.

Uma biblioteca que se comportou muito bem, fora o aspecto de multi-touch. Não pudemos testar por que não possuo nenhum celular com multi-touch foi o minimal components do Keith. É level, funcional e possui a mesmo fluxo de criação de componentes Flex.
Acredito que Adobe esteja se baseando em sua experiência bem sucessidade em introduzir o Flex em forms do LiveCycle para julgar os melhores aspectos.
Como no próprio whitepaper do Slider há grandes desafiors e com toda certeza ela vai fazer isso rodar suavemente.
Vamos aguardar.

[Atualização 07/10/2009] Video mostrando o Slider em ação.