Existem muitos softwares empresariais antigos no mundo — sistemas que são tão antigos como os programadores que os mantêm atualmente. Os sistemas legados são um presente que continuam proporcionando: programadores que se reformam, hardware que falha, incompatibilidade com os requisitos modernos e muitas outras surpresas te esperam todos os dias.

Muitos sistemas antigos já existiam antes da era da Internet. Nessa altura, as aplicações desktop dominavam e as aplicações Web estavam deixando o oceano. Atualmente, as aplicações desktop daquela época são um risco.

Neste artigo, falamos sobre a modernização das aplicações desktop. Em particular, sobre como torná-las híbridas — uma mistura de desktop e web.

Desafios da modernização 

É difícil modernizar o sistema que alguém escreveu há décadas. Vamos enumerar as coisas com que você pode ter de lidar:

  • um mainframe — um computador que pesa uma tonelada métrica;
  • uma linguagem de programação antiga — provavelmente COBOL;
  • uma arquitetura monolítica — porque os microsserviços ainda não haviam sido inventados;
  • uma experiência de usuário obsoleta — a razão implícita do esgotamento profissional.

Somos especialistas em lidar com o aspecto da experiência do usuário na modernização. A nossa abordagem consiste em integrar tecnologias Web em antigas aplicações desktop, também conhecido por torná-las híbridas.

Aplicações híbridas 

Criamos uma aplicação híbrida substituindo elementos de interface antigos por novos, que criamos com HTML, CSS e JavaScript. Não é necessário substituir tudo de uma só vez; em vez disso, podemos transformar gradualmente a experiência do usuário ao longo de muito tempo.

Você possui um formulário concebido na era do Windows 95? Sem problema. Substitua-o pelo novo formulário, que pode ser implementado com a biblioteca JavaScript mais popular do mês.

A interface Swing está sendo misturada com a interface Web

Uma aplicação Swing em diferentes fases de modernização.

Para que isto funcione, você precisa de uma tecnologia que se enquadre numa interface desktop Java, exibir a interface Web e passar dados entre os dois mundos. Essa tecnologia existe. Chama-se um “navegador incorporado” e existem opções para escolher:

  • Um navegador incorporado.

    Os Toolkits como o JavaFX e o SWT vêm com um componente de browser incorporado. Eles são suficientes para os casos de utilização simples.

    Para obter mais informações, leia a análise detalhada do WebView do JavaFX.

  • Chromium Embedded Framework.

    É uma solução de código aberto madura, mas pode exigir algum Faça Você Mesmo.

    Para mais informações, leia sobre quando escolher JCEF.

  • JxBrowser.

    É um navegador incorporado de qualidade superior baseado no Chromium. É uma solução bem conhecida com muitas funcionalidades, assistência técnica e é fácil começar a trabalhar.

Aplicações híbridas com o JxBrowser 

O JxBrowser é um navegador incorporado baseado no Chromium e funciona com o Swing, JavaFX e SWT de imediato. Vamos explorar as noções básicas de utilização do JxBrowser para criar uma aplicação híbrida.

Adicionar o JxBrowser ao projeto 

É fácil adicionar o JxBrowser ao projeto:

plugins {
    ...
    id("com.teamdev.jxbrowser") version "1.2.1"
}

jxbrowser {
    version = "8.2.1"
}

dependencies {
    implementation(jxbrowser.swing) // Ou jxbrowser.swt, jxbrowser.javafx.
    implementation(jxbrowser.currentPlatform)
}

Se você não utiliza o Gradle, consulte o guia de início rápido para Maven.

Adicionar o JxBrowser à IU 

Você adiciona o JxBrowser à sua aplicação tal como qualquer outro componente IU. O trecho a seguir mostra o código mínimo necessário para o Swing. É igualmente simples para JavaFX e SWT.

Engine engine = Engine.newInstance(HARDWARE_ACCELERATED);
Browser browser = engine.newBrowser();
browser.navigation().loadUrl("https://localhost/table.html");

BrowserView view = BrowserView.newInstance(browser);
JFrame frame = new JFrame("My hybrid app");
frame.add(view);

Você pode ler mais sobre este assunto no guia de incorporação para JxBrowser.

Comunicação entre Java e JavaScript 

A sua aplicação fala Java, mas a parte Web fala JavaScript. Para trabalharem em conjunto, elas precisam falar uma com a outra. Com o JxBrowser é fácil:

@JsAccessible
class TableController {
    public void filterBy(String column, String order) {
        ...
    }
}
...
browser.mainFrame().ifPresent(frame -> {
JsObject window = frame.executeJavaScript("window");
    window.putProperty("tableController", new TableController());
});

Em JavaScript, basta chamar este objeto:

tableController.filterBy("price", "desc");

Você pode ler mais no guia sobre como chamar Java a partir de JavaScript e vice-versa.

Saiba mais 

Para saber mais sobre o que o JxBrowser pode fazer, visite o nosso extenso conjunto de guias ou nos faça uma pergunta diretamente.

Spinner

Enviando…

Desculpe, o envio foi interrompido

Tente novamente. Se o problema persistir, contate-nos através do endereço info@teamdev.com.

Leia e aceite os termos para continuar.

A sua chave de avaliação pessoal de JxBrowser e o guia de início rápido chegarão à sua caixa de entrada de e-mail dentro de alguns minutos.

Conclusão 

Neste artigo, focamos na modernização da experiência do usuário. Nós exploramos a abordagem padrão para o problema — uma aplicação híbrida. Nesta abordagem, os elementos da interface original coexistem com novos elementos da interface criados com tecnologias Web.

Falamos de navegadores incorporados que tornam possíveis as aplicações híbridas em Java.

Analisamos as opções disponíveis e destacamos a simplicidade da utilização do JxBrowser.