No artigo anterior dei uma breve introdução sobre como programar com JavaFX, conceitos simples que permite começar a desenvolver aplicações gráficas. Neste artigo vou explorar outros temas interessantes do ponto de vista de desenvolvimento e de manutenção de projetos de software com interfaces gráficas de desktop.
Ao longo da minha carreira já desenvolvi e participei em projetos de software de raiz, mas grande parte dela foi a manter e a melhorar aplicações legacy, e deixem-me que diga que existem programadores muito imaginativos. Um dos temas que mais urticária me causa é o facto de o software desenvolvido não poder ser mantido com facilidade, e ao ripple effects das alterações simples que são realizadas.
Como mencionei no artigo anterior, devido à necessidade de alterar uma aplicação em Java Swing, essa mesma alteração não se mostrou nada fácil de realizar, levando-me a procurar alternativas e migrar para JavaFX. No artigo anterior abri a porta à tecnologia e o que foi apresentado não difere muito do Java Swing, pelo que pode ser confuso a razão para a alteração.
Quando andei a investigar, o que estava à procura era um modelo de desenvolvimento que me permitisse definir a interface gráfica em separado da lógica da aplicação, ou seja, um modelo Model-View-Controller à semelhança do que existe para aplicações web, ou mesmo para a plataforma Android. E JavaFX tem mesmo o que estava à procura e é sobre isso que venho falar.
[...]