Criação de programas em GTK

Fala pessoal, estava pensando em aprender a criar apps em GTK no estilo do gnome e queria saber por onde começar. Quais linguagens e IDEs vcs recomendam? Conheço um pouco de Kotlin e Java pra android (acho q nenhumas das duas e suportada pelo gtk mas eu posso tentar com outras). Por enquanto n tenho nenhum projeto me mente mas gostaria de tentar criar algo multiplataforma(Linux,Windows e Mac)

1 Curtida

Para GTK, vc tem por ex, o Glade, mas dependendo da linguagem, tem-se uma IDE em específico.

Por ex: Pascal: Lazarus, Visual Basic: Gambas 3.

Usa a linguagem Python… da pra usar só com o editor de texto – tipo sublime ou notepad++ ou outro de sua preferência – IDE acho que da pra usar o pycharm… ou tu instalar o Jupyter notebook.

Principal é definir a linguagem e conhecê-la bem, depois pensar na IDE.

Mas pergunto: com tudo indo pra nuvem, por qual motivo vc quer criar algo para desktop?

Não vejo ela sendo mencionada com freqüência, mas tem também a linguagem de programação oficial do GNOME, o Vala, que tem uns conceitos parecidos com Java e C#. Acaba sendo limitada porque não tem um ambientão de bibliotecas e extensões, mas dá pra aprender um bocado das entranhas do GTK, e isso você vai lidar com qualquer linguagem de programação.

GNOME Builder

C ou Vala

Larga mão de GTK e usa Qt

1 Curtida

Para aplicativos multiplataforma para desktop, você poderia usar Java + JavaFX (GUI) com o OpenJDK da sua distribuição Linux ou da AdoptOpenJDK, ou da Red Hat. Você também pode usar o Python + Kivy (GUI). Essa são as soluções que eu conheço para desenvolvimento de apps multiplataforma que são comercialmente amigáveis e tranquilas no que se refere a licenciamento.

Multiplataforma com GTK é algo que escuto ser complicado, se não inviável, mas não conheço as entranhas de uma possível implementação para opinar. QT seria uma solução melhor para o seu caso. Você estaria “preso” a desenvolver aplicações livres (não vejo como algo ruim), já que para desenvolver um app proprietário com QT precisa pagar pela licença comercial de preço absurdo do mesmo.

Sobre QT: Criação de programas em GTK

Na verdade não, isso só é necessário se você usar linkagem estática (arquivos .a do Qt), ou seja o usuário não vai poder usar outras libs Qt pra rodar o programa, porém se você usar linkagem dinâmica (.dll, .so) você pode deixar ele fechado e vender ele, se você usar linkagem dinâmica mesmo que você empacote de forma fechada como se fosse linkagem estática como AppImage e Snap você ainda pode fechar o código e cobrar por ele. Na verdade, com o GTK também é assim, pela licença você não pode fazer uma linkagem estática sem abrir o código sob GPL… a diferença é que o GTK não tem uma licença alternativa que permita a linkagem estática sem abrir o código

2 Curtidas

Explicando a lógica:

Linkagem estática: Você incorpora o Qt ao aplicativo, ou seja um outro app Qt de terceiros feito pra mesma versão do Qt não pode usar as libs do seu aplicativo porque elas não existem e seu app não pode ser iniciado por libs dinâmicas do Qt porque seu app já as contém

Linkagem dinâmica: você carrega as bibliotcas (.dll, .so. dylib) de arquivos externos

1 Curtida

Entendi. Então com a linkagem dinâmica eu posso fazer o bundle com as bibliotecas necessárias e entregar para o usuário independentemente da licença do app?

1 Curtida

Exatamente, é a mesma lógica usada pra distribuir apps proprietário em GTK embora seja raro

1 Curtida