segunda-feira, 24 de maio de 2010

Flex 3 e Flex 4 - Algumas diferenças

Com o lançamento do Flex 4, muitos estão se perguntando se deve ou não usar, inclusive eu. Vou colocar minha humilde opinião.

Para quem está começando a estudar ou a desenvolver em Flex a resposta é uma só, Flex 4.

Mas para quem já tem uma aplicação desenvolvida em Flex 3, neste caso, terá que ser analisado caso a caso, isto porque se tem duas situações a avaliar:
  • Código misto, isto é, código Flex 3 (Halo / MX) juntamente com código Flex 4 (Spark). Isto é informado em Project > Properties > Flex Build Path > Library path > Component set = MX + Spark (default). O tema default é o Spark, o que na minha opinião é mais agradável, mais clean.
  • Migração. Aqui o esforço é maior e deve ser bem analisado. O Flex Team fez um grande refactoring para separar os códigos de layout (skin) do core dos objetos.
Algumas situações que encontrei em relação a layout:
  • Os containers no Flex 3 estão no pacote mx.containers e herdam de Container, no Flex 4 são provenientes de três classes bases: spark.components.SkinnableContainer, spark.components.SkinnableDataContainer e spark.components.supportClasses.GroupBase e estas possuem a propriedade layout que espera uma classe do tipo LayoutBase que possue os styles de padding (paddingLeft, paddingTop, paddingRight e paddingBottom). O valor default dos styles de padding no MX variava de classe para classe no Spark é sempre 0, o Application no MX, por exemplo é 24.
  • O TitleWindow no Flex 3 tem a propriedade showCloseButton que por default é false, no Flex 4 não tem esta propriedade mas o botão de close aparece por default.
  • O Button no Flex 3 tinha seu tamanho definido principalmente pelo valor atribuído a propriedade label, no Flex 4 o tamanho mínimo é 21. Neste caso, dois botões com as labels OK e Cancel sem definição de width e height terão tamanhos diferentes no Flex 3, mas tamanhos iguais no Flex 4.
  • As propriedades verticalScrollPolicy e horizontalScrollPolicy que antes eram atribuídos diretamente ao Container agora são estilos do objeto Scroller que deve ser adicionado ao objeto ou ao skin da classe.
Bem isso foi algumas coisas que encontrei, acredito que tenha muito mais, por isso, a migração tem quer ser bem analisada, o melhor é fazer misto e depois com tempo e calma ir migrando as telas para Spark.

Nenhum comentário:

Postar um comentário