A empresa Purism, que desenvolve o smartphone Librem 5 e a distribuição livre PureOS, lançou a biblioteca , no qual um conjunto de widgets e objetos é desenvolvido para criar interfaces de usuário em dispositivos móveis usando GTK e tecnologias GNOME. A biblioteca está em desenvolvimento como parte do processo de portação de aplicativos GNOME para o ambiente de usuário do smartphone Librem 5.
O código do projeto é licenciado sob a GPL 2.1+. Além de suportar aplicativos em C, a biblioteca pode ser usada para criar versões móveis das interfaces de aplicativos em Python, Rust e Vala.
Atualmente, a biblioteca 24 widgets, abrangendo vários elementos típicos de interface, como listas, painéis, blocos de edição, botões, guias, formulários de busca, diálogos, etc. Os widgets propostos permitem a criação de interfaces universais que funcionam de maneira fluida tanto em grandes telas de PCs e laptops quanto em pequenas telas sensíveis ao toque de smartphones. A interface dos aplicativos muda dinamicamente dependendo do tamanho da tela e dos dispositivos de entrada disponíveis.
O principal objetivo do projeto é permitir o uso dos mesmos aplicativos GNOME em smartphones e PCs. O software do smartphone Librem 5 é baseado na distribuição PureOS, que utiliza a base de pacotes Debian, o ambiente de desktop GNOME e uma interface adaptada para smartphones do GNOME Shell. A aplicação do libhandy permite que, ao conectar o smartphone a um monitor, se obtenha uma área de trabalho GNOME típica com um conjunto unificado de aplicativos. Entre os aplicativos portados para libhandy estão: GNOME Calls (Discador), gnome-bluetooth, GNOME Settings, GNOME Web, Phosh (Discador), Daty, PasswordSafe, Unifydmin, Fractal, Podcasts, GNOME Contacts e GNOME Games.
Libhandy 0.0.10 é a última versão preliminar antes da formação de um lançamento significativo 1.0. A nova versão apresenta vários widgets novos:
- — uma substituição adaptativa para o widget GtkStackSwitcher, que permite formar automaticamente a disposição das guias (visões) dependendo da largura da tela. Em telas grandes, ícones e títulos são dispostos em uma única linha, enquanto em telas pequenas é utilizada uma configuração compacta, na qual o título é exibido abaixo do ícone. Para dispositivos móveis, o bloco de botões é movido para a parte inferior.

- — contêiner para exibir a barra superior considerando o tamanho disponível, eliminando detalhes quando necessário (para telas largas, a barra de cabeçalho completa para alternar abas é exibida, mas se o espaço for insuficiente, um widget imitando o cabeçalho é mostrado e o alternador de abas é movido para a parte inferior da tela);
- — implementação de uma barra superior avançada, semelhante ao GtkHeaderBar, mas projetada para uso em uma interface adaptativa, sempre centralizada e preenchendo completamente a área do cabeçalho em altura;
- — versão adaptativa da janela de configuração de parâmetros, com as configurações organizadas em abas e grupos;
Entre as melhorias relacionadas à adaptação de aplicativos GNOME para uso em smartphones, destaca-se:
- Na interface para receber e realizar chamadas (Calls), foi utilizado o módulo loopback do PulseAudio para conectar o modem e o codec de áudio do dispositivo no ALSA, ativando a chamada e descarregando o módulo após o término da chamada;
- No aplicativo de mensagens (Messaging), foi implementada uma interface para visualizar o histórico de comunicação no chat. O armazenamento do histórico utiliza o banco de dados SQLite. Adicionada a possibilidade de verificação da conta, que agora é feita através de conexão com o servidor, com um aviso exibido em caso de falha;
- No cliente XMPP, foi implementado suporte para troca de mensagens criptografadas através da utilização do plugin com a implementação do mecanismo de criptografia de ponta a ponta . Um indicador especial foi adicionado à barra, sinalizando se a criptografia está sendo aplicada no chat atual ou não. Também foi adicionada a possibilidade de visualizar hashes de identificação, tanto do próprio participante quanto de outro membro do chat;
- No GNOME Web, foram utilizados novos widgets Libhandy 0.0.10, que permitiram adaptar a interface de configuração e a barra do navegador para telas móveis.
Fonte: opennet.ru

