Programando Flex para dispositivos móveis

Minha primeira impressão que tive do Adbe AIR seria que ele não iria vingar. Isso porque como o runtime do Flash é lento, o AIR seria lento também. E para que novos aprender AIR caso saibam Java? Java é multiplataforma e tem muito mais recursos do que o AIR. Verdade.

Agora o AIR veio com diferenciais muito atrativos. Primeiro delas é poder instalar diretamente do navegador não precisando nem ter o AIR instalado. Só clicar e instalar e o AIR e o aplicativo é instalado. Segundo pela facilidade de criar aplicativos. Eu domino o Flex e o AIR possui características muito show para isso.

E a mais importante delas é o fato de que sabendo Flex e somente com este conhecimento posso criar aplicativos que rodam em MAC, Ruindow, iPhone, iPad, Android e BlackBerry. Isso com alguns mistérios mais super simples.

Segue abaixo algumas características para desenvolvimento Mobile.

Flex para Mobile, Desktop e no Navegador

Hoje podemos programar Flex para as seguintes plataformas:

  • Browser: Criar o aplicativo como um arquivo SWF para uso no Flash Player rodando em um navegador.
  • Desktop: Possível criar um aplicativo AIR independente para um computador desktop, como um computador Windows ou Macintosh.
  • Mobile: Criar um aplicativo AIR independente do dispositivo móvel, como um telefone ou um tablet.

O que se precisa saber antes de desenvolver aplicativos Mobile

Há algumas diferenças entre aplicações Desktop, Mobile e SWF:

  • No Mobile temos na maioria das vezes interação por touchscreen. Isos faz com que os componentes que receberão o toque sejam maiores. ( isso pra mim é totalmente necessário por tenho dedos grandes );
  • A rolagem é diferente em Mobile;
  • Muitas das vezes o tamanho da tela é inferior e isso intefere na quantidade de dados que será apresentado;
  • Temos muitas limitações principalmente no que diz respeito a processamento e memória;
  • Como em Mobile só é possível rodar um único aplicativo por vês, seu aplicativo é aberto e fechado várias vezes;

Então leve todas estas características em questão quando desenvolver aplicações para dispositivos móveis.

Restrições à utilização de componentes Spark e MX em aplicações móveis

Veja a tabela de restriçoes:

Componente Uso em Mobile Detalhes
Spark ActionBar
Spark BusyIndicator
Spark TabbedViewNavigator
Spark TabbedViewNavigatorApplication
Spark View
Spark ViewMenu
Spark ViewNavigator
Spark ViewNavigatorApplication
Sim Possuem suporte completo em Mobile.
Spark Button Spark CheckBox
Spark DataGroup
Spark Group/HGroup/VGroup/TileGroup
Spark Image/BitmapImage
Spark Label
Spark List
Spark RadioButton/RadioButtonGroup
Spark SkinnableContainer
Spark Scroller
Spark TextArea
Spark TextInput
Sim

Tome cuidado pois alguns destes componentes tem Skin específico para Mobile. O Label, Image e o BitmapImage pode ser usado normalmente.

Componentes como o Group e suas sub-classes podem ser usados sem nenhum problema.

Demais componentes do Spark

Desaconselhado

Os demais componentes não listados acima só podem ser utilizados se você criar Skin para eles.

Lembrando que qualquer componnente alterado por você deve ser levado em conta todas as características acima.

Spark DataGrid
Spark RichEditableText
Spark RichTex
Desaconselhado

É desaconselhável por causa do desempenho.

Datagrid tem desempenho voltado a quantidade de dados que aplicares a ele. Se usares muitos textos pode causar lentidão e travamento.

O RichEditableText e o RichTex tem desempenho baseado na quantidade de texto e na quantidade de controles que adicionares a eles.

MX Spacer Sim

O Spacer não usa Skin e por isso pode ser utilizado sem problemas.

MX gráficos Sim, mas com implicação desempenho

Você pode usar os controles de gráfico, como o AreaChart e BarChart, em uma aplicação móvel.

No entanto, o desempenho em um dispositivo móvel pode ser inferior a ideal, dependendo do tamanho e tipo de dados gráficos.

Por padrão os gráficos não são importados a estrutura quando criado para Mobile. Para isso é necessário importar manualmente as bibliotecas mx.swc e charts.swc para a LIB.

Demais componentes do pacote MX Não Os demais componentes como o MX:Button, mx:CheckBox, mx:List e o mx:DataGrid e demais componenetes do mx.controls.* e mx.containers.*.

 Os seguintes recursos Flex não são suportadas em aplicações móveis:

  • Não há suporte para Drag and Drop;
  • Não há suporte para ToolTip;
  • Não há suporte para RSLs.

 O desempenho

 Por causa das diversas restriçoes que temos nos dispositivos móveis temos que ter algumas cuidados ao desenvolver para mobile.

  • Tente no máximo possível criar os componentes em ActionScript. Criar em MXML pode perder desempenho;
  • Ao escrever Skins tente faze-los com FXG compilado ou Bitmap. Você pode escrever seus Skins em MXML mais haverá perda de performace;
  • Use componentes de Texto que não dependam do Text Layout Framework. Componente como o RichText e o RichEditableText pode ser usado mais há perda de desempenho;
  • Cuidado em usar Gráficos do MX pois estes podem perder desempenho;
  • Cuidado em usar compomentes baseados em Dataprovider. Ao usa-los tente restringir a quantidade de dados.

Fique por dentro de nossas novidades, ideias e atualizações