Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Breakingice flex

412 views

Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Breakingice flex

  1. 1. Breaking Ice – Adobe Flex<br />
  2. 2. Quem sou eu?<br />2 de 248<br />
  3. 3. Thiago Alves dos Santos<br />Bacharel em Sistema de Informação pela PUCPR (2010)<br />3 de 248<br />
  4. 4. No mercado de TI desde 2008<br />Já trabalhei com:<br />4<br />
  5. 5. Atualmente sou Líder Técnico na Sigma Dataserv S.A. <br />Iniciando um startup – inCodeWorks<br />5<br />
  6. 6. Vamos começar?<br />6<br />
  7. 7. Como?<br />7<br />
  8. 8. Download<br />http://www.adobe.com/go/try_flashbuilder/<br />8<br />
  9. 9. Plug-in<br />9<br />ou<br />Standalone<br />
  10. 10. Mas antes de botar a mão na massa!<br />10<br />
  11. 11. Vamos a um pouco de teoria!<br />11<br />
  12. 12. MXML<br />12<br />Magic Extensible Markup Language<br />Macromedia MagicExtensible Markup Language<br />
  13. 13. ActionScript<br />13<br />Meio JS ... Meio Java<br />
  14. 14. 14<br />Variáveis<br />varsomeInt:int = 3; <br />varsomeInt:int = newint(3);<br />
  15. 15. 15<br />Arrays<br />// literal value <br />varsomeArray:Array = [1, 2, 3]; <br />// Array constructor<br />varsomeArray:Array = new Array(1,2,3); <br />
  16. 16. 16<br />Função<br />publicfunction fechar():void<br />{<br />// fecha tela de novoContato<br />PopUpManager.removePopUp(this);<br />}<br />
  17. 17. 17<br />Classe<br />publicclassContato <br />{ <br /> varnome:String = ‘José’; <br />}<br />
  18. 18. 18<br />Interface<br />publicinterfaceGenericDao<br />{ <br />functioninsert(obj:Object):void; <br />}<br />publicclassSpecificDaoimplementsGenericDao<br />{ <br />functioninsert(obj:Object):void{}<br />}<br />
  19. 19. Você pode ver mais em:http://help.adobe.com/pt_BR/ActionScript/3.0_ProgrammingAS3/http://blog.flexexamples.com/<br />19<br />
  20. 20. Chega de conversa fiada!<br />20<br />
  21. 21. Mão na massa!<br />21<br />
  22. 22. Vamos codar!<br />22<br />
  23. 23. Começando pela View!<br />23<br />
  24. 24. Vamos colocar alguma ação nessa tela?<br />24<br />
  25. 25. Acho que esquecemos de uma validação!<br />25<br />
  26. 26. 26<br />
  27. 27. 27<br />
  28. 28. Contato<br /> @thalves<br /> @inCodeWorks<br />thiagoalvsantos@gmail.com<br />thiago@incodeworks.com.br<br /> thalves.wordpress.com<br />28<br />
  29. 29. 29<br />
  30. 30. 30<br />
  31. 31. Continuando<br />31<br />
  32. 32. Flex + Java<br />32<br />
  33. 33. Instalar plug-in <br />33<br />
  34. 34. Dynamic Web Project<br />34<br />
  35. 35. Adicionar BlazeDS<br />35<br />
  36. 36. web.xml<br />36<br /><!-- Http Flex Session attribute and binding listener support --><br /><listener><br /><listener-class>flex.messaging.HttpFlexSession</listener-class><br /></listener><br /><!-- MessageBrokerServlet --><br /><servlet><br /><servlet-name>MessageBrokerServlet</servlet-name><br /><servlet-class>flex.messaging.MessageBrokerServlet</servlet-class><br /><init-param><br /><param-name>services.configuration.file</param-name><br /><param-value>/WEB-INF/flex/services-config.xml</param-value><br /></init-param><br /><load-on-startup>1</load-on-startup><br /></servlet><br /><servlet-mapping><br /><servlet-name>MessageBrokerServlet</servlet-name><br /><url-pattern>/messagebroker/*</url-pattern><br /></servlet-mapping><br />
  37. 37. Configurações Flex<br />37<br />-services “<caminhoProjeto>services-config”<br />
  38. 38. Configurações Flex<br />38<br />-context-root <contexo-web><br />
  39. 39. Replicar entidades<br />39<br />publicclassContatoimplementsSerializable {<br />/**<br /> * <br /> */<br />privatestaticfinallongserialVersionUID = 3162496932110844519L;<br />privateStringnome;<br />privateStringsobrenome;<br />private Date dataNascimento;<br />privateLongtelefone;<br />privateLongcelular;<br />... Continua<br />
  40. 40. RemoteClass<br />40<br />packagebr.com.workshop.agenda.entity<br />{<br />[RemoteClass(alias="br.semanaacademica.agenda.Contato")]<br />[Bindable]<br />publicclass Contato <br />{<br />publicvarnome:String;<br />publicvarsobrenome:String;<br />publicvardataNascimento:Date;<br />publicvartelefone:Number;<br />publicvarcelular:Number;<br />}<br />}<br />
  41. 41. ServicoJava<br />41<br />packagebr.semanaacademica.agenda;<br />importjava.util.ArrayList;<br />importjava.util.Date;<br />importjava.util.List;<br />publicclassServicoJava {<br />privateList<Contato> listaContatos;<br />publicList<Contato> obterContatos() {<br /> LOGICA DO SERVIÇO...<br />}<br />
  42. 42. RemoteConfig.xml<br />42<br /><destinationid="servicoJava"><br /> <properties><br /> <source>br.semanaacademica.agenda.ServicoJava</source><br /> </properties><br /></destination><br />
  43. 43. RemoteObject<br />43<br /><mx:RemoteObject id="servicoJava"<br />fault="onFault(event)" destination="servicoJava"/><br />
  44. 44. Assíncrona<br />44<br />servicoJava.addEventListener(ResultEvent.RESULT,<br />//No flex toda requisição é assíncrona,<br />//Então devo programar um função quando<br />//a requisição terminar de executar<br />function(event:ResultEvent):void<br /> {<br />dataGridContato.dataProvider= event.resultasArrayCollection;<br /> }<br />);<br />
  45. 45. Chamada<br />45<br />servicoJava.obterContatos();<br />
  46. 46. 46<br />
  47. 47. 47<br />
  48. 48. Contato<br /> @thalves<br /> @inCodeWorks<br />thiagoalvsantos@gmail.com<br />thiago@incodeworks.com.br<br /> thalves.wordpress.com<br />48<br />
  49. 49. Material<br />http://www.slideshare.net/thalves/breakingice-flex/<br />49<br />
  50. 50. 50<br />

×