boas práticas na criação de aplicações sérias com javafx - tdc 2014 sp
DESCRIPTION
Apresentação para o TDC 2014 sobre como melhorar seu código JavaFX quando criando aplicações sérias ("enterprise") com JavaFXTRANSCRIPT
![Page 1: Boas práticas na criação de aplicações sérias com JavaFX - TDC 2014 SP](https://reader034.vdocuments.com.br/reader034/viewer/2022050720/54b373154a7959a1298b45be/html5/thumbnails/1.jpg)
Boas práticas na criação de aplicações SÉRIAS com JavaFX
![Page 2: Boas práticas na criação de aplicações sérias com JavaFX - TDC 2014 SP](https://reader034.vdocuments.com.br/reader034/viewer/2022050720/54b373154a7959a1298b45be/html5/thumbnails/2.jpg)
== AVISO ==
“Este é uma apresentação pessoal. As opiniões aqui expressadas são de única responsabilidade minha, e nada referem-se as da empresa para qual trabalho.”
![Page 3: Boas práticas na criação de aplicações sérias com JavaFX - TDC 2014 SP](https://reader034.vdocuments.com.br/reader034/viewer/2022050720/54b373154a7959a1298b45be/html5/thumbnails/3.jpg)
Sobre● Formado na FATEC SJC● Trabalha no suporte da Red Hat● Na área há mais de 6 anos● Entusiasta Open Source● Um dos líderes do JUG Vale● Comunidade JavaFX● Palestras no TDC, J1, FISL, etc...● aprendendo-javafx.blogspot.com
![Page 4: Boas práticas na criação de aplicações sérias com JavaFX - TDC 2014 SP](https://reader034.vdocuments.com.br/reader034/viewer/2022050720/54b373154a7959a1298b45be/html5/thumbnails/4.jpg)
Objetivo dessa apresentação
Nessa apresentação iremos mostrar as melhores práticas que podem auxiliar na
criação de aplicações "sérias" com JavaFX. Com os recursos da nova biblioteca gráfica da
plataforma Java, iremos mostrar como é possível criar uma aplicação "enterprise"
organizada em camadas bem definidas e de fácil manutenção.
![Page 5: Boas práticas na criação de aplicações sérias com JavaFX - TDC 2014 SP](https://reader034.vdocuments.com.br/reader034/viewer/2022050720/54b373154a7959a1298b45be/html5/thumbnails/5.jpg)
JavaFX
É uma moderna biblioteca Java que dispõe de vários recursos para
criação de aplicações ricas. Sua forma de programar facilita muito a vida do desenvolvedor.
É o novo Swing
![Page 6: Boas práticas na criação de aplicações sérias com JavaFX - TDC 2014 SP](https://reader034.vdocuments.com.br/reader034/viewer/2022050720/54b373154a7959a1298b45be/html5/thumbnails/6.jpg)
JavaFX
http://aprendendo-javafx.blogspot.com.br/
![Page 7: Boas práticas na criação de aplicações sérias com JavaFX - TDC 2014 SP](https://reader034.vdocuments.com.br/reader034/viewer/2022050720/54b373154a7959a1298b45be/html5/thumbnails/7.jpg)
Aplicações Sérias?
● Escaláveis● Fácil manutenção● Fácil entendimento● Organização (time)● Performance● Usabilidade● Resolvem problemas “enterprise"
![Page 8: Boas práticas na criação de aplicações sérias com JavaFX - TDC 2014 SP](https://reader034.vdocuments.com.br/reader034/viewer/2022050720/54b373154a7959a1298b45be/html5/thumbnails/8.jpg)
0) Bons e velhos Padrões de projeto
Boas práticas Java: http://docs.oracle.com/cd/A97688_16/generic.903/bp/java.htm
![Page 9: Boas práticas na criação de aplicações sérias com JavaFX - TDC 2014 SP](https://reader034.vdocuments.com.br/reader034/viewer/2022050720/54b373154a7959a1298b45be/html5/thumbnails/9.jpg)
1) Camadas
http://joel.inpointform.net/software-development/mvvm-vs-mvp-vs-mvc-the-differences-explained/
![Page 10: Boas práticas na criação de aplicações sérias com JavaFX - TDC 2014 SP](https://reader034.vdocuments.com.br/reader034/viewer/2022050720/54b373154a7959a1298b45be/html5/thumbnails/10.jpg)
Explicação MVP X MVC
Mais: http://joel.inpointform.net/software-development/mvvm-vs-mvp-vs-mvc-the-differences-explained/
![Page 11: Boas práticas na criação de aplicações sérias com JavaFX - TDC 2014 SP](https://reader034.vdocuments.com.br/reader034/viewer/2022050720/54b373154a7959a1298b45be/html5/thumbnails/11.jpg)
Camadas no mundo JavaFXFXML representam as views que têm um controller;Controllers acessam o modelo(classes que representam a regra de negócio) e alteram a view. O acesso dos controlers ao modelo, no entanto, é feito indiretamente através de classes de acesso(DAO, Service).
![Page 12: Boas práticas na criação de aplicações sérias com JavaFX - TDC 2014 SP](https://reader034.vdocuments.com.br/reader034/viewer/2022050720/54b373154a7959a1298b45be/html5/thumbnails/12.jpg)
Camadas no mundo JavaFX
![Page 13: Boas práticas na criação de aplicações sérias com JavaFX - TDC 2014 SP](https://reader034.vdocuments.com.br/reader034/viewer/2022050720/54b373154a7959a1298b45be/html5/thumbnails/13.jpg)
2) Utilize “Binding”
JavaFX contém 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 função de outras (bind)Fonte: http://www.oracle.com/technetwork/articles/java/fxbest-1583679.htmlhttp://docs.oracle.com/javafx/2/binding/jfxpub-binding.htm
![Page 14: Boas práticas na criação de aplicações sérias com JavaFX - TDC 2014 SP](https://reader034.vdocuments.com.br/reader034/viewer/2022050720/54b373154a7959a1298b45be/html5/thumbnails/14.jpg)
Usando BindingCom essas técnicas diminuimos bastante código na aplicação e facilitamos a manutenção e a legibilidade. Bindings funcionam para diversos tipos primitivos e com diversas expressões de binding, fazendo com que o código fique praticamente em inglês puro!
![Page 15: Boas práticas na criação de aplicações sérias com JavaFX - TDC 2014 SP](https://reader034.vdocuments.com.br/reader034/viewer/2022050720/54b373154a7959a1298b45be/html5/thumbnails/15.jpg)
Usando listeners
![Page 16: Boas práticas na criação de aplicações sérias com JavaFX - TDC 2014 SP](https://reader034.vdocuments.com.br/reader034/viewer/2022050720/54b373154a7959a1298b45be/html5/thumbnails/16.jpg)
3) Navegação FXMLInterfaces podem ser criadas usando XML com o FXML. FXMLs devem ser carregados como componentes JavaFX para serem usados…
Criar uma classe de navegação com metódos utilitários de navegação e acesso centralizado é recomendável!Mais:https://blogs.oracle.com/acaicedo/entry/managing_multiple_screens_in_javafx1
![Page 17: Boas práticas na criação de aplicações sérias com JavaFX - TDC 2014 SP](https://reader034.vdocuments.com.br/reader034/viewer/2022050720/54b373154a7959a1298b45be/html5/thumbnails/17.jpg)
4) Não trave a thread do javafxJavaFX tem uma thread específica. 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 concorrência 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
![Page 18: Boas práticas na criação de aplicações sérias com JavaFX - TDC 2014 SP](https://reader034.vdocuments.com.br/reader034/viewer/2022050720/54b373154a7959a1298b45be/html5/thumbnails/18.jpg)
Exemplo com o leitor de RFID
![Page 19: Boas práticas na criação de aplicações sérias com JavaFX - TDC 2014 SP](https://reader034.vdocuments.com.br/reader034/viewer/2022050720/54b373154a7959a1298b45be/html5/thumbnails/19.jpg)
5) Aprenda a usar CSS● Conheça o Guia do CSS;● Similar a páginas WEB, use classes ● Eviter fazer no código o que você pode fazer no CSS● Busque estudar a aplicação e entender o estilo antes
de começar a sair espalhando CSS
Mais: http://docs.oracle.com/javase/8/javafx/api/javafx/scene/doc-files/cssref.html
![Page 20: Boas práticas na criação de aplicações sérias com JavaFX - TDC 2014 SP](https://reader034.vdocuments.com.br/reader034/viewer/2022050720/54b373154a7959a1298b45be/html5/thumbnails/20.jpg)
6) Organize bem o projeto
● Nomes convenientes a componentes da view(lbl, txt, tbl, etc) controllers({NomeView}Controller),FXML e css;
● Padronize a localização de conteúdos da aplicação
Mais: http://docs.oracle.com/javafx/2/best_practices/jfxpub-best_practices.htm
![Page 21: Boas práticas na criação de aplicações sérias com JavaFX - TDC 2014 SP](https://reader034.vdocuments.com.br/reader034/viewer/2022050720/54b373154a7959a1298b45be/html5/thumbnails/21.jpg)
Exemplo de estrutura de projeto
![Page 22: Boas práticas na criação de aplicações sérias com JavaFX - TDC 2014 SP](https://reader034.vdocuments.com.br/reader034/viewer/2022050720/54b373154a7959a1298b45be/html5/thumbnails/22.jpg)
7) Programe com amor
Fonte: a vida
![Page 23: Boas práticas na criação de aplicações sérias com JavaFX - TDC 2014 SP](https://reader034.vdocuments.com.br/reader034/viewer/2022050720/54b373154a7959a1298b45be/html5/thumbnails/23.jpg)
Obrigado
@william_antoniogithub.com/jesuinoaprendendo-javafx.blogspot.com