Novidades do Chrome 67

  • Os Progressive Web Apps estão chegando ao computador
  • A API de sensor genérico facilita o acesso a sensores do dispositivo, como o acelerômetro, o giroscópio e muitos outros.
  • Além disso, os BigInts facilitam o processamento com números inteiros grandes.

E tem muito mais!

Meu nome é Pete LePage. Vamos conhecer as novidades do Chrome 67 para os desenvolvedores!

Deseja a lista completa de alterações? Confira a lista de alterações de repositório de origem do Chromium.

PWAs para computador

App Web Progressivo do Spotify

Os Progressive Web Apps para computador agora são compatíveis com o ChromeOS 67, e já começamos a trabalhar no suporte para Mac e Windows. Depois de instalados, eles são iniciados da mesma forma que outros apps e executados em uma janela do app, sem uma barra de endereço ou guias. Os service workers garantem que eles sejam rápidos e confiáveis com a experiência da janela do app faz com que eles se sintam integrados. E criam uma experiência envolvente para os usuários.

Começar não é diferente do que você já faz hoje. Todo o trabalho feito no Progressive Web App atual ainda se aplica. Basta considerar alguns outros pontos de interrupção.

Se o app atender aos critérios padrão do PWA, o Chrome dispara o evento beforeinstallprompt, mas não solicita o usuário automaticamente. Em vez disso, salve o evento e, em seguida, adicione ao seu app alguma IU, como um botão de instalação de app, para informar que ele pode ser instalado. Depois, quando o usuário clicar no botão, chame a solicitação no evento salvo. O Chrome mostrará a solicitação ao usuário. Se ele clicar em "Adicionar", o Chrome adicionará o PWA à estante e à tela de início.

Confira minha palestra do Google I/O, em que Jenny e eu falamos em detalhes sobre as considerações técnicas e especiais de design que você precisa considerar ao criar um Progressive Web App para computador.

Se você quiser começar a usar esse recurso no Mac ou Windows, confira a postagem completa do App Web Progressivo para Computador (link em inglês) para saber mais sobre como ativar a compatibilidade com uma flag.

API Generic Sensor

Os dados do sensor são usados em muitos apps para permitir experiências como jogos imersivos, monitoramento de condicionamento físico e realidade aumentada ou virtual. Esses dados agora estão disponíveis para um app da Web que usa a API Generic Sensor.

A API consiste em uma interface Sensor básica com um conjunto de classes de sensor concretas criada com base. Ter uma interface básica simplifica o processo de implementação e especificação para classes de sensor concretas. Por exemplo, a classe do Giroscópio é super minúscula!

const sensor = new Gyroscope({frequency: 500});
sensor.start();

sensor.onreading = () => {
    console.log("X-axis " + sensor.x);
    console.log("Y-axis " + sensor.y);
    console.log("Z-axis " + sensor.z);
};

A funcionalidade principal é especificada pela interface base, e o giroscópio somente a estende com três atributos que representam a velocidade angular. O Chrome 67 oferece suporte ao acelerômetro, giroscópio, sensor de orientação e sensor de movimento.

A Intel reuniu várias demonstrações da API de sensores genéricos e um exemplo de código e também atualizou os Sensores para a Web! de setembro com tudo o que você precisa saber.

BigInts

BigInts são um novo primitivo numérico em JavaScript que pode representar números inteiros com precisão arbitrária. IDs de números inteiros grandes e carimbos de data/hora de alta precisão não podem ser representados com segurança como Numbers no JavaScript, o que geralmente leva a bugs reais. Por causa disso, geralmente acabamos representando esses números como strings.

let max = Number.MAX_SAFE_INTEGER;
// → 9_007_199_254_740_991
max = max + 1;
// → 9_007_199_254_740_992 - Yay!
max = max + 1;
// → 9_007_199_254_740_992 - Uh, no?

Com BigInts, podemos armazenar e executar aritmética de números inteiros com segurança, sem estouro. Atualmente, lidar com números inteiros grandes geralmente significa que temos que recorrer a uma biblioteca que emularia uma funcionalidade semelhante a BigInt.

let max = BigInt(Number.MAX_SAFE_INTEGER);
// → 9_007_199_254_740_991n
max = max + 9n;
// → 9_007_199_254_741_000n - Yay!

Quando BigInt ficar amplamente disponível, poderemos descartar essas dependências de tempo de execução em favor do BigInts nativo. Além de a implementação nativa ser mais rápida, isso também ajuda a reduzir o tempo de carregamento, de análise e de compilação, porque não precisamos carregar essas bibliotecas extras.

E muito mais.

Essas são apenas algumas das mudanças no Chrome 67 para desenvolvedores. É claro que há muito mais.

A API Credential Management tem suporte desde o Chrome 51 e fornece um framework para criar, recuperar e armazenar credenciais. Ele fez isso usando dois tipos de credencial: PasswordCredential e FederatedCredential. A API Web Authentication adiciona um terceiro tipo de credencial, PublicKeyCredential, que permite que os navegadores autentiquem um usuário com um par de chaves privada/pública gerada por um autenticador, como uma chave de segurança, um leitor de impressão digital ou qualquer outro dispositivo que possa autenticar um usuário. O Chrome 67 ativa a API usando autenticadores U2F/CTAP 1 por transporte USB em computadores.

Saiba mais sobre isso na postagem Como ativar a autenticação forte com WebAuthn (em inglês) do Eiji.

O Google I/O chegou ao fim

Se você não foi ao I/O, ou talvez tenha assistido, mas não viu todas as palestras sobre a Web, confira a playlist do Chrome e da Web para ficar por dentro das novidades do Google I/O.

Novidades no DevTools

Consulte Novidades no Chrome DevTools para saber as novidades do Chrome 67.

Inscrever-se

Em seguida, clique no botão Inscrever-se em nosso canal do YouTube e você receberá uma notificação por e-mail sempre que lançarmos um novo vídeo.

Eu sou Pete LePage e, assim que o Chrome 68 for lançado, terei aqui para contar as novidades do Chrome.