- Swift é adequado para criar interfaces de usuário graças à sua sintaxe limpa, tipagem estática e recursos especiais que facilitam a escrita de código
- Adwaita for Swift aproveita esses recursos do Swift para oferecer uma interface intuitiva para o desenvolvimento de aplicativos para a plataforma GNOME
- GNOME é um ambiente de desktop open source popular no Linux, com foco em simplicidade e acessibilidade
Exemplo de código
- No exemplo de código com Adwaita for Swift, é definida uma view chamada
Counter para exibir a parte da interface de usuário dentro da janela
- As views podem ser aninhadas dentro de outras views ou adicionadas como filhas de uma janela, e seu conteúdo pode ser modificado externamente dependendo da posição na hierarquia de views
- Isso facilita combinar views para gerar diferentes resultados
Motivação
- Tornar possível escrever apps para o GNOME usando Swift
- As bindings existentes de libadwaita e GTK seguem um estilo de codificação imperativo, construindo a interface de usuário com uma sequência de comandos
- Adwaita for Swift é construído com foco em dados, então, por exemplo, ao pressionar um botão e alterar a variável
count, a interface de usuário é atualizada automaticamente
Facilidade de uso
- Nas bindings tradicionais, é preciso chamar funções em objetos para que os widgets atualizem seu conteúdo sempre que um valor muda
- No Adwaita for Swift, basta adicionar um identificador único às variáveis que precisam ser armazenadas, e o restante é tratado automaticamente
Legibilidade
- A abordagem centrada em dados tem um impacto positivo na legibilidade
- Graças à definição declarativa da própria interface de usuário, é possível focar mais na aparência e no comportamento do app do que em como obter o resultado
Desenvolvimento de apps multiplataforma
- Adwaita for Swift permite escrever apps que rodam em Linux, macOS e Windows com uma única base de código
- É possível compartilhar o código Swift de backend entre apps em SwiftUI e apps para GNOME
- É possível criar novos apps para GNOME usando Swift e alcançar excelente legibilidade de código e segurança de memória
Lançamento de apps
- Adwaita for Swift funciona bem com o Flathub, simplificando a instalação e o lançamento de apps para desktop Linux
- Há uma extensão do Freedesktop SDK para Swift 5 e uma ferramenta que converte dependências do Swift Package Manager em fontes Flatpak
Opinião do GN⁺
- A combinação de Swift e GNOME oferece aos desenvolvedores a oportunidade de criar apps em uma nova plataforma, especialmente ao unir os recursos poderosos da linguagem Swift com o ambiente amigável do GNOME, possibilitando uma experiência de desenvolvimento eficiente.
- Este artigo apresenta uma nova abordagem para o ambiente de desktop Linux e destaca a conveniência e a legibilidade do desenvolvimento em estilo declarativo em comparação com métodos tradicionais.
- O texto enfatiza as vantagens do desenvolvimento multiplataforma e ressalta a importância de oferecer a mesma experiência de usuário em diferentes sistemas operacionais
- Como base técnica, a tipagem estática e a segurança de memória do Swift podem contribuir para melhorar o desempenho e a estabilidade dos apps
- Sob uma perspectiva crítica, é preciso considerar a possibilidade de problemas de compatibilidade ou desempenho em ambientes de desktop diferentes do GNOME
3 comentários
https://stuff.mit.edu/afs/athena/…
A pronúncia oficial de Gnome não é "noum", e sim "guinôm".
Excelente.
Comentários do Hacker News
Discussão sobre wrappers semelhantes ao SwiftUI
Menção a outros projetos e ferramentas
Compartilhamento de experiência com projetos pessoais
Comparação com experiências passadas
Problema de execução no Mac
adwaita.h.Opinião sobre um “framework dos sonhos” pessoal
Pergunta sobre suporte a 3D no gtk4
Opinião sobre o uso de chaves em parâmetros de função
Discussão sobre testes em codebases Swift
Descoberta de que Swift está se tornando uma opção interessante para desenvolvimento desktop