StatusQ: uma biblioteca de componentes de Interface do Usuário para aplicativos Web3

StatusQ: uma biblioteca de componentes de Interface do Usuário para aplicativos Web3

StatusQ é uma biblioteca de componentes QML UI emergente e reutilizável para aplicativos Status, licenciada sob a MPL2.0. Então, o que isso significa?

Vamos começar de trás para frente. A Licença Pública Mozilla 2.0 significa – basicamente (e isso não é um conselho legal) que o StatusQ pode ser reutilizado e modificado, com algumas exceções específicas em relação à comercialização do código fonte. O StatusQ é usado principalmente no Status Desktop, mas também pode ser usado em outros projetos.

Aqui está uma captura de tela da sandbox do StatusQ, mostrando uma biblioteca de componentes (lado esquerdo) e variantes desses componentes (lado direito).

Para entender o StatusQ, podemos consultar a documentação ou o roadmap (as metas de desenvolvimento), mas para uma visão geral devemos primeiro ter alguma familiaridade com a Qt Meta-Object Language, ou QML [1]. QML é uma linguagem de programação usada para especificar interfaces de usuário no framework Qt, um dos kits de ferramentas de desenvolvimento de interface do usuário mais populares. O QML é usado no Ubuntu Phone/Ubuntu Touch, no KDE Plasma 4 e 5, no webOS da LG e em muitos outros aplicativos voltados para o usuário.

Para construir uma UI com QML, os componentes são definidos e posteriormente reutilizados (idealmente). Por exemplo, em aplicações da Status podemos querer exibir vários arquivos SVG de ícone com as mesmas propriedades gerais ou incluir vários botões que tenham as mesmas interações com a atividade do mouse de um usuário. (Para saber mais sobre QML, confira seus documentos!)

Graças às definições QML dos componentes StatusIcon e StatusBaseButton, só temos que definir essas propriedades/comportamentos uma vez, apesar de podermos usá-los em vários lugares.

Se você está familiarizado com o padrão de design de composição ou programação geral, provavelmente conhece o ditado "não repita a si mesmo" ou DRY (Don't Repeat Yourself). Este princípio também se aplica ao design! E graças ao StatusQ, não temos que lidar com várias definições para componentes reutilizáveis.

Por quê StatusQ?

Durante os estágios iniciais da interface do usuário do Status Desktop, nossos desenvolvedores estavam aprendendo sobre QML e Qt. Isso levou a alguns códigos e componentes legados que não estavam necessariamente usando as melhores práticas e nem sempre foram construídos de uma maneira particularmente reutilizável. Também estávamos descobrindo um sistema de design adequado. Em suma, a base de código poderia estar em melhor forma – e agora está!

A biblioteca StatusQ foi criada em abril de 2021 para incorporar melhores práticas de design e programação, e a decisão de que a StatusQ seria uma biblioteca separada foi tomada por alguns motivos.

Separá-la do Status Desktop - onde foi originalmente usada - significava que a StatusQ poderia iterar em seu próprio cronograma, sem impedimentos pelo ciclo de lançamento e processo de desenvolvimento do projeto maior que é o Status Desktop. Isso também permite que a equipe do Status Desktop se concentre apenas no aplicativo de desktop, sem ter que se preocupar se os componentes existem ou funcionam conforme o esperado.

E, claro, Status Desktop é apenas um dos muitos projetos que podem querer usar componentes pré-construídos. Status suporta software de código aberto.

O que torna a StatusQ especial?

A StatusQ inclui uma aplicação sandbox que serve como documentação, playground e suíte de testes para os componentes da StatusQ. Ela também inclui uma interface do usuário de demonstração que é essencialmente uma versão mais estática do front-end do Status Desktop. Isso permite que os desenvolvedores experimentem componentes em uma configuração pseudo-real e vejam como os componentes são combinados para criar a interface de usuário do Status Desktop. Nesse caso, é mais fácil mostrar do que dizer, então aqui está um exemplo do aplicativo:

Aqui está uma captura de tela da sandbox da StatusQ, mostrando uma cópia exata de uma visualização do Status Desktop no modo light, com aparência e comportamento do OSX.

A StatusQ ainda está sendo desenvolvida ativamente e temos planos para torná-la ainda melhor. Por exemplo, o sandbox eventualmente suportará testes automatizados de ponta a ponta e poderá até ser hospedado de maneira online para facilitar o seu uso.

Modo Dark!

Notas de rodapé

[1] Esta pode não ser a abreviação com a qual você está familiarizado, pois a Wikipedia se refere a “Qt Modeling Language” e o qml.guide a chama de “Qt Markup Language”, e Qt Meta-Object Language vem de wiki.qt.io.