Boas práticas na criação de aplicações sérias com JavaFX - TDC 2014 SP

  • View
    1.286

  • Download
    1

Embed Size (px)

DESCRIPTION

Apresentação para o TDC 2014 sobre como melhorar seu código JavaFX quando criando aplicações sérias ("enterprise") com JavaFX

Text of Boas práticas na criação de aplicações sérias com JavaFX - TDC 2014 SP

  • 1. Boas prticas na criao de aplicaes SRIAS com JavaFX
  • 2. == AVISO == Este uma apresentao pessoal. As opinies aqui expressadas so de nica responsabilidade minha, e nada referem-se as da empresa para qual trabalho.
  • 3. Sobre Formado na FATEC SJC Trabalha no suporte da Red Hat Na rea h mais de 6 anos Entusiasta Open Source Um dos lderes do JUG Vale Comunidade JavaFX Palestras no TDC, J1, FISL, etc... aprendendo-javafx.blogspot.com
  • 4. Objetivo dessa apresentao Nessa apresentao iremos mostrar as melhores prticas que podem auxiliar na criao de aplicaes "srias" com JavaFX. Com os recursos da nova biblioteca grfica da plataforma Java, iremos mostrar como possvel criar uma aplicao "enterprise" organizada em camadas bem definidas e de fcil manuteno.
  • 5. JavaFX uma moderna biblioteca Java que dispe de vrios recursos para criao de aplicaes ricas. Sua forma de programar facilita muito a vida do desenvolvedor. o novo Swing
  • 6. JavaFX http://aprendendo-javafx.blogspot.com.br/
  • 7. Aplicaes Srias? Escalveis Fcil manuteno Fcil entendimento Organizao (time) Performance Usabilidade Resolvem problemas enterprise"
  • 8. 0) Bons e velhos Padres de projeto Boas prticas Java: http://docs.oracle.com/cd/A97688_16/generic.903/bp/java.htm
  • 9. 1) Camadas http://joel.inpointform.net/software-development/mvvm-vs-mvp-vs-mvc-the- differences-explained/
  • 10. Explicao MVP X MVC Mais: http://joel.inpointform.net/software-development/mvvm-vs-mvp-vs-mvc-the-differences-explained/
  • 11. Camadas no mundo JavaFX FXML representam as views que tm um controller; Controllers acessam o modelo(classes que representam a regra de negcio) e alteram a view. O acesso dos controlers ao modelo, no entanto, feito indiretamente atravs de classes de acesso(DAO, Service).
  • 12. Camadas no mundo JavaFX
  • 13. 2) Utilize Binding JavaFX contm objetos de wrapping para propriedades comum do Java. Esses wrappers permitem observar os valores das propriedades(listener) ou fazer com que propriedades se comportem em funo de outras (bind) Fonte: http://www.oracle.com/technetwork/articles/java/fxbest-1583679.html http://docs.oracle.com/javafx/2/binding/jfxpub-binding.htm
  • 14. Usando Binding Com essas tcnicas diminuimos bastante cdigo na aplicao e facilitamos a manuteno e a legibilidade. Bindings funcionam para diversos tipos primitivos e com diversas expresses de binding, fazendo com que o cdigo fique praticamente em ingls puro!
  • 15. Usando listeners
  • 16. 3) Navegao FXML Interfaces podem ser criadas usando XML com o FXML. FXMLs devem ser carregados como componentes JavaFX para serem usados Criar uma classe de navegao com metdos utilitrios de navegao e acesso centralizado recomendvel! Mais:https://blogs.oracle. com/acaicedo/entry/managing_multiple_screens_in_javafx1
  • 17. 4) No trave a thread do javafx JavaFX tem uma thread especfica. Tentativas de mudar a view do JavaFX fora dessa thread resultam em erro. Platform.runLater deve ser usado para fazermos as coisas dentro da thread do JavaFX. Para tarefas pesadas que devem ser feitas em paralelo, use as classes do pacote de concorrncia do JavaFX. Mais: http://docs.oracle.com/javafx/2/best_practices/jfxpub-best_practices.htm http://docs.oracle.com/javafx/2/threads/jfxpub-threads.htm
  • 18. Exemplo com o leitor de RFID
  • 19. 5) Aprenda a usar CSS Conhea o Guia do CSS; Similar a pginas WEB, use classes Eviter fazer no cdigo o que voc pode fazer no CSS Busque estudar a aplicao e entender o estilo antes de comear a sair espalhando CSS Mais: http://docs.oracle.com/javase/8/javafx/api/javafx/scene/doc-files/cssref.html
  • 20. 6) Organize bem o projeto Nomes convenientes a componentes da view(lbl, txt, tbl, etc) controllers({NomeView}Controller),FXML e css; Padronize a localizao de contedos da aplicao Mais: http://docs.oracle.com/javafx/2/best_practices/jfxpub-best_practices.htm
  • 21. Exemplo de estrutura de projeto
  • 22. 7) Programe com amor Fonte: a vida
  • 23. Obrigado @william_antonio github.com/jesuino aprendendo-javafx.blogspot.com