SlideShare une entreprise Scribd logo
1  sur  23
Télécharger pour lire hors ligne
Boas práticas na criação de aplicações
SÉRIAS com JavaFX
== 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.”
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
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.
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
JavaFX
http://aprendendo-javafx.blogspot.com.br/
Aplicações Sérias?
● Escaláveis
● Fácil manutenção
● Fácil entendimento
● Organização (time)
● Performance
● Usabilidade
● Resolvem problemas “enterprise"
0) Bons e velhos Padrões de projeto
Boas práticas Java: http://docs.oracle.com/cd/A97688_16/generic.903/bp/java.htm
1) Camadas
http://joel.inpointform.net/software-development/mvvm-vs-mvp-vs-mvc-the-
differences-explained/
Explicação MVP X MVC
Mais: http://joel.inpointform.net/software-development/mvvm-vs-mvp-vs-mvc-the-differences-explained/
Camadas no mundo JavaFX
FXML 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).
Camadas no mundo JavaFX
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.html
http://docs.oracle.com/javafx/2/binding/jfxpub-binding.htm
Usando Binding
Com 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!
Usando listeners
3) Navegação FXML
Interfaces 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
4) Não trave a thread do javafx
JavaFX 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
Exemplo com o leitor de RFID
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
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
Exemplo de estrutura de projeto
7) Programe com amor
Fonte: a vida
Obrigado
@william_antonio
github.com/jesuino
aprendendo-javafx.blogspot.com

Contenu connexe

Tendances

JavaFX: A nova biblioteca gráfica da plataforma Java
JavaFX: A nova biblioteca gráfica da plataforma JavaJavaFX: A nova biblioteca gráfica da plataforma Java
JavaFX: A nova biblioteca gráfica da plataforma JavajesuinoPower
 
Introdução ao java fx e visage
Introdução ao java fx e visageIntrodução ao java fx e visage
Introdução ao java fx e visagejesuinoPower
 
Introdução ao LiveOak
Introdução ao LiveOakIntrodução ao LiveOak
Introdução ao LiveOakjesuinoPower
 
JavaFX - Uma visão Geral
JavaFX - Uma visão GeralJavaFX - Uma visão Geral
JavaFX - Uma visão GeralEder Nogueira
 
Aplicações ricas com JavaFX 2
Aplicações ricas com JavaFX 2Aplicações ricas com JavaFX 2
Aplicações ricas com JavaFX 2Claudiney Marques
 
Conectando jBPM com o mundo - TDC 2014 SP
Conectando jBPM com o mundo - TDC 2014 SPConectando jBPM com o mundo - TDC 2014 SP
Conectando jBPM com o mundo - TDC 2014 SPjesuinoPower
 
Aplicações desktop (GUI) e aplicações ricas para internet (RIA)
Aplicações desktop (GUI) e aplicações ricas para internet (RIA)Aplicações desktop (GUI) e aplicações ricas para internet (RIA)
Aplicações desktop (GUI) e aplicações ricas para internet (RIA)Raphael Marques
 
Rest web services com Java
Rest web services com JavaRest web services com Java
Rest web services com JavajesuinoPower
 
Desafios de um desenvolvedor JSF
Desafios de um desenvolvedor JSFDesafios de um desenvolvedor JSF
Desafios de um desenvolvedor JSFRafael Ponte
 
Palestra Sepai Alfredofurtado Introducao Ao Javafx
Palestra Sepai Alfredofurtado Introducao Ao JavafxPalestra Sepai Alfredofurtado Introducao Ao Javafx
Palestra Sepai Alfredofurtado Introducao Ao Javafxalfredofurtado
 
VRaptor - Um Framework MVC Web para desenvolvimento ágil com JAVA
VRaptor - Um Framework MVC Web para desenvolvimento ágil com JAVAVRaptor - Um Framework MVC Web para desenvolvimento ágil com JAVA
VRaptor - Um Framework MVC Web para desenvolvimento ágil com JAVAYelken Heckman Ferreira Gonzales
 
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...Daniel Makiyama
 

Tendances (20)

JavaFX: A nova biblioteca gráfica da plataforma Java
JavaFX: A nova biblioteca gráfica da plataforma JavaJavaFX: A nova biblioteca gráfica da plataforma Java
JavaFX: A nova biblioteca gráfica da plataforma Java
 
Introdução ao java fx e visage
Introdução ao java fx e visageIntrodução ao java fx e visage
Introdução ao java fx e visage
 
JavaFX 2
JavaFX 2JavaFX 2
JavaFX 2
 
Introdução ao LiveOak
Introdução ao LiveOakIntrodução ao LiveOak
Introdução ao LiveOak
 
JavaFX - Uma visão Geral
JavaFX - Uma visão GeralJavaFX - Uma visão Geral
JavaFX - Uma visão Geral
 
Aplicações ricas com JavaFX 2
Aplicações ricas com JavaFX 2Aplicações ricas com JavaFX 2
Aplicações ricas com JavaFX 2
 
Ria e Java FX
Ria e Java FXRia e Java FX
Ria e Java FX
 
Javafx
JavafxJavafx
Javafx
 
Conectando jBPM com o mundo - TDC 2014 SP
Conectando jBPM com o mundo - TDC 2014 SPConectando jBPM com o mundo - TDC 2014 SP
Conectando jBPM com o mundo - TDC 2014 SP
 
Jclouds jug vale
Jclouds jug valeJclouds jug vale
Jclouds jug vale
 
Aplicações desktop (GUI) e aplicações ricas para internet (RIA)
Aplicações desktop (GUI) e aplicações ricas para internet (RIA)Aplicações desktop (GUI) e aplicações ricas para internet (RIA)
Aplicações desktop (GUI) e aplicações ricas para internet (RIA)
 
Rest web services com Java
Rest web services com JavaRest web services com Java
Rest web services com Java
 
Desafios de um desenvolvedor JSF
Desafios de um desenvolvedor JSFDesafios de um desenvolvedor JSF
Desafios de um desenvolvedor JSF
 
Groovy stack
Groovy stackGroovy stack
Groovy stack
 
Jugvale
JugvaleJugvale
Jugvale
 
JEE nas nuvens: uma introdução ao openshift
JEE nas nuvens:  uma introdução ao openshiftJEE nas nuvens:  uma introdução ao openshift
JEE nas nuvens: uma introdução ao openshift
 
Palestra Sepai Alfredofurtado Introducao Ao Javafx
Palestra Sepai Alfredofurtado Introducao Ao JavafxPalestra Sepai Alfredofurtado Introducao Ao Javafx
Palestra Sepai Alfredofurtado Introducao Ao Javafx
 
Java Web Fácil com VRaptor
Java Web Fácil com VRaptorJava Web Fácil com VRaptor
Java Web Fácil com VRaptor
 
VRaptor - Um Framework MVC Web para desenvolvimento ágil com JAVA
VRaptor - Um Framework MVC Web para desenvolvimento ágil com JAVAVRaptor - Um Framework MVC Web para desenvolvimento ágil com JAVA
VRaptor - Um Framework MVC Web para desenvolvimento ágil com JAVA
 
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
 

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

Modularidade na Web com Java: Desenvolvimento OSGI Web com Eclipse Virgo
Modularidade na Web com Java: Desenvolvimento OSGI Web com Eclipse VirgoModularidade na Web com Java: Desenvolvimento OSGI Web com Eclipse Virgo
Modularidade na Web com Java: Desenvolvimento OSGI Web com Eclipse VirgoRegis Machado
 
Inovando na plataforma Java
Inovando na plataforma JavaInovando na plataforma Java
Inovando na plataforma JavaEteg
 
Apostila de Fundamentos Java
Apostila de Fundamentos JavaApostila de Fundamentos Java
Apostila de Fundamentos JavaMarcio Marinho
 
Apresentação java
Apresentação javaApresentação java
Apresentação javamunosai
 
Guia para o Profissional Java
Guia para o Profissional JavaGuia para o Profissional Java
Guia para o Profissional Javaarmeniocardoso
 
GlassFish, Maven, Cloud e o futuro do Java EE
GlassFish, Maven, Cloud e o futuro do Java EEGlassFish, Maven, Cloud e o futuro do Java EE
GlassFish, Maven, Cloud e o futuro do Java EEBruno Borges
 
Spring roo produtividade no java
Spring roo produtividade no javaSpring roo produtividade no java
Spring roo produtividade no javaPedro Cavalero
 
Anatomia do JSF – JavaServer Faces
Anatomia do JSF – JavaServer FacesAnatomia do JSF – JavaServer Faces
Anatomia do JSF – JavaServer Facescejug
 
JSF2 ScrumToys SestInfo 2010
JSF2 ScrumToys SestInfo 2010JSF2 ScrumToys SestInfo 2010
JSF2 ScrumToys SestInfo 2010Eder Magalhães
 
GlassFish, Maven, Cloud e Java EE
GlassFish, Maven, Cloud e Java EEGlassFish, Maven, Cloud e Java EE
GlassFish, Maven, Cloud e Java EEBruno Borges
 
Algaworks ebook-java-ee-7-com-jsf-primefaces-e-cdi-2a-edicao-20150228
Algaworks ebook-java-ee-7-com-jsf-primefaces-e-cdi-2a-edicao-20150228Algaworks ebook-java-ee-7-com-jsf-primefaces-e-cdi-2a-edicao-20150228
Algaworks ebook-java-ee-7-com-jsf-primefaces-e-cdi-2a-edicao-20150228MoisesInacio
 
O que é framework
O que é frameworkO que é framework
O que é frameworkfcdigital
 
Java OO Middleware - JEE / EJB / RMI
Java OO Middleware - JEE / EJB / RMIJava OO Middleware - JEE / EJB / RMI
Java OO Middleware - JEE / EJB / RMIYitzhak Stone
 
Programação Orientada a Objetos com Java
Programação Orientada a Objetos com JavaProgramação Orientada a Objetos com Java
Programação Orientada a Objetos com JavaÁlvaro Farias Pinheiro
 

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

Modularidade na Web com Java: Desenvolvimento OSGI Web com Eclipse Virgo
Modularidade na Web com Java: Desenvolvimento OSGI Web com Eclipse VirgoModularidade na Web com Java: Desenvolvimento OSGI Web com Eclipse Virgo
Modularidade na Web com Java: Desenvolvimento OSGI Web com Eclipse Virgo
 
Inovando na plataforma Java
Inovando na plataforma JavaInovando na plataforma Java
Inovando na plataforma Java
 
Inovando na Plataforma Java
Inovando na Plataforma JavaInovando na Plataforma Java
Inovando na Plataforma Java
 
Apostila de Fundamentos Java
Apostila de Fundamentos JavaApostila de Fundamentos Java
Apostila de Fundamentos Java
 
Apresentação java
Apresentação javaApresentação java
Apresentação java
 
Aula 1 1
Aula 1 1Aula 1 1
Aula 1 1
 
Guia para o Profissional Java
Guia para o Profissional JavaGuia para o Profissional Java
Guia para o Profissional Java
 
GlassFish, Maven, Cloud e o futuro do Java EE
GlassFish, Maven, Cloud e o futuro do Java EEGlassFish, Maven, Cloud e o futuro do Java EE
GlassFish, Maven, Cloud e o futuro do Java EE
 
Introdução a jsf
Introdução a jsfIntrodução a jsf
Introdução a jsf
 
Spring roo produtividade no java
Spring roo produtividade no javaSpring roo produtividade no java
Spring roo produtividade no java
 
Anatomia do JSF – JavaServer Faces
Anatomia do JSF – JavaServer FacesAnatomia do JSF – JavaServer Faces
Anatomia do JSF – JavaServer Faces
 
JSF2 ScrumToys SestInfo 2010
JSF2 ScrumToys SestInfo 2010JSF2 ScrumToys SestInfo 2010
JSF2 ScrumToys SestInfo 2010
 
GlassFish, Maven, Cloud e Java EE
GlassFish, Maven, Cloud e Java EEGlassFish, Maven, Cloud e Java EE
GlassFish, Maven, Cloud e Java EE
 
Palestra
PalestraPalestra
Palestra
 
Aula 1a.ppt
Aula 1a.pptAula 1a.ppt
Aula 1a.ppt
 
Fundamentos Java - 01
Fundamentos Java - 01Fundamentos Java - 01
Fundamentos Java - 01
 
Algaworks ebook-java-ee-7-com-jsf-primefaces-e-cdi-2a-edicao-20150228
Algaworks ebook-java-ee-7-com-jsf-primefaces-e-cdi-2a-edicao-20150228Algaworks ebook-java-ee-7-com-jsf-primefaces-e-cdi-2a-edicao-20150228
Algaworks ebook-java-ee-7-com-jsf-primefaces-e-cdi-2a-edicao-20150228
 
O que é framework
O que é frameworkO que é framework
O que é framework
 
Java OO Middleware - JEE / EJB / RMI
Java OO Middleware - JEE / EJB / RMIJava OO Middleware - JEE / EJB / RMI
Java OO Middleware - JEE / EJB / RMI
 
Programação Orientada a Objetos com Java
Programação Orientada a Objetos com JavaProgramação Orientada a Objetos com Java
Programação Orientada a Objetos com Java
 

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

  • 1. Boas práticas na criação de aplicações SÉRIAS com JavaFX
  • 2. == 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.”
  • 3. 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
  • 4. 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.
  • 5. 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
  • 7. Aplicações Sérias? ● Escaláveis ● Fácil manutenção ● Fácil entendimento ● Organização (time) ● Performance ● Usabilidade ● Resolvem problemas “enterprise"
  • 8. 0) Bons e velhos Padrões de projeto Boas práticas Java: http://docs.oracle.com/cd/A97688_16/generic.903/bp/java.htm
  • 10. Explicação 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 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).
  • 13. 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.html http://docs.oracle.com/javafx/2/binding/jfxpub-binding.htm
  • 14. Usando Binding Com 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!
  • 16. 3) Navegação FXML Interfaces 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
  • 17. 4) Não trave a thread do javafx JavaFX 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
  • 18. Exemplo com o leitor de RFID
  • 19. 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
  • 20. 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
  • 21. Exemplo de estrutura de projeto
  • 22. 7) Programe com amor Fonte: a vida