plataforma de desenvolvimento preferida para cross-platform GUI desktop? [fechadas]
-
03-07-2019 - |
Pergunta
As respostas a esta questão relacionada meu me levam a escolher Java para a maioria dos meus serviços de back-end (que é um sistema multi-componente). Agora, eu não tenho certeza se isso seria uma boa escolha para plataforma cruzada aplicações GUI desktop, também. Os aplicativos de desktop Java Lembro-me usando ter que olhar não-nativa que eu não gosto, mas eu não tenho certeza se isso depende da escolha de GUI Toolkit em vez da linguagem.
A maioria dos meus GUIs será baseado na web, e os de desktop terá um público relativamente pequeno (administradores, desenvolvedores e testadores), então eu só posso pôr de lado uma pequena fração do meu orçamento tempo para fazer aqueles. Ainda assim, eu quero olhar nativo e evitar um monte de dependências.
É provavelmente mais adequado para começar com o GUI Toolkit I deseja usar e, em seguida, escolher uma linguagem que a suporta. Os multi-plataforma que eu conheço são:
- GTK
- qt
- AIR (quando ela chega em Linux)
Assim, por exemplo, eu poderia usar GTK # com .Net / Mono. Que tipo de problemas de dependência é que eu vou rosto? Você recomendaria que separa a GUI real do resto do GTK aplicação e uso no Linux, e algo nativo no Windows, como o Windows Forms, evitando assim ter que instalar o GTK no Windows?
Solução
Bruce Eckel é um grande patrocinador do Flex como interface de utilizador multi-plataforma, tanto para Java e serviços de python. Ele escreveu sobre isso bastante, em Artima:
Outras dicas
SWT é sua resposta. Eu trabalhei em um projeto que usou SWT e olha grande em qualquer coisa que você jogue com ele. Se você trabalha com Java, então você provavelmente já usou o melhor exemplo de SWT lá fora: Eclipse. Ele funciona com GTK, WinForms, Cacau, Qt mesmo Tk. Oh! E é muito fácil uma vez que você começa todos os fundamentos acontecendo. Além disso, a maioria dos componentes estão prontos. Outra coisa, GTK e C # que não são independentes de plataforma como você poderia sonhar.