SlideShare uma empresa Scribd logo
1 de 73
Desafios no desenvolvimento de
 uma aplicação real com Flex




       João Augusto Zaratine <zaratine@gmail.com>
                 blog.joaoaugusto.com.br
                      @joaozaratine
                        Julho/2010
Eu
        Flex desde 2007

Informant <www.informant.com.br>

NOUS <www.noussoftware.com>

     blog.joaoaugusto.com.br

          @joaozaratine
A APLICAÇÃO
http://vimeo.com/13278187
           Texto
DESAFIO #1
Criando textos de verdade
O que queríamos...
O que tínhamos...
✓Alinhamento
✓Tamanhos            ๏Imagens
✓sublinhado
 Negrito, itálico,
                     x Colunas
                     x Tabelas
✓Marcadores          x Embed
✓Cores               x Ctrl+V do Word
✓Links
✓Alinhamento
✓Tamanhos            ✓Colunas
✓sublinhado
 Negrito, itálico,
                     ๏Imagens
                     x Tabelas
✓Marcadores          x Embed
✓Cores               x Ctrl+V do Word
✓Links
É quase impossível usar
         o TLF
“O CKEditor é o que
precisamos... Isso não é
       Flex, é?”
“Já sei, vamos fazer um
          popup”
Bom, agora só falta
 exibir o texto....
DESAFIO #2
Exibindo conteúdo HTML
Tentativa #1
   htmlText
✓ <a>            ✓ <u>
✓ <b>            x <div>
✓ <br>           x <table>, <th>, <tr>, <td>
✓ <font>         x <object>, <embed>
✓ <img>          x <em>
✓ <i>            x <form>
✓ <li>           x <input>
✓ <p>            x <h1>, <h2>, <h3>, <h4>...
✓ <textformat>   x Etc e tal
Tentativas #2 #3
  #4 #5 #6...
DENG
DENG
   IFrame 1
DENG
           IFrame 1
IFrame 2
DENG
           IFrame 1
IFrame 2
               IFrame 3
DENG
           IFrame 1
IFrame 2
               IFrame 3
 IFrame 4
DENG
IFrame 5     IFrame 1
  IFrame 2
                 IFrame 3
    IFrame 4
DENG
                        IFrame 6
IFrame 5     IFrame 1
  IFrame 2
                 IFrame 3
    IFrame 4
Qual é o melhor lugar para
      exibir HTML?
Qual é o melhor lugar para
      exibir HTML?

Talvez numa página HTML?
Largura:100%




                             Altura: 100%
Aplicação Flex Tradicional


       Flex ScrollBars
Largura:100%




                    Altura definida pela conteúdo
 NOUS (Flex)

Browser ScrollBar

     HTML
Browser
Página HTML




                                                                          NOUS (Flex)



Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam vitae elit placerat justo sollicitudin posuere. Sed pulvinar velit eu elit pellentesque tristique. Nam consectetur
dui eu elit consectetur eget tincidunt massa vestibulum. Vivamus nisi libero, pretium et aliquet ut, ultrices ac purus. Etiam nibh dui, faucibus ut venenatis ut, accumsan a augue.

                                                          Conteúdo HTML
Sed feugiat nisi sed ipsum bibendum imperdiet. Etiam lobortis vulputate metus ac interdum. Morbi porta semper vestibulum. Pellentesque lobortis quam non diam sagittis vitae
rhoncus tortor viverra. Nam ut ultricies urna.
Área que mostra conteúdo apareceu?
   ADDED_TO_STAGE ou SHOW




ExternalInterface.call(mostraDivECarreg
          aConteudoPorAjax)
Área que mostra conteúdo desapareceu?
   REMOVED_TO_STAGE ou HIDE




ExternalInterface.call(escondeDivEApaga
             SeuConteudo)
DESAFIO #3
Eternal Loading....
AÇÃO #1
Recompactar todas as imagens
AÇÃO #2
Remover todos Embed das
        imagens
    (a não ser que elas apareçam na primeira tela)
AÇÃO #3
 Criar mais Modules e não
carregá-los com a aplicação
“Mas agora quando eu entro no
 módulo administração a tela
    demora pra aparecer”
Depois que a aplicação é carregada e aparece na
 tela, carregamos todos os módulos sem que o
                  usuário saiba
“Mas essa aplicação ainda demora
        muito pra abrir”
AÇÃO #4
Login antes de carregar a
        aplicação
Pessoas consideram uma aplicação
     rápida por duas razões:
1) Ou elas são rápidas de verdade
               ou...
2) Ou elas dão a impressão de
       serem rápidas
Passo #1
Exterminar a tela de login do Flex
Passo #2
Criar uma nova tela de login em HTML
Passo #3
Colocar a nova tela de login em cima da tela
de loading do Flex
DESAFIO #4
Performance
90% dos problemas de performance estavam no back-end
ANTES



select t from Topic t
DEPOIS


select t.name,
       t.description,
       t.date
       from Topic t
ANTES

public class Package
{
	 	 public var id:Number;
     public var status:String;
	 	 public var packageBarcode:String;
	 	 public var orderItem:OrderItem;
}
OrderItem tem:

• Order
  •Shipment
   •Terminal
  •OrderItem[]
•Product
DEPOIS
public   class Package
{
	 	      public   var   id:Number;
	 	      public   var   orderId:Number;
	 	      public   var   orderItemId:Number;
	 	      public   var   status:String;
	 	      public   var   packageBarcode:String;
	 	      public   var   postalBarcode:String;
	 	      public   var   shipWay:String;
	 	      public   var   productName:String;
	 	      public   var   reference:String;
	 	      public   var   date:Date;
	 	      public   var   name:String;
	 	      public   var   address:String;
	 	      public   var   number:String;
	 	      public   var   city:String;
	 	      public   var   country:String;
	 	      public   var   postalCode:String;
	 	      public   var   neighborhood:String;
	 	      public   var   phone:String;
}
ANTES
	   <mx:Box>
	   	 <mx:Canvas>
	   	 	 <mx:HBox>
	   	 	 	 <mx:Canvas>
	   	 	 	 	 <mx:VBox>
	   	 	 	 	 	 <mx:Label text="Hello"/>
	   	 	 	 	 </mx:VBox>
	   	 	 	 </mx:Canvas>
	   	 	 </mx:HBox>
	   	 </mx:Canvas>
	   </mx:Box>
DEPOIS


<mx:Canvas>
	 <mx:Label text="Hello"/>
</mx:Canvas>
ANTES


model.user.name = "Joao"
model.user.abstract = ""
model.user.birthdate = new Date(1988, 04, 26)
model.user.administrator = true
DEPOIS


var user:User = model.user
user.name = "Joao"
user.abstract = ""
user.birthdate = new Date(1988, 04, 26)
user.administrator = true
Dúvidas?
Obrigado!

Mais conteúdo relacionado

Destaque

Deckofcapabilities
DeckofcapabilitiesDeckofcapabilities
DeckofcapabilitiesAkiva Talmi
 
Lunch Science: Glycemic Effects as a Credence Quality
Lunch Science: Glycemic Effects as a Credence QualityLunch Science: Glycemic Effects as a Credence Quality
Lunch Science: Glycemic Effects as a Credence QualityTrent Smith
 
empreendedorismo e inovação em época de crise
empreendedorismo e inovação em época de criseempreendedorismo e inovação em época de crise
empreendedorismo e inovação em época de crisetdc-globalcode
 
Presentación r
Presentación rPresentación r
Presentación riesaguia
 

Destaque (7)

Deckofcapabilities
DeckofcapabilitiesDeckofcapabilities
Deckofcapabilities
 
Lunch Science: Glycemic Effects as a Credence Quality
Lunch Science: Glycemic Effects as a Credence QualityLunch Science: Glycemic Effects as a Credence Quality
Lunch Science: Glycemic Effects as a Credence Quality
 
Htp Prospect Webinar
Htp Prospect Webinar Htp Prospect Webinar
Htp Prospect Webinar
 
Presentation1
Presentation1Presentation1
Presentation1
 
Empreender Na Crise
Empreender Na CriseEmpreender Na Crise
Empreender Na Crise
 
empreendedorismo e inovação em época de crise
empreendedorismo e inovação em época de criseempreendedorismo e inovação em época de crise
empreendedorismo e inovação em época de crise
 
Presentación r
Presentación rPresentación r
Presentación r
 

Semelhante a Desafios no desenvolvimento de uma aplicação real com Flex @ FUGSC

RIA - Conhecendo o Adobe Flex 2
RIA - Conhecendo o Adobe Flex 2RIA - Conhecendo o Adobe Flex 2
RIA - Conhecendo o Adobe Flex 2elliando dias
 
Palestra / SDD / Crossbrowsing
Palestra / SDD / CrossbrowsingPalestra / SDD / Crossbrowsing
Palestra / SDD / Crossbrowsinghugodiasneto
 
Programação Orientada a Testes
Programação Orientada a TestesProgramação Orientada a Testes
Programação Orientada a TestesGregorio Melo
 
Apresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo SitesApresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo Sitesthiagolima
 
Mobile, por onde começar
Mobile, por onde começarMobile, por onde começar
Mobile, por onde começarPaulo Afonso
 
O que você faz para ser Mobile? TDC2013
O que você faz para ser Mobile? TDC2013O que você faz para ser Mobile? TDC2013
O que você faz para ser Mobile? TDC2013Jackson F. de A. Mafra
 
Webdesign - CSS na Prática no Webdesign
Webdesign - CSS na Prática no WebdesignWebdesign - CSS na Prática no Webdesign
Webdesign - CSS na Prática no WebdesignRenato Melo
 
Do impresso para o tablet
Do impresso para o tabletDo impresso para o tablet
Do impresso para o tabletdualpixel
 
Start-ups em grandes empresas
Start-ups em grandes empresasStart-ups em grandes empresas
Start-ups em grandes empresasAntonio Silveira
 
Raymundo ferreira desenvolvendo apps com html e java script no windows phon...
Raymundo ferreira   desenvolvendo apps com html e java script no windows phon...Raymundo ferreira   desenvolvendo apps com html e java script no windows phon...
Raymundo ferreira desenvolvendo apps com html e java script no windows phon...INdT
 
Desmistificando Progressive Web Apps - PWA
Desmistificando Progressive Web Apps - PWADesmistificando Progressive Web Apps - PWA
Desmistificando Progressive Web Apps - PWAStefan Horochovec
 
HTML5 - Road Show TI Experience 2012
HTML5 - Road Show TI Experience 2012HTML5 - Road Show TI Experience 2012
HTML5 - Road Show TI Experience 2012Fábio Flatschart
 

Semelhante a Desafios no desenvolvimento de uma aplicação real com Flex @ FUGSC (20)

Html5
Html5Html5
Html5
 
RIA - Conhecendo o Adobe Flex 2
RIA - Conhecendo o Adobe Flex 2RIA - Conhecendo o Adobe Flex 2
RIA - Conhecendo o Adobe Flex 2
 
Palestra / SDD / Crossbrowsing
Palestra / SDD / CrossbrowsingPalestra / SDD / Crossbrowsing
Palestra / SDD / Crossbrowsing
 
Conhecendo o Adobe Flex 2
Conhecendo o Adobe Flex 2Conhecendo o Adobe Flex 2
Conhecendo o Adobe Flex 2
 
HTML5 & CSS3
HTML5 & CSS3HTML5 & CSS3
HTML5 & CSS3
 
Programação Orientada a Testes
Programação Orientada a TestesProgramação Orientada a Testes
Programação Orientada a Testes
 
Apresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo SitesApresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo Sites
 
HTML 5 e Open Web Platform
HTML 5 e Open Web PlatformHTML 5 e Open Web Platform
HTML 5 e Open Web Platform
 
Mobile, por onde começar
Mobile, por onde começarMobile, por onde começar
Mobile, por onde começar
 
O que você faz para ser Mobile? TDC2013
O que você faz para ser Mobile? TDC2013O que você faz para ser Mobile? TDC2013
O que você faz para ser Mobile? TDC2013
 
JavaScript
JavaScriptJavaScript
JavaScript
 
XHTML e CSS
XHTML e CSSXHTML e CSS
XHTML e CSS
 
Webdesign - CSS na Prática no Webdesign
Webdesign - CSS na Prática no WebdesignWebdesign - CSS na Prática no Webdesign
Webdesign - CSS na Prática no Webdesign
 
Web design responsivo e adaptativo - HTML5/CSS3
Web design responsivo e adaptativo - HTML5/CSS3Web design responsivo e adaptativo - HTML5/CSS3
Web design responsivo e adaptativo - HTML5/CSS3
 
Hands On JavaScript
Hands On JavaScriptHands On JavaScript
Hands On JavaScript
 
Do impresso para o tablet
Do impresso para o tabletDo impresso para o tablet
Do impresso para o tablet
 
Start-ups em grandes empresas
Start-ups em grandes empresasStart-ups em grandes empresas
Start-ups em grandes empresas
 
Raymundo ferreira desenvolvendo apps com html e java script no windows phon...
Raymundo ferreira   desenvolvendo apps com html e java script no windows phon...Raymundo ferreira   desenvolvendo apps com html e java script no windows phon...
Raymundo ferreira desenvolvendo apps com html e java script no windows phon...
 
Desmistificando Progressive Web Apps - PWA
Desmistificando Progressive Web Apps - PWADesmistificando Progressive Web Apps - PWA
Desmistificando Progressive Web Apps - PWA
 
HTML5 - Road Show TI Experience 2012
HTML5 - Road Show TI Experience 2012HTML5 - Road Show TI Experience 2012
HTML5 - Road Show TI Experience 2012
 

Mais de João Zaratine

Case ContaAzul - Final Desafio Brasil SC
Case ContaAzul - Final Desafio Brasil SCCase ContaAzul - Final Desafio Brasil SC
Case ContaAzul - Final Desafio Brasil SCJoão Zaratine
 
Lições Aprendidas na Criação de um Negócio de Escala
Lições Aprendidas na Criação de um Negócio de EscalaLições Aprendidas na Criação de um Negócio de Escala
Lições Aprendidas na Criação de um Negócio de EscalaJoão Zaratine
 
Semana da Informática UNIVILLE - Flex Messaging
Semana da Informática UNIVILLE - Flex MessagingSemana da Informática UNIVILLE - Flex Messaging
Semana da Informática UNIVILLE - Flex MessagingJoão Zaratine
 
Felipe Crescencio - Flex e Java com BlazeDS @ FUGSC
Felipe Crescencio - Flex e Java com BlazeDS @ FUGSCFelipe Crescencio - Flex e Java com BlazeDS @ FUGSC
Felipe Crescencio - Flex e Java com BlazeDS @ FUGSCJoão Zaratine
 
Felipe Crescencio - Flex e Java com BlazeDS @ FUGSC
Felipe Crescencio - Flex e Java com BlazeDS @ FUGSCFelipe Crescencio - Flex e Java com BlazeDS @ FUGSC
Felipe Crescencio - Flex e Java com BlazeDS @ FUGSCJoão Zaratine
 
Arian Pasquali - Introdução ao Flex @ FUGSC
Arian Pasquali - Introdução ao Flex @ FUGSCArian Pasquali - Introdução ao Flex @ FUGSC
Arian Pasquali - Introdução ao Flex @ FUGSCJoão Zaratine
 
Flex + Grails @ Flexmania2010
Flex + Grails @ Flexmania2010Flex + Grails @ Flexmania2010
Flex + Grails @ Flexmania2010João Zaratine
 

Mais de João Zaratine (7)

Case ContaAzul - Final Desafio Brasil SC
Case ContaAzul - Final Desafio Brasil SCCase ContaAzul - Final Desafio Brasil SC
Case ContaAzul - Final Desafio Brasil SC
 
Lições Aprendidas na Criação de um Negócio de Escala
Lições Aprendidas na Criação de um Negócio de EscalaLições Aprendidas na Criação de um Negócio de Escala
Lições Aprendidas na Criação de um Negócio de Escala
 
Semana da Informática UNIVILLE - Flex Messaging
Semana da Informática UNIVILLE - Flex MessagingSemana da Informática UNIVILLE - Flex Messaging
Semana da Informática UNIVILLE - Flex Messaging
 
Felipe Crescencio - Flex e Java com BlazeDS @ FUGSC
Felipe Crescencio - Flex e Java com BlazeDS @ FUGSCFelipe Crescencio - Flex e Java com BlazeDS @ FUGSC
Felipe Crescencio - Flex e Java com BlazeDS @ FUGSC
 
Felipe Crescencio - Flex e Java com BlazeDS @ FUGSC
Felipe Crescencio - Flex e Java com BlazeDS @ FUGSCFelipe Crescencio - Flex e Java com BlazeDS @ FUGSC
Felipe Crescencio - Flex e Java com BlazeDS @ FUGSC
 
Arian Pasquali - Introdução ao Flex @ FUGSC
Arian Pasquali - Introdução ao Flex @ FUGSCArian Pasquali - Introdução ao Flex @ FUGSC
Arian Pasquali - Introdução ao Flex @ FUGSC
 
Flex + Grails @ Flexmania2010
Flex + Grails @ Flexmania2010Flex + Grails @ Flexmania2010
Flex + Grails @ Flexmania2010
 

Desafios no desenvolvimento de uma aplicação real com Flex @ FUGSC

Notas do Editor