O que há de novo para desenvolvedores e administradores de sistema

GNOME 3.20 inclui vários novos recursos e melhorias para aqueles que estão trabalhando com tecnologias do GNOME. Continue lendo para mais detalhes!

Builder

O Builder agora está integrado com o ambiente de desenvolvimento do GNOME. Ele visa fornecer uma experiência simplificada, poderosa e moderna para construção de aplicativos do GNOME, e já apresenta recursos de completação em linha, uma poderosa pesquisa global, um navegador de documentação, um navegador de árvore de símbolos e muito mais.

O lançamento do Builder 3.20 contém alguns novos recursos significantes, assim como muito polimento e refinamento. As opções para construção de aplicativos foram significativamente estendidas: agora é possível usar o Builder para criar pacotes xdg-app, e também é possível construir de dentro de um ambiente do JHBuild. Todas essas opções de construções (e muito mais) podem ser encontradas na nova visão de configuração de construção (veja a publicação no blog do Christian Hergert para mais detalhes).

Um novo framework de plug-in multiprocesso é um outro novo e importante recurso para 3.20. Ele permite aos plug-ins que adicionem uma imensa quantidade de funcionalidades ao Builder, incluindo provedores adicionais de completação automática, ferramentas, serviços, sistemas de compilação, recuo automático, mineradores de projeto, provedores de pesquisa, resolvedores de símbolo, sistemas de controle de versão e muito mais. A publicação What can you extend in Builder (O que você pode estender no Builder, em inglês) fornece uma lista completa do que você pode estender usando o novo sistema de plug-ins. Há também um tutorial que descreve como escrever seus próprios plug-ins, dividido em (parte um e parte dois).

Outras melhorias ao Builder no 3.20 incluem:

  • As preferências do aplicativo foram revistas para ajudar você a localizar os ajustes que você precisa mais rápido e com menos distração.

  • Um novo plug-in de tarefas mostra uma lista de todos TODO, FIXME e XXX em seu projeto, e permite que você navegue para suas localizações.

  • Emulação do VIM continuou a melhorar, permitindo usuários que prefiram edição modal para se sentir em casa.

  • Builder agora detecta e realça erros comuns de gettext.

  • ide, um novo programa de linha de comando, permite que você criar rapidamente novos projetos seguindo as boas práticas da comunidade do GNOME.

  • Para linguagens que oferecem suporte a análise semântica, segurar o Ctrl enquanto clica nas variáveis, tipos e funções vai pular para sua localização de origem.

  • Suporte inicial à linguagem Vala.

  • Completação automática agora é mais rápida e possui correspondência aproximada.

  • Agora é possível usar o Builder com ccache.

xdg-app

xdg-app é o novo framework multidistribuição para compilação e distribuição de aplicativos de desktop no GNU/Linux, ao qual planeja-se haver suporte de primeira classe no GNOME. O xdg-app não apenas torna possível criar aplicativos que podem ser usados em diferentes distribuições, mas também planeja-se que ele venha a oferecer um modelo de segurança compreensível, limitando o quanto da máquina está exposto aos aplicativos.

3.20 é um momento significante para o xdg-app, com uma quantidade de recursos essenciais sendo oferecidos em um estado maduro pela primeira vez. A versão 3.20 inclui xdg-app-builder, uma nova ferramenta que facilita a compilação de aplicativos. Alexander Larsson, o principal desenvolvedor do xdg-app, escreveu um tutorial em cinco partes sobre como usá-lo para compilar aplicativos de xdg (parte um, parte dois, parte três, parte quatro, parte cinco).

Se você deseja tentar instalar e executar xdg-apps, uma coleção de aplicativos GNOME compilados diariamente à noite está disponível. Além de serem uma grande forma de tentar o xdg-app, essa também é uma grande forma de testar as versões de desenvolvimento dos aplicativos do GNOME, e demonstra a habilidade do xdg-app de instalar múltiplas versões diferentes do mesmo aplicativo ao mesmo tempo. Para mais informação, um tutorial está disponível.

Outras mudanças significativas no lançamento 3.20 incluem:

  • Agora é possível criar e distribuir pacotes de aplicativo em um único arquivo. Isso é particularmente útil para distribuir aplicativos usando mídia física.

  • xdg-app agora possui armazenamento de permissões genéricas que pode ser usado para registrar informação sobre quais aplicativos são permitidos para fazer o quê. Esse é um dos primeiros passos em direção a restrição de permissões (sandboxing) de aplicativos.

  • Informações detalhada sobre o aplicativo, tais como descrição e capturas de tela, podem agora ser incluídos nos pacotes de xdg-app, usando padrão AppData multiplataforma. Isso pode ser usado pelas lojas de aplicativos, como o Softwares do GNOME, para fornecer uma experiência de instalação gráfica rica.

  • Os runtimes do GNOME, que fornecem uma plataforma comum na qual aplicativos pode depender, foram atualizados e melhorados, e agora está mais fácil de contribuir para eles. Eles agora incluem um runtime instável, o qual pode ser usado para instalar aplicativos compilados à noite ou para desenvolvimento de aplicativo. Para mais detalhes sobre os runtimes que estão disponíveis, veja a página wiki dos runtimes.

GTK+

3.20 é um grande lançamento para o GTK+. A implementação de temas CSS teve uma grande revisão, resultando em melhorias significativas, com escrita de temas mais fácil, um estilo visual mais exato e interfaces mais dinâmicas. Os temas do GTK+ agora seguem o modelo de caixa CSS padrão, e as margens e a altura/largura mínima podem ser especificados nos temas. Isso não apenas aumenta a familiaridade para aqueles que já sabem CSS, mas também é muito mais predizível, e fornece aos autores de temas um controle muito maior sobre layout e espaçamento.

Outros recursos de temas em CSS no 3.20:

  • Temas em CSS agora está completamente documentado, e a documentação de widgets agora descreve nomes de elementos e classes de estilo CSS, junto com sua estrutura.

  • A introdução aos seletores em CSS permite um uso muito maior de especificidade nos temas e fornece maior flexibilidade e poder para os autores de temas.

  • A maioria dos widgets agora podem ser animados usando CSS, permitindo controles mais envolventes e dinâmicos.

  • Suporte a recursos CSS adicionais agora foi implementado, incluindo radial-gradient(), rem e calc().

Como um resultado dessas mudanças, temas GTK+ existentes precisarão ser atualizadas, e muitas propriedades de estilo se tornaram obsoletas em favor de equivalentes em CSS. Porém, a API de CSS 3.20 continuará seguindo em frente (e vai continuar a seguir a documentação incluída com esta versão).

Temas em CSS não é a única área a ter aprimoramentos no GTK+ 3.20:

  • GtkShortcutsWindow é um novo widget para apresentar uma visão geral de atalhos de teclado e gestos multitoque em seu aplicativo. Grupos e páginas permitem que atalhos sejam organizados, estando incluído um recurso de pesquisa.

  • gtk-query-settings é um novo utilitário de linha de comando para consultar configurações do GTK+ que estão visíveis para seu aplicativo.

  • gtk-builder-tool possui um novo comando para a pré-visualização de arquivos .ui.

  • 3.20 vê o primeiro lançamento de gspell, uma nova biblioteca de verificação ortográfica para aplicativos em GTK+. É a melhor biblioteca do seu tipo para GTK+, e torna mais fácil adicionar verificação ortográfica ao GtkTextView. gspell já está sendo usado no gedit 3.20.

  • gtk3-demo agora possui uma demonstração de desenho externo que mostra como estilizar widgets não GTK+ com um tema visual GTK+.

  • O comportamento do dimensionamento do GtkWindow melhorou para funcionar com decorações do lado do cliente. Isso significa que gtk_window_set_default_size() agora deve ser combinado com gtk_window_get_size(): veja tutorial de salvamento de estado de janela para informação quanto às boas práticas para salvar o tamanho da janela.

Inspetor GTK+

O inspetor em tempo real do GTK+ possui um número de atualizações para 3.20:

  • A interface de usuário foi polida: a barra lateral foi substituída por um menu suspenso de forma a devotar mais espaço para exibir o conteúdo, e listas e árvores foram limpadas.

  • Informação do dispositivo agora é mostrado na aba geral.

  • Na linha com novos recursos CSS do GTK+, nós CSS e informação de estilo associado agora são exibidos.

  • Agora é possível realçar widgets que estão causando redimensionamentos.

WebKitGTK+

Mudanças notáveis na versão 3.20 do WebKitGTK+ incluem:

  • Sessões podem ser restauradas exatamente como elas eram, usando novas APIs de serialização/restauração.

  • Barras de rolagem podem ser apresentadas como uma sobreposição semitransparente, como os padrões no GTK+.

  • Agora há suporte a onbeforeunload, permitindo aos sites mostrar mensagens ao sair de uma página.

  • Novas APIs permitem mensagens de console serem acessadas.

  • Progresso significante também foi feito em direção a isolar processos web da rede, o que vai ajudar a fazer o WebKitGTK+ mais seguro no futuro.

PyGObject

Melhorias ao PyGObject no 3.20 incluem suporte estendido a GError e melhorias de desempenho para chamadas e encerramentos de funções. A referência de API do PyGObject também foi melhorada no 3.20:

  • Links para o código fonte C no git.gnome.org foram adicionados.

  • Muitas das melhorias foram feitas para a documentação de sobrescrita (includindo Gtk.ListStore e Gtk.TreeModelRow).

  • Pesquisa foi melhorada e novas configurações de pesquisa foram adicionada.

Outras melhorias

Outras melhorias para desenvolvedores no GNOME 3.20 incluem:

  • No GLib, foi adicionado suporte a DTLS (Datagrama TLS) para a permitir mídia de fluxo criptografado.

  • Também no GLib, novos auxiliares para operações sobre inteiros de verificação por estouro facilitam a escrita de código mais seguro.

  • JSON-GLib, Gom e GtkBuilder agora podem ser usados a partir do Gjs.

  • Tracker melhorou muito o suporte a SPARQL 1.1 (veja as especificações de linguagem de consulta e linguagem de atualização). Agora há suporte a sintaxe DELETE {...}, INSERT {...} e WHERE {...}; BIND pode ser usado; e muitas funções embarcadas do SPARQL 1.1 foram adicionados.

  • gitg, o cliente Git gráfico do GNOME, recebeu uma lista de repositórios reestilizada. Pré-visualização de commits e de diferenças (diffs) foram melhorados, com novo estilo e integração de temas do sistema (então, eles estão estilizados apropriado com o tema de sistema escuro, por exemplo).