Criando Aplicações de Internet Sofisticadas com Webkit
Data: 03/03/2008
Autor Original: Ryan Paul
Fonte: https://arstechnica.com/
A ferramenta de renderização open-source WebKit HTML está rapidamente ganhando terreno na plataforma Linux onde está sendo adotado cada vez mais por aplicações desktop convencionais para visualização de conteúdos. Esforços para facilitar a integração do Webkit estão abrindo portas para desenvolvimento de aplicações para Internet sofisticadas no Linux com as ferramentas de desenvolvimento open-source GTK e Qt.
WebKit em GTK
Desenvolvimento no GTK WebKit está progredindo incrivelmente rápido. Foram olhados vários experimentos anteriormente relacionados com a plataforma, incluindo a implementação do elemento de vídeo HTML5 baseado no Gstreamer, e suporte backend para para navegadores web no Maemo, Epiphany e OLPC. Estes testes mostraram a eficácia cada vez maior do GTK WebKit como um navegador convencional, mas há também outros experimentos interessantes que mostram informações adicionais no qual o GTK WebKit tem valor.
O desenvolvedor do GTK WebKit Alp Toker publicou slides na semana passada de sua apresentação na FOSDEM (Free and Open Source Software Developers’ European Meeting, ou Encontro Europeu de Desenvolvedores de Softwares Livres e Gratuitos). A apresentação discute os prospectos para o desenvolvimento de aplicações híbridas desktop/web com o WebKit e o GTK. Este projeto planeja criar uma API robusta baseada em GObject que tornam o WebKit trivialmente fácil de se usar em aplicações desktop. O uso de bindings já estão disponíveis para várias linguagens de programações, incluindo C#, Python e Vala.
Embutir um renderizador WebKit em uma aplicação GTK é tão fácil quanto instanciar um WebView e empacotá-lo em um GTK ScrolledWindow ou outro container. Em Python, como dizem os slides de Toker, isso pode ser feito em apenas uma dúzia de linhas de código. O objeto WebView, o qual é semelhante a um GtkTextView, provê suporte completo para tanto edição de conteúdo quanto para mostrá-lo. Os esforços de desenvolvimento que atualmente estão em progresso vão prover uma API completa baseada em GObject para manipulação da programação do DOM, facilitando para aplicações para controlar e modificar conteúdo quando está se vendo HTML embarcado (embedded HTML). Também vai ser possível mostrar a funcionalidade interna de uma aplicação através de JavaScript para que possa ser usado dentro da visão.
WebKit já foi adotada experimentalmente por muitas aplicações de desktop baseadas em GTK que são muito usadas pelo Linux. Desenvolvedores dizem que usar WebKit no Yelp, o navegador de documentação do GNOME, fez com que houvesse uma diminuição notável na inicialização da aplicação. O desenvolvedor do Pidgin, Sean Egan, está trabalhando em criar um plugin para o cliente de mensagens instantâneas que substituísse o modo convencional de ver mensagens com um baseado em WebKit que pode até usar os temas do Adium. O WebKit em Pidgin oferece uma interface de usuário muito mais rica e flexível.
WebKit em Qt
Uma característica legal que foi vista na primeira olhada no Qt 4.4 no ano passado é o QWebView, um componente de renderização WebKit que foi incluída em uma Qt widget API com suporte completo para sinais e propriedades convencionais. Uma publicação da Trolltech provê várias informações das robustas capacidades técnicas da WebKit widget da Qt.
Uma característica particularmente interessante é o suporte para integração de widgets regulares nativos do Qt diretamente nos layouts HTML do QWebView. Isso faz com que seja possível de perfeitamente integrar conteúdo da web com aplicações desktop do Qt. O sistema de meta-objeto do Qt trabalha com binding e então widgets nativos são acessíveis através de JavaScript e de conteúdos que o QWebView pode ser manipulado através de código nativo. Trolltech também planeja criar uma subclasse Qwidget que implementa o plugin API do Netscape e então Java applets, animações Flash, e outros componentes parecidos podem ser acoplados diretamente em aplicações Qt normais.
Seguindo a recente aquisição da Trolltech pela Nokia, os desenvolvedores estão trabalhando para aumentar a visibilidade dos esforços do desenvolvimento da WebKit deles. Nokia vê o software WebKit baseado em Qt como sendo particularmente de alta relevância em ambientes móveis.
“O Qt WebKit Integration (Integração do Qt WebKit) ajuda desenvolvedores a combinar conteúdo ao vivo da web com aplicações móveis e de desktop,” disse Lars Knoll, desenvolvedor da Trolltech, no Mobile World Congress (Congresso Mundial Móvel) no mês passado em Barcelona. “Isso diminui as fronteiras entre o desktop, telefones móveis e a Web. Também permite que designers gráficos e de Web juntem desenvolvedores em fazer uma interface de usuário mais avançada do que nunca – não importa qual dispositivo ou aplicação desktop você está usando.”
Knoll é o criador original do KHTML, a ferramente de renderização open-source HTML baseada em KDE que a Apple adotou para servir como base para o WebKit. Para mais de suas idéias, veja a entrevista com ele que foi feita ano passado na WWDC.
Alguns vídeos de demonstração disponíveis no site da Trolltech mostram um pouco das funcionalidades do QWebView em ação. Um dos vídeos mostram como criar um site específico para um navegador apenas com o “drag and drop” (arrastar e soltar) de um QWebView widget em um formulário na ferramenta do Qt Designer. Outro vídeo mostra como o Google maps pode ser integrado em um aplicativo de desktop.
Uma melhor solução para RIAs
Usando renderizadores WebKit embutidos em aplicativos GTK vão tornar possível implementar rapidamente visões orientadas a mídia e reusar conteúdo web já existente em aplicativos desktop. Existem obviamente muitos contextos onde aplicações sofisticadas de Internet são uma solução muito mais necessária.
Quando foi dada uma boa olhada esta manhã na Adobe AIR (a qual usa bastante o WebKit), foi notada uma falta de suporte em expor bibliotecas nativas durante a execução que teve sérias limitações de escalabilidade. Usar componentes embarcados de WebKit em aplicações GTK e Qt nativas é uma aproximação que oferece mais flexibilidade e permite o uso abrangente de bibliotecas nativas.
Também é bom notar que o Qt (e o GTK de uma forma menor) é compatível com mais plataformas e suportado em Windows, Mac OS X e Linux. Estas ferramentas dão uma forte alternativa open-source para o AIR que provêem uma portabilidade adequada e também oferecem uma coleção maior e mais robusta de widgets e ferramentes para desenvolvimento de software convencional. Assim que estas soluções que estão competindo para o desenvolvimento de aplicações sofisticadas de internet vão se tornando mais maduras, elas vão provavelmente influenciar algumas mudanças significantes no modo que os desenvolvedores criam software. O espectro da expansão das ferramentas e soluções disponíveis para este tipo de desenvolvimento é um sinal muito promissor do que está por vir.


