Novidades do Chrome 67

  • Os Progressive Web Apps estão chegando para computadores
  • A API de sensor genérica facilita o acesso a sensores do dispositivo, como o acelerômetro, o giroscópio e muito mais.
  • E os BigInts facilitam muito o trabalho com números inteiros grandes.

E tem muito mais.

Meu nome é Pete LePage. Vamos conferir as novidades para desenvolvedores no Chrome 67.

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

PWAs para computador

App Web progressivo para computador do Spotify

Os Progressive Web Apps para computador desktop 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 de app, sem uma barra de endereço ou guias. Os service workers garantem que eles sejam rápidos e confiáveis, e a experiência da janela do app faz com que eles se sintam integrados. E eles criam uma experiência envolvente para os usuários.

Começar a usar o Google Analytics não é diferente do que você já faz hoje. Todo o trabalho que você fez para seu App Web Progressivo ainda se aplica. Basta considerar alguns pontos de interrupção adicionais.

Se o app atender aos critérios de PWA padrão, o Chrome disparará o evento beforeinstallprompt, mas não solicitará automaticamente o usuário. Em vez disso, salve o evento e adicione uma interface, como um botão "Instalar app", para informar ao usuário que ele pode ser instalado. Em seguida, quando o usuário clicar no botão, chame a solicitação de chamada no evento salvo. O Chrome mostrará a solicitação ao usuário. Se o usuário clicar em "Adicionar", o Chrome vai adicionar seu PWA à prateleira e ao iniciador.

Confira minha palestra no Google I/O (link em inglês), em que Jenny e eu entramos em detalhes sobre as considerações técnicas e especiais de design que você precisa considerar ao criar um App Web Progressivo para computadores.

Se você quiser começar a usar esse recurso no Mac ou Windows, confira a postagem completa do Progressive Web App para computador para detalhes sobre como ativar a compatibilidade com uma flag.

API Sensor genérica

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 apps da Web usando a API Generic Sensor.

A API consiste em uma interface de sensor base com um conjunto de classes de sensor concretas criadas em cima. Ter uma interface básica simplifica o processo de implementação e especificação das classes concretas do sensor. Por exemplo, a classe Gyroscope é superpequena.

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 de base, e o giroscópio apenas a estende com três atributos que representam a velocidade angular. O Chrome 67 oferece suporte a 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 do código de exemplo. Ela também atualizou a postagem de setembro Sensores para a Web! 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 em JavaScript, o que geralmente leva a bugs reais, porque 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 estourar. Hoje, lidar com números inteiros grandes normalmente significa recorrer a uma biblioteca que emula a 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 o BigInt estiver disponível para todos, poderemos remover essas dependências de execução em favor do BigInts nativo. A implementação nativa é mais rápida e 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.

Estas são apenas algumas das mudanças no Chrome 67 para desenvolvedores. Há muitas outras.

A API Credential Management é compatível com o Chrome 51 e oferece um framework para criar, extrair e armazenar credenciais. Isso foi feito com 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 gerado 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 no computador.

Saiba mais sobre isso no post Ativar a autenticação forte com o WebAuthn de Eiji.

O Google I/O acabou

Se você não conseguiu ir ao I/O ou não assistiu a todas as palestras na Web, confira a playlist do Chrome e da Web para ficar por dentro das novidades do Google I/O.

Novidades no DevTools

Confira as Novidades do Chrome DevTools para saber o que há de novo no Chrome DevTools 67.

Inscrever-se

Depois, clique no botão Inscrever-se no nosso canal do YouTube. Você vai receber uma notificação por e-mail sempre que lançarmos um novo vídeo.

Meu nome é Pete LePage, e assim que o Chrome 68 for lançado, vou estar aqui para contar as novidades do Chrome.