Project Fugu (também conhecido como Web Capabilities Project) é uma iniciativa criada por Google, Microsoft, Intel, além de outras empresas, que tem um objetivo básico: Eles acreditam que web apps devem ser capaz de fazer tudo que um app nativo faz. O grande problema em criar essas “capacidades” da Web vem, principalmente, com preocupações de segurança, privacidade dos usuários e confiabilidade dos navegadores.
Progressive Web Apps
Um grande passo para essas iniciativas foi o advento dos Progressive Web Apps, tenho um artigo de 2018 explicando um pouco mais sobre isso (o mundo mudou bastante, os smartphones mudaram bastante e ainda não revisei o artigo, relevem possíveis informações que talvez façam menos sentido hoje). Naquela época, só de poder “instalar” uma aplicação Web na tela inicial do seu smartphone, conseguir receber push-notifications da mesma e ainda poder fazer certas ações offline, já eram um enorme avanço.
Falando em PWA, em 2017 pude participar do PWA Roadshow em São Paulo e acompanhar as sensacionais palestras do Sam Dutton e do Pete LePage sobre esse “movimento” e novas capacidades na Web. Recomendo os seguir para ver materiais sobre o tema e ver apresentações do PWA Roadshow.
Processo de adição de novas funcionalidades
O processo de adição de novas “capacidades” na Web começa pela identificação das necessidades dos desenvolvedores. Um bom ponto de início é olhar o conteúdo do bugs.chromium.org, geralmente isso vem como pedidos de feature request. O segundo passo é a criação de um explainer, que é uma documentação que detalha a funcionalidade que você está propondo. Uma boa proposta deve responder algumas questões:
- Detalhar o problema do usuário que precisa ser resolvido
- A abordagem proposta para a resolução do problema
- A forma como a solução proposta pode ser usada na prática com exemplos de código
- Outras forma de contato em que os leitores podem acompanhar discussões sobre a proposta (lista de emails, repositórios e etc)
- Alternativas que foram consideradas para a solução de determinados problemas e o motivo do porque não foram escolhaidas
- Implicações de acessibilidade, segurança e privacidade que foram consideradas no processo
Um que eu recomendo ler é o do paymentRequest. Mais detalhes dos explainers podem ser encontrados nesse repositório.
Web Incubator Community Group
Além do Web Capabilities Projetct, também tempos o WICG. O Web Incubator Community Group é um grupo comunitário de trabalho, criado com várias propostas novas APIs e capacidades para a Web. Seu intuito é ser um espaço aberto e todos poderem contribuir, visto que antes a Web era construída “atrás de portas fechadas” em comitês contendo membros de certas empresas (geralmente as BigTechs do momento e algumas fundações). Mais detalhes nessa thread e no site move the web forward.
A evolução
O Project Fugu foi ganhando bastante tração e hoje conta com um conjunto de itens já desenvolvidos e outros a desenvolver. Como tem bastaaante coisa, recomendo ir nas fontes para saber mais desses projetos:
- https://web.dev/fugu-status/
- https://developers.google.com/web/updates/capabilities
- https://fugu-tracker.web.app/
- https://whatpwacando.today/ (fonte não oficial, não sei quando foi atualizado)
- https://whatwebcando.today/ (fonte não oficial, não sei quando foi atualizado)
Inclusive teremos bastante conteúdo sobre Web Capabilities no Google I/O (que vai do dia 18 ao dia 21 de Maio) de 2021, dê uma conferida no site https://events.google.com/io/program/content?4=topic_web e não deixe de adicionar lembretes no seu calendário.
Bom pessoal, esse artigo foi mais curto porém recheado de conteúdo. Espero que aproveitem e entrem em contato comigo para discussões, mais informações e feedbacks =D.
Até a próxima!