KDE: libertando a web do navegador

The Open Web: KDE frees the web from the browser
Autor original: Koen Vervloesem
Publicado originalmente no:
lwn.net
Tradução: Roberto Bechtlufft

logo

Nos últimos tempos, o projeto KDE vem inovando na integração da web ao desktop. No meio de setembro, Sebastian Kügler anunciou o Projeto Silk. Enquanto isso, Frank Karlitschek já vinha trabalhando há algum tempo no Social Desktop.

No dia 29 de outubro, o NLUUG realizará sua conferência de primavera com o tema “A Web Aberta“, onde esses dois desenvolvedores do KDE irão palestrar. Sebastian vai falar sobre como libertar a web do navegador, enquanto Frank vai se concentrar na integração das comunidades web em aplicativos para o desktop promovida pelo Social Desktop. Por email, eu pedi a eles que dessem uma prévia de suas palestras para nós.

Libertando a web do navegador

Sebastian vai falar sobre as diferenças entre a web como usamos hoje e o que ele chama de “clientes locais”: Meu plano é mostrar como podemos tornar a web mais acessível para uma ampla variedade de dispositivos diferentes. Isso tudo é parte do Projeto Silk, que tem como objetivo principal uma grande integração do conteúdo e dos serviços da web na experiência de usuário do KDE.

Para entender por que faz sentido integrar o conteúdo da web ao ambiente de desktop, temos que dar uma olhada abrangente na evolução dos navegadores web nos últimos anos. Assim, podemos ver que hoje em dia o navegador web é uma plataforma bastante genérica, que evoluiu de um simples visualizador de HTML para um ambiente de tempo de execução para aplicativos web que oferecem serviços online. O que não mudou foi uma premissa básica, de acordo com Sebastian:

A maioria desses aplicativos são escritos para um dispositivo-alvo. Esse dispositivo tem tela de, digamos, 1024×768, teclado e mouse, e está sempre online. Mas foi-se o tempo em que se podia presumir que o dispositivo-alvo era esse; a cada dia que passa, essa tarefa fica mais difícil.

De fato, se analisarmos a forma como usamos a internet atualmente, notaremos que ela é bem mais variada do que antes: de celulares e tablets a netbooks, laptops, desktops e media centers. Nossas suposições quanto ao hardware que acessava serviços web há cinco anos atrás já não valem mais, conforme explica Sebastian:

Agora o usuário pode ter uma conexão intermitente com a internet, como costuma acontecer quando se usa dispositivos móveis. As telas podem não ser suficientemente grandes para exibir um aplicativo web inteiro: nos netbooks, o espaço da tela é esparso, e é preciso fazer melhor uso dele. Por outro lado, faz sentido curtir conteúdo online em media centers. Imagine só assistir a vídeos online por serviços como o YouTube do conforto do sofá.

Em todos esses novos cenários de uso, as suposições dos sites acabam naufragando. Ler texto pequeno geralmente é impossível em telas de TV grandes mas que tenham resolução baixa, e um controle remoto e uma tela sensível ao toque se comportam de maneira totalmente diferente de um mouse ou touchpad. Um software cliente conhece melhor os recursos desses dispositivos, e por isso é muito mais fácil controlar esses mecanismos de entrada para aplicativos web através dele. Mas ainda tem mais:

Ao não restringir os aplicativos web a um navegador, podemos usar as tecnologias do cliente para fazer coisas realmente interessantes com os dados no desktop. Os recursos de desktop semântico integrados ao KDE podem aumentar muito a facilidade de uso das informações, e não apenas na máquina local como também na web, conectando e combinando essas informações.

É claro que o uso de um cliente nativo para exibir conteúdo online oferece uma experiência de usuário mais coerente para quem acessa a web pelo desktop. E por último, mas não menos importante, Sebastian vê ainda uma vantagem em termos de segurança: ao separar a lógica de conteúdo da lógica do aplicativo cliente, deve ficar mais fácil construir aplicativos web mais seguros.

Uma verdadeira linha de montagem

O Projeto Silk não nasceu do nada: já há várias fontes online integradas aos aplicativos do KDE. Sebastian, por exemplo, trabalhou com Frank e outros em componentes que integram redes sociais ao shell de desktop Plasma do KDE. Logo, já temos um bocado de conteúdo online, como email, contatos e redes sociais, integrado a aplicativos no desktop. Mas Sebastian admite que a maior parte desses projetos estão meio bagunçados, o que não ajuda muito quando se trata de compartilhar código, ideias e infraestrutura.

A maioria dos aplicativos do KDE já têm plena transparência de rede: eles usam a API KIO, que permite a um usuário acessar arquivos remotos usando os mesmos métodos que usa para acessar arquivos locais. Além disso, nos últimos anos, alguns serviços interessantes foram criados: com o Akonadi, o KDE criou um cache central de armazenamento para dados de PIM (gerenciamento de informações pessoais), como emails, contatos e calendários. O Nepomuk oferece a base para a manipulação de todos os tipos de metadados no desktop KDE. De acordo com Sebastian, esses serviços são uma base poderosa para a criação de aplicativos que sejam vastamente superiores aos aplicativos movidos a JavaScript feitos para navegadores.

Um dos primeiros componentes do Projeto Silk com o qual os desenvolvedores do KDE começaram a trabalhar é o Selkie, que transforma um aplicativo web em um cidadão de primeira classe do desktop KDE, oferecendo uma melhor integração ao gerenciador de janelas, integração com serviços do desktop como o sistema de notificações e também ações personalizadas e específicas para cada aplicativo:

Criamos um protótipo promissor, e a ideia parece funcionar surpreendentemente bem. Já temos casos de testes funcionais que envolvem a manipulação do mecanismo interno de uma aplicação web a partir da barra de ferramentas, injetando JavaScript no aplicativo web em execução. Essa é uma maneira surpreendentemente fácil de devolver algum controle sobre a aparência e o comportamento dos aplicativos web no desktop a terceiros. Vou fazer uma demonstração do Selkie na minha palestra.

Também estão incluídos na linha de montagem componentes que integram conteúdo multimídia online aos componentes do Media Center do KDE. Sebastian também listou algumas atividades que estão ocorrendo em níveis mais baixos, como a QJSon, uma pequena biblioteca para o protocolo JSon, classes para pesquisar e acessar conteúdo de MediaWikis como a Wikipedia, um criador de imagens em miniatura de páginas da web e mais. Como muitos dos aplicativos que compõem o Silk estão integrados aos aplicativos ou ao Plasma, não há um ponto central que reúna código para o projeto, mas há um repositório git que agrupa as partes que ainda não foram integradas.

“Social Desktop”, o desktop social

A palestra de Frank na conferência de primavera do NLUUG será sobre a ideia e o estado atual do Social Desktop no KDE, que ele propôs pela primeira vez em sua palestra na Akademy de 2008, na Bélgica. A ideia principal do projeto é trazer a comunicação e a colaboração das comunidades online para os aplicativos de desktop, acabando com a necessidade de navegar em fóruns e redes sociais em um navegador. Em sua apresentação, Frank oferecerá uma visão geral de todos os novos recursos e possibilidades do ponto de vista dos desenvolvedores e usuários. E já há trabalhos sendo desenvolvidos em torno dessa ideia:

Já implementamos os meios para que você localize outros usuários do KDE perto de você, o gerenciamento de amigos, trocas de mensagens, compartilhamento de conteúdo, acesso à base de conhecimento e mais. Durante a minha palestra, vou dar uma visão geral mais completa. Teremos uma integração extremamente boa no KDE 4.4, a ser lançado em janeiro. A biblioteca de acesso a todos os recursos do Social Desktop será movida para as bibliotecas do KDE, e todo o gerenciamento de identidade será uma parte central do KDE, de modo que todos os aplicativos do KDE possam acessar o aspecto social com muita facilidade. Já temos vários aplicativos que usam essas novas possibilidades.

A ideia do Social Desktop é conectar as pessoas umas as outras e aproximá-las ao projeto do desktop KDE e de assuntos relacionados. Frank realça que isso não é útil apenas para desenvolvedores, como também para usuários comuns: Por exemplo, você pode entrar em contato com outros usuários do KDE e ver o que seus amigos estão fazendo. Ou pode obter ajuda pela integração com a base de conhecimento sem ter que abrir um navegador.

Para poder usar redes sociais no desktop KDE sem atar o Social Desktop a uma plataforma web como o Facebook ou o Twitter, os desenvolvedores trabalharam no suporte ao padrão OCS (serviços colaborativos abertos), que é um padrão aberto publicado no freedesktop.org. De acordo com Frank, vários sites já se comprometeram a endossar essa especificação, para que os usuários possam escolher diferentes fontes de dados:

Um desktop social deve ser independente, para que os usuários possam usar “provedores de serviço” independentes, sem ficar preso a nenhum. Por esse motivo, é importante ter uma especificação de API aberta e independente, para que clientes e servidores diferentes possam se entender e falar a mesma língua.

Assim como Sebastian, Frank explica que não há nada de errado com os navegadores em si, mas que integrar serviços web diretamente aos aplicativos de desktop proporciona uma experiência mais rica:

Por exemplo, um aplicativo para fins educativos usado para prática de vocabulário no aprendizado de idiomas. Você pode obter automaticamente uma lista de pessoas interessadas em aprender seu idioma e em conversar na língua que você deseja aprender. Assim todos podem se conectar e aprender juntos. Não dá para fazer isso num aplicativo comum para desktops. Mas um aplicativo web também não conta com a riqueza e o desempenho de um aplicativo para desktops. Um aplicativo de desktop social combina as duas coisas.

A competição do Social Desktop

Isso nos leva aos vencedores da Competição do Social Desktop, iniciada em 17 de junho de 2009. O objetivo da competição era o de promover o desenvolvimento e as inovações em torno da API OCS na comunidade. Os vencedores foram anunciados recentemente. No anúncio, Frank escreveu:

Muitas ideia boas vêm surgindo na comunidade do Social Desktop, e nós recebemos um grande número de inscrições de ótima qualidade. Isso complicou as coisas para o júri, porque só podemos ter um determinado número de vencedores.

O vencedor da competição foi a caixa de diálogo incrementada para aplicativos do KDE, de Téo Mrnjavac. Ela obtém informações sobre os desenvolvedores de um programa – como por exemplo, informações de contato, endereço web e nacionalidade – do opendesktop.org e as exibe na janela “Sobre”. Isso dá uma face humana ao aplicativo, e permite a interação direta com a equipe de desenvolvimento. Essa caixa de diálogo incrementada pode ser usada em qualquer aplicativo do KDE, e já vem no Amarok 2.2.

O segundo colocado foi o widget da base de conhecimento, de Marco Martin. Trata-se de um plasmoid que permite ao usuário consultar a base de conhecimento online do opendesktop.org sem ter que visitar um fórum ou se inscrever em uma lista de discussão. O widget fará parte do KDE 4.4. O terceiro colocado ficou com a libopengdesktop de Guido Roberto. Essa é uma biblioteca baseada na Glib que oferece acesso facilitado aos provedores do padrão Open Collaboration Services. Ela será útil para trazer o Social Desktop para o Gnome e o XFCE. Em quarto lugar, o PyContent, widget do plasma escrito em Python que exibe o conteúdo mais recente de um provedor de conteúdo em categorias específicas.

Projetos abertos para uma web aberta

Tanto o Social Desktop quanto o Projeto Silk têm uma atitude bastante aberta. A ideia e as especificações do lado do servidor e da API do Social Desktop são completamente independentes de plataforma, como destaca Frank:

Estamos desenvolvendo uma biblioteca cliente específica para o KDE no momento, mas é possível integrar essa funcionalidade a outros aplicativos ou desktops facilmente. A prova disso é que um dos vencedores da competição do Social Desktop desenvolveu uma biblioteca que realiza facilmente essa integração com o GNOME. O Gwibber, um aplicativo do GNOME para o Twitter, já tem suporte a essa API.

No momento, o projeto Silk continua sendo voltado especificamente para o KDE, mas há motivos para isso, como explica Sebastian:

Ainda não entramos em contato com desenvolvedores de outros ambientes de desktop para iniciar o desenvolvimento neles. Primeiro queremos ter algo em mãos. Ficar discutindo ideias ambiciosas toma um bocado de tempo. No estágio atual, o Silk é coisa do KDE, e temos que concentrar e otimizar os esforços para trabalhar em algumas coisas que estão faltando.

Contribua para uma web aberta

Os dois projetos estão abertos a contribuições. Os desenvolvedores e usuários do KDE podem se envolver facilmente no projeto do Social Desktop. Há uma lista de discussão, um wiki, a especificação está disponível no freedesktop.org e, obviamente, todo o código do KDE está disponível no svn do KDE. Frank acrescenta ainda que haverá um encontro de desenvolvedores perto do fim do ano, voltado especificamente para o Social Desktop: Todos são bem-vindos. Se você quiser participar, envie um email para mim. Não importa qual é o desktop que você usa. O Social Desktop é um projeto completamente aberto.

O projeto Silk é em grande parte um grupo de pessoas que trabalha em componentes de integração com a web, e não um grupo fechado. Fazem parte dele vários desenvolvedores do KDE que já vinham trabalhando com aspectos dessa integração. É por isso que é fácil contribuir, como observa Sebastian: Os desenvolvedores que acharem essas ideias interessantes podem entrar em contato conosco no canal de IRC #kde-silk na rede Freenode.net, ou pela lista de discussão [email protected] Passamos algum tempo documentando ideias sobre o Projeto Silk na Techbase, o wiki da base de conhecimento do KDE.

Os dois projetos ainda engatinham, e por isso mesmo são uma oportunidade interessante para desenvolvedores de código aberto que queiram trabalhar em algo inovador. Os participantes da competição do Social Desktop e as ideias do projeto Silk na Techbase são boas fontes de inspiração.

Nota do editor: vídeo com primeiras ideias do KDE Social Desktop

Créditos a Koen Vervloesem lwn.net
Tradução por Roberto Bechtlufft <info at bechtranslations.com.br>

Sobre o Autor

Redes Sociais:

Deixe seu comentário

X