Apps foundation

Por dentro da primeira onda no Googlebook com o Notability e a Logitech

Alto-falantes

  • Emilie Roberts

    Engenheiro de relações com desenvolvedores

  • Ryan Shea

    Diretor do Android

  • Joe Yezhou Wang

    Gerente de engenharia na Logitech

Sobre

Sobre a palestra

O lançamento do Googlebook abre uma nova fronteira para experiências de alta fidelidade, no nível de um computador. Nesta sessão, vamos mostrar os bastidores com dois parceiros pioneiros que criaram para essa plataforma do zero.

O Notability vai compartilhar a jornada de criação de um app Android para computador usando o Jetpack Compose. Aprenda mais sobre a jornada de migração de outras plataformas de apps com foco em computadores. Em seguida, a Logitech vai falar sobre o hardware, explicando como está criando e personalizando periféricos para uma integração perfeita com o Googlebook. Participe da sessão para receber insights práticos e reais sobre como otimizar entradas, aproveitar as APIs de tela grande e oferecer uma experiência do usuário premium e coesa em hardware e software.

Resumo

  • O Jetpack Compose e o Navigation 3 facilitam a adaptação de layouts em vários dispositivos com base no tamanho da janela disponível, em vez de formatos de dispositivo.
  • As experiências de nível de computador exigem suporte a modelos de entrada múltipla, como teclados e trackpads. Recursos como o Continue On no Android 17 também permitem que os usuários transfiram tarefas entre dispositivos.
  • O Jetpack Ink oferece aos desenvolvedores um pipeline de desenho de baixa latência sem precisar gerenciar linhas de execução de renderização personalizadas ou transferências de camadas complexas.
  • A API Peripheral Customization permite que os desenvolvedores mapeiem acionadores de hardware periférico para ações do SO usando IDs de fornecedor e de produto.

Gemini Notebook

Tópicos

  • googlebook
  • jetpack-compose
  • jetpack-ink
  • navigation-3
  • telas grandes
  • peripheral-customization
  • kotlin-multiplatform

Transcrição

Introdução à criação para o Googlebook

  • Olá, meu nome é Emilie Roberts. Sou uma mediadora de desenvolvedores que trabalha com apps Android em laptops há cerca de nove anos.

  • E o Googlebook foi lançado.

  • Eba!

  • Acho muito legal a inovação que estamos trazendo para o espaço dos laptops.

  • E estou muito feliz por estar no palco com dois desenvolvedores que realmente investiram para que os apps deles ficassem ótimos no Googlebook.

  • Olá!

  • Sou o Ryan, do Notability.

  • Sou o gerente do Android, e esse é um app de caderno digital que acabamos de lançar no Android.

  • Ele também está disponível para iOS, computadores e agora no Googlebooks.

  • Olá.

  • Sou Joe, da Logitech, e somos conhecidos por nossos excelentes hardwares e periféricos.

  • E vou falar sobre como os levamos para as novas plataformas.

Como projetar apps Android para telas grandes

  • Vou empurrá-los.

  • E, por isso, os Googlebooks estão aqui.

  • Eba!

  • Eba!

  • Eba!

  • Espero que você tenha tido a chance de testá-los, seja por conta própria ou no estande de demonstração, um andar acima ou abaixo.

  • E não se esqueça de conferir como o app fica neles, é claro.

  • Vou dar minha resposta padrão, que é: o ecossistema Android está crescendo.

  • Eu digo isso há nove anos, e ainda é verdade.

  • E os apps precisam evoluir para garantir que você atenda às necessidades dos usuários em todos os tamanhos de tela e dispositivos.

  • Ter um layout de app que funcione e se comporte bem é uma prática padrão neste momento.

  • E a melhor maneira de fazer isso é com o Jetpack Compose e o Navigation 3.

  • E a entrada é a mesma coisa.

  • Ele deve funcionar.

  • E, claro, a arquitetura e o gerenciamento de estado dos seus apps fazem parte do layout e das entradas.

  • E temos várias palestras no ADS sobre como fazer isso com as ferramentas mais recentes e as práticas recomendadas.

  • No entanto, hoje achamos que seria uma ótima oportunidade para dar um pouco de espaço aos desenvolvedores que estão criando para o Googlebook desde o início e ouvir as histórias deles.

  • O Notability é um app de anotações avançado, criado do zero para o Googlebook.

  • E a Logitech trabalhou não apenas para garantir que os teclados, mouses e outros periféricos funcionassem, mas que funcionassem muito bem nos Chromebooks, incluindo a personalização do usuário.

  • Desculpe por roubar um pouco do seu protagonismo, Joe, mas vamos entrar em detalhes.

  • Então, isso é o suficiente para mim.

  • Sem rimas desta vez, desculpe.

  • E nada de improvisar.

  • De qualquer forma, estamos muito felizes em ter o Notability no Googlebooks, então vou passar o controle para o Ryan.

  • Obrigado.

Lançamento do Notability no Android

  • Ótimo.

  • Muito obrigada, Em.

  • E estamos muito animados por estar no Google Livros.

  • O Notability é o app que milhões de estudantes usam para aprender e profissionais usam para fazer anotações.

  • Como mencionei antes, ele já está disponível no Android, e vou falar rapidamente sobre como o criamos e como a criação correta para o Android é muito próxima do ideal para o Googlebooks.

  • Para começar, quando iniciamos esse projeto há cerca de dois anos, queríamos garantir que não estávamos apenas portando nosso app iOS, despejando-o nos usuários e chamando isso de bom o suficiente.

  • Queríamos algo que parecesse realmente nativo para as expectativas do usuário, mas que ainda oferecesse paridade total de recursos.

  • Para isso, usamos o Material Design e componentes para personalizar todas as telas do zero.

  • E garantimos que estávamos usando o Jetpack Compose.

  • Por ser um aplicativo Android nativo totalmente no Jetpack Compose, podemos oferecer suporte a uma ampla variedade de hardware, não apenas smartphones pequenos e dispositivos mais simples, mas também tablets sofisticados e potentes com telas grandes, computadores, XR, carros e tudo mais.

  • O Jetpack Compose facilita muito o suporte nativo a esses recursos, sem precisar criar muitos recursos extras nas interfaces de IU.

  • Agora, vamos falar sobre o Notability.

  • Tudo no Notability é criado no Jetpack Compose.

  • A interface é consistente em toda a plataforma e é criada basicamente uma vez, sem mudanças reais entre o que é mostrado em um smartphone e o que é mostrado em dispositivos maiores, como tablets e Googlebooks.

  • Para isso, a Navigation 3 é um grande avanço para nós.

  • A forma como a Navigation 3 funciona no Google integrado ao Notability é que, com base no tamanho da tela, podemos personalizar o layout sem que o recurso precise se preocupar com a forma como será apresentado.

  • Nesta demonstração, é possível ver que, se houver espaço para um painel lateral, ele será aberto.

  • Mas, se não couber, ela vai aparecer como uma página inferior.

  • Como isso fica no código?

  • No código que temos aqui, você pode ver que há um ponto de entrada para o painel de resumo real na lateral, e estamos adicionando isso à backstack.

  • Em seguida, nossa estratégia de cena personalizada escolhe um layout para esse painel lateral, dependendo se há espaço ou não.

  • Em um tablet ou dispositivo Googlebook, ele vai encontrar espaço disponível e abrir espaço para deslizar o painel do lado direito.

  • No entanto, em um smartphone ou dobrável, talvez não haja espaço suficiente para exibir esse painel corretamente. Por isso, ele vai aparecer como uma página inferior.

  • Como o Notability se adapta ao tamanho da janela em vez de se preocupar com o tipo de dispositivo, seja um smartphone, um Googlebook, um tablet, um dobrável ou qualquer outro, é muito fácil para nossa interface se adaptar automaticamente ao que os usuários precisam.

  • Aqui, em um smartphone, todos os botões e ferramentas são reposicionados para ficarem ao alcance do polegar.

  • Em um tablet, os painéis de navegação são exibidos lado a lado ao lado de todo o conteúdo principal, porque você tem mais espaço e telas mais fáceis de interagir.

  • Nos dobráveis, aproveitamos a dobra para oferecer layouts e interfaces exclusivas, como no nosso teste de estudo, em que os usuários podem ver as respostas na metade de baixo e o progresso do teste na metade de cima.

  • Por fim, no Google Livros, o redimensionamento da janela é suave.

  • Assim como em qualquer outro aplicativo normal em janela em um computador, o Notability se adapta conforme você redimensiona a janela para qualquer necessidade de visualização lado a lado.

  • Quando estávamos criando a interface adaptável, que funciona para quase toda a experiência de computador no Google Livros, como mencionei.

  • Isso vai deixar você bem perto.

  • Mas se você quiser uma experiência de nível de computador, algo realmente de outro mundo, recomendamos algumas coisas.

  • Primeiro, priorize o teclado.

  • Os usuários não vão ser tão sensíveis ao toque quanto em um tablet ou smartphone normal, e ter os atalhos de teclado e uma maneira fácil de acessar a lista de atalhos do Android é superimportante.

  • Em seguida, é possível projetar os recursos para que eles tenham um layout diferente dependendo do tipo de dispositivo e dos periféricos de entrada disponíveis.

  • Quando detectamos algo como um laptop com um teclado conectado ou um mouse, oferecemos uma interface um pouco diferente na tela inicial, para que os usuários sejam redirecionados para ferramentas que achamos que esse tipo de usuário prefere em vez de algo como um tablet, em que uma stylus e notas automáticas de caneta de escrita manual serão a opção principal.

  • Outra coisa que você precisa começar a pensar é como vários dispositivos diferentes interagem.

  • O recurso Continuar em Outro Dispositivo é uma novidade do Android 17 que permite transferir o app de um dispositivo para outro sem interrupções.

  • Neste exemplo, estamos transferindo uma nota do smartphone para um dispositivo desktop maior.

  • Isso é feito facilmente com uma sincronização rápida no ID da nota e um progresso rápido de onde você está do nosso lado.

  • Por isso, é muito fácil enviar uma intent de app rápida para o dispositivo Googlebook e continuar exatamente de onde você parou.

  • Outro aspecto a ser considerado para dispositivos de classe para computador são os modelos de suporte a várias entradas.

  • Portanto, além de atalhos de teclado, como mencionado anteriormente, você terá trackpads com diferentes tipos de zoom e comportamentos de rolagem.

  • Você também terá menus de contexto que talvez precisem ser disponibilizados para usuários que não estavam lá antes.

  • Além disso, como muitos dispositivos Googlebook ainda têm tela touch screen, é importante garantir que, quando um usuário interagir com o dispositivo, haja um reconhecimento de entrada diferente não apenas para a stylus e o dedo, mas também para o cursor do trackpad, porque os três precisam ser tratados de forma diferente.

Desenho de baixa latência com o Jetpack Ink

  • Se você quer usar tinta e escrever notas como o Notability, recomendamos o Jetpack Ink.

  • Usamos isso para fornecer um sistema de criação de baixa latência para nossa tinta sem precisar gerenciar uma pilha pesada e complicada de linhas de execução, renderização, leitores de buffer e outras coisas que vou mostrar mais adiante.

  • Mas se funcionar agora, graças à Logitech, posso mostrar uma demonstração ao vivo do app Notability.

  • Sim, perfeito.

  • Então, ops, vamos lá.

  • Pronto, perfeito.

  • Aqui está o teste que fiz antes.

  • Mas, como você pode ver, estou usando meu dedo, então ele ainda reconhece a entrada do dedo, o que é ótimo.

  • Eu também poderia usar o mouse se quisesse.

  • Mas conseguimos criar alguns pincéis personalizados exclusivos para Android.

  • Como vocês podem ver, selecionei esse efeito de arco-íris e glitter, então nossa entrada ou nossos efeitos de tinta serão afetados pela biblioteca Jetpack Ink.

  • Então, vou escrever minha mensagem mais uma vez.

  • Olá.

  • E, por fim, vamos escolher o verde do Android para a última parte.

  • É difícil tocar corretamente.

  • Pronto, verde do Android.

  • E as cores mudam dependendo da cor que você tem como modelo de base aqui.

  • Perfeito.

  • No passado, para criar esse tipo de pincel, levávamos meses para acertar todos os sombreadores personalizados, a interface e tudo mais.

  • Agora, graças ao Jetpack Ink, isso pode levar menos de uma semana com a IA e o criador de pincéis personalizados.

  • Se você estiver procurando qualquer tipo de tatuagem, fale com eles.

  • É uma API excelente que nos poupou muito tempo.

  • Perfeito.

  • Como mencionei antes, é mais ou menos assim que funciona.

  • Temos o que chamamos de camada de tinta fresca.

  • Essa é a tinta em andamento, que ainda está sendo desenhada e precisa ser super, super responsiva, sabe, em comparação com uma camada de tinta seca.

  • Isso faz sentido do ponto de vista físico, você pode pensar nisso.

  • Essa é a tinta salva, já finalizada.

  • Então, a transferência costumava ser totalmente nossa.

  • Então, tivemos que fazer essa linha de execução, tivemos que fazer um redesenho e uma limpeza, tivemos que entregar para uma camada seca e garantir que elas fossem sincronizadas e não piscassem, e houve todas essas complicações.

  • E, no final, tivemos que aplicar o que é exclusivo do Notability, certo?

  • Temos nossos próprios modelos de ajuste de curva, temos maneiras de realmente destacar sua escrita.

  • Esse era o modelo antigo.

  • Graças ao Jetpack Ink, tudo o que precisamos fazer é alimentar o ajuste de curva na visualização de formas de progresso personalizadas, e tudo funciona como mágica no Android.

  • Outra coisa que estamos considerando, ao discutir o Jetpack Ink e outras bibliotecas do Google, é o KMP.

  • Então, começamos analisando o código do iOS, que já estava pronto, e pensamos: "Ok, gostaríamos de compartilhar parte da lógica entre o Android e o iOS.

  • Temos modelos, mudanças e matemática complicada.

  • Faz sentido compartilhar."

  • E pensamos: "Ei, C++, sabe, o Objective-C da Apple, vamos por esse caminho".

  • Descobrimos que o Kotlin Multiplatform não só era mais fácil de implementar para nossos engenheiros de iOS, mas também mais rápido.

  • Além de termos um desempenho melhor com o Kotlin e podermos copiar grande parte do código do Android, também foi mais fácil para o iOS a longo prazo.

  • Se você quer compartilhar código, recomendo que conheça o Kotlin Multiplatform.

  • No momento, ainda estamos avaliando o caso.

  • Ainda não é 100% compatível, porque, como você sabe, diferentes modelos de IA facilitam um pouco a trapaça com códigos em vários lugares, mas ainda é algo que estamos investigando ativamente e que eu acho muito importante.

  • Agora, vamos falar de um recurso especial do Notability.

  • Se você tentar criar um editor de texto funcional no Android, vai perceber que não há uma boa maneira de criar um editor de texto para documentos grandes no momento.

  • Os campos de entrada de edição básicos do Android são todos sobre interfaces menores, pequenos EditTexts, coisas de formato curto.

  • O que acabamos criando foi um sistema muito complicado que basicamente fica sobre as APIs do Android, mas que consegue lidar com documentos muito maiores, com milhares de páginas de texto, tudo ao mesmo tempo, que podem ser editados em conjunto. Assim, um usuário pode estar editando 500 páginas de distância de você, o que causa mudanças que afetam seu trabalho enquanto você o faz.

  • E a maneira que encontramos para fazer isso é basicamente fazer com que as teclas pressionadas sigam dois caminhos.

  • O primeiro caminho é: "Este é o nosso melhor esforço, essa chave deve aparecer aqui".

  • Achamos que isso é bom, com base em tudo o que podemos dizer agora sobre como tudo parece por baixo.

  • Depois, fazemos uma sincronização rápida, certo?

  • Vamos ao back-end, verificamos nossos cooperadores e perguntamos: "Está tudo bem?

  • Isso faz sentido?

  • Tudo certo?"

  • E se as coisas precisarem mudar, ele se reajusta nesse momento.

  • Se dois usuários estiverem na mesma linha digitando ao mesmo tempo, vai ser difícil entender quem está fazendo o quê.

  • Mas, na maioria das vezes, isso funciona muito bem.

  • Estou mencionando isso aqui porque é um trabalho enorme que estamos fazendo e estamos considerando torná-lo de código aberto.

  • Se alguém aqui na conferência ou on-line quiser colaborar com isso e achar que é uma boa ideia, entre em contato.

  • Estamos debatendo se realmente vale a pena investir nisso, mas, sabe, tem sido um grande empreendimento da nossa parte, e estamos muito orgulhosos dos resultados.

  • Certo, e é assim que a tinta funciona.

  • Em termos de modelo de colaboração, isso é um pouco mais direto sobre como funciona para nós.

  • Como você pode ver aqui, há três etapas.

  • Há o touchdown, em que dizemos "Ei, estamos iniciando um evento de tinta" para qualquer um dos nossos dispositivos conectados, que, neste caso, é um iPad.

  • Depois, há o desenho real, que pode ter de um a milhões de eventos, dependendo de quanto tempo o usuário mantém o dispositivo, ou seja, a caneta girando.

  • Espero que não demore muito.

  • Acho que há um limite em algum momento, mas, para casos de uso normais, é bem tranquilo.

  • E há um evento de aumento.

  • Para gerenciar isso, temos um objeto temporário que mantemos no modelo.

  • Isso significa que, no iPad, dizemos: "Ok, há um tipo de traço chegando, mas ele ainda não está aqui.

  • Não podemos interagir com ele.

  • É efêmero."

  • E só quando esse evento de conclusão é iniciado, dizemos: "Ok, legal.

  • Agora, substitua tudo por um objeto que o iOS ou qualquer outro cliente possa pegar e interagir."

  • E também estamos pensando em abrir o código-fonte disso.

  • Isso não é, sabe, nossa escrita direta, mas algumas das coisas transitórias, especialmente na camada de texto.

  • Ótimo.

  • E, sim.

  • Outras coisas que recomendamos usar.

  • A IA no dispositivo é ótima.

  • Nós o usamos para digitalizar documentos, analisar textos em PDF e reconhecer escrita à mão.

  • Também usamos modelos de IA do Google Cloud de nuvem aberta, como o Gemini, para gerar as Notas Inteligentes, em que as notas dos usuários são categorizadas, resumidas e devolvidas de maneiras melhores e mais interativas para o modelo de aprendizado.

  • E tudo isso junto faz com que o Notability pareça um aplicativo para laptop, certo?

  • Esse é o objetivo final.

  • Temos todos esses modelos diferentes e interessantes, coisas diferentes, texto, entradas, mas o importante é: isso parece um aplicativo de laptop ou parece que você abriu um app Telefone na tela grande e está mexendo nele?

  • O teclado, o trackpad, a stylus, o redimensionamento de janelas, todos esses são recursos importantes para garantir que os usuários tenham uma boa experiência.

  • Mas, como mencionei antes, o Jetpack Compose, o Navigation 3 e o Material Design cobrem tudo isso.

  • Portanto, não é um grande esforço se você fizer as coisas da maneira certa.

  • É bem fácil chegar aqui.

  • Então, sim.

  • Essas são as principais conclusões.

  • Quando você pensar no Android no futuro, não pense mais em dispositivos.

  • Não pense em "este é um smartphone, este é um dobrável, este é um dispositivo XR, este é um computador ou laptop, ou um tablet, ou um carro, ou uma TV".

  • Em vez disso, é: "Qual é o tamanho de tela disponível para mim e quais são os modais de entrada disponíveis para meus usuários?"

  • E vamos oferecer a melhor experiência possível para quem seguir em frente.

  • Como mencionei no slide anterior, o Compose e o Nav 3 facilitam muito esse suporte.

  • E o Google lança todos os dias APIs novas e muito eficientes, como o Jetpack Ink ou o Gemini no dispositivo, além de vários outros recursos que facilitam a criação das experiências principais para que você possa se concentrar no que torna seu app único.

  • Ok.

  • É isso.

  • Muito obrigado.

  • Essa é minha palestra.

  • Vou estar disponível mais tarde se você tiver dúvidas, ou, se preferir, entre em contato com o Notability.

  • O app é novo no Android, foi lançado há uns dois meses.

  • Finalmente saímos da versão Beta.

  • Então, fique à vontade para testar.

  • Envie seu feedback.

  • Ele também está disponível no Google Livros no processo de demonstração atrás de você.

  • Agora, vou passar a palavra para Joe, da Logitech.

  • Nossa equipe agradece.

Lançamento do Logitech Options+ para Googlebook

  • Certo.

  • Obrigado, Ryan.

  • Hoje, ok, desculpe.

  • Vamos trazer nosso slide, tudo bem.

  • Obrigado, Ryan.

  • Hoje, vou compartilhar como trouxemos o Options+, um app de personalização de periféricos, para os Chromebooks.

  • E o que significa criar uma experiência periférica?

  • Vou falar sobre o que criamos, alguns destaques de engenharia por trás disso, sem pontos negativos, e para onde vamos em seguida.

  • Os dispositivos Logitech já funcionavam com o Android, e a maioria dos usuários descobriu que os periféricos melhoram a acessibilidade, especialmente com laptops premium e smartphones conectados a monitores externos.

  • Falando nisso, lá embaixo, no estande de demonstração do Googlebook, eles conectaram um câmbio sequencial de jogos da Logitech à mesa e usaram isso para alternar entre diferentes telas no tablet.

  • Aqui está.

  • Essa é uma maneira de usá-lo.

  • Ah, a propósito, a Ferrari teve que cobrar 50.000 euros extras pela sequen- Enfim.

  • Sim.

  • No Googlebook, como o Ryan mencionou de forma bem abrangente, temos muito mais espaço para trabalhar.

  • Como você pode ver, é possível redimensionar as telas, em paisagem, retrato ou quadrado, se quiser, e você tem muito mais espaço para trabalhar entre os apps.

  • Você pode continuar o que está fazendo, usar apps diferentes, mudar de contexto e tudo mais.

  • Isso certamente mudou o design de apps, e os layouts precisam continuar úteis durante todo o processo.

  • Para nós, da Logitech, isso é muito interessante porque somos uma empresa com muita experiência em periféricos, certo?

  • Temos uma base muito sólida para esse trabalho.

  • Então, do nosso ponto de vista, para esse tipo de ambiente de trabalho, o mouse ou o teclado é como o usuário interage durante o dia de trabalho.

  • Eles podem entrar no fluxo de trabalho com muita facilidade.

  • E não é exagero dizer que a Logitech traz décadas de experiência para esse trabalho.

  • Acho que completamos 45 anos no início deste mês.

  • E acho que estamos construindo mouses desde o segundo dia, segundo ano da Logitech.

  • Com esse tipo de experiência, estamos muito confiantes para entrar nessa área.

  • E o melhor é que temos um ótimo legado com o ChromeOS.

  • No passado, garantimos uma compatibilidade de alto nível com o ChromeOS.

  • Agora, com tudo isso dito, temos uma experiência prática muito boa que quebra a barreira entre o hardware que criamos, o software que desenvolvemos e a plataforma, o SO, os Googlebooks.

  • Por exemplo, um usuário pressiona um botão e vê um resultado previsível.

  • É quase como se vocês não dessem valor a isso.

  • Mas, na verdade, eles exigem compatibilidade perfeita entre os componentes.

  • Além disso, todo mundo adora compatibilidade com os periféricos.

  • Por exemplo, ajustar a sensibilidade deles.

  • 65, nem mais, nem menos.

  • Portanto, tudo isso requer uma integração de compatibilidade muito boa e perfeita entre esses três elementos.

  • Agora, com o lançamento do Googlebooks, enviamos o Options+ para o Googlebooks.

  • No momento, oferecemos suporte a uma variedade de mouses e teclados, e mais opções serão adicionadas em breve.

  • E é aqui que o usuário pode configurar os dispositivos.

  • E, como mencionei antes, como sensibilidade, todo esse tipo de coisa.

  • Agora, a cena está ficando interessante.

  • Quando falamos sobre configurabilidade, estamos falando de dois lados.

  • Um lado é o hardware, o lado do firmware, em que os recursos são implementados no nosso firmware.

  • O outro lado é o ponto principal desta demonstração e desta apresentação: o lado do SO.

  • Acho que todo mundo aqui sabe que, no passado, os dispositivos Android e a maioria dos apps ficavam em um sandbox próprio, em espaços do usuário.

  • Há certas limitações sobre o que você pode fazer e, em muitos casos, o que você não pode fazer e o que você quer.

  • Para nós, isso é extremamente importante.

  • Aqui está uma captura de tela. Vamos fazer uma demonstração mais tarde, mas aqui está uma captura de tela.

  • Temos um mouse aqui, o MX Master 4, e temos muitas funções aqui.

  • E para quem conhece o mundo dos periféricos, é possível reconhecer que certos recursos são muito implementados no firmware e no dispositivo.

  • E outras, certamente não.

  • E, para nós, o que estamos fazendo é tentar permitir que o usuário tenha a capacidade de configurar os dois lados.

  • Nosso trabalho é, basicamente, tornar essas opções compreensíveis e oferecer capacidade total ao usuário, além de configurar corretamente essas coisas para o SO e o firmware.

  • Agora, vamos fazer uma demonstração rápida.

  • Essa foi uma demonstração muito impressionante.

  • Mas da próxima vez, Ryan, use o mouse.

Demonstração ao vivo do Options+

  • Vamos lá.

  • Esta é a tela do meu dispositivo.

  • Como você pode ver, tenho um mouse MX Master 4 integrado, este aqui.

  • Então, vamos lá.

  • Vamos direto para a tela de configuração, como você viu antes, e é aqui que a mágica acontece.

  • Agora, vamos escolher o Circule para Pesquisar para o botão de polegar.

  • Em seguida, vamos colocar o Cursor Mágico no botão de recurso.

  • Vamos lá.

  • Vamos abrir um navegador.

  • Chegar aqui.

  • Aqui, pressiono o botão do polegar, que acabei de atribuir ao Circule para Pesquisar.

  • Como você pode ver, circulei um teclado.

  • Voilá!

  • O Google só mostra as informações sobre esse teclado.

  • É muito prático e suave.

  • Agora, vamos tentar algo diferente.

  • Ah, desculpa.

  • Vou voltar um pouco.

  • Vamos testar o Cursor Mágico.

  • Vamos ativar essa opção.

  • Posso pressionar o botão de recurso, marcar isso e pressionar "O que é este dispositivo?"

  • Pronto.

  • O Google vai iniciar a pesquisa e mostrar os resultados.

  • O bom disso é que você integra todo o fluxo de trabalho em uma única operação.

  • Você atribui recursos, pressiona, circula, clica e pronto.

  • Por isso, acreditamos que esse tipo de operação vai melhorar muito a acessibilidade dos usuários e a forma como eles trabalham.

  • Agora, vamos voltar aos slides.

Visão geral da API de personalização de periféricos

  • Então, você pode perguntar o que fez aquilo acontecer.

  • Porque muitas coisas do passado simplesmente não podem ser feitas por apps.

  • Aqui, tcharam, a API Peripheral Customization, que está disponível nos Googlebooks e em dispositivos Android.

  • No entanto, aqui estão as notas do Google.

  • No momento, essa API está em uma lista de permissões.

  • Mas o lançamento está planejado para o quarto trimestre de 2026, que é este trimestre, junto com as atualizações do Android.

  • Então, quando for lançado, acho que os desenvolvedores do mundo todo vão poder usá-lo.

  • Agora, vamos entrar um pouco no lado técnico.

  • Há três componentes principais: um dispositivo, um acionador, que pode ser uma tecla ou um botão, e uma ação, que ocorre no SO do app.

  • Agora, vamos dar uma olhada rápida neste snippet de código.

  • Na parte de cima, definimos um dispositivo usando o ID do fornecedor e o ID do produto.

    // Vendor and product Information
    const val VENDOR_ID = 1234
    val pid = 123
    
    // Use the mouse Middle Button as the trigger
    val trigger = ButtonCustomizationTrigger(MotionEvent.BUTTON_TERTIARY)
    
    // Set Voice Assistant as the action
    val actionBuilder = AppCustomizationAction.Builder(component, ACTION_MAIN)
    actionBuilder.setData(ActionId.ACTION_VOICE_ASSIST.actionId) // Action IDs are predefined
    val action = actionBuilder.build()
    
    val im = context.getSystemService(INPUT_SERVICE) as InputManager
    im.addPeripheralCustomization(VENDOR_ID, pid, trigger, action)
  • Normalmente, chamamos isso de vid e pid.

  • Mais abaixo, começamos a definir um acionador.

  • E aqui, como você pode ver, queremos usar o botão do meio como acionador.

  • E aqui, queremos mapear esse botão do meio para a parte do assistente por voz do recurso do SO.

  • Certo?

  • Temos um actionBuilder aqui, de AppCustomizationAction, e aqui.

  • Mais abaixo, registramos esse mapeamento entre o produto, o dispositivo, o acionador e a ação.

  • O código real é um pouco mais complicado do que isso, mas o conceito geral é esse.

  • Muito simples e fácil de usar.

  • Agora, vamos falar de outro recurso muito legal e interessante.

  • Coloquei um arquivo GIF aqui para facilitar a visualização.

  • Basicamente, quando um dispositivo compatível, neste caso, um mouse Logitech Mobifold, é conectado, o SO aciona uma notificação padrão para informar que há um app para ele.

  • Informe ao usuário, é claro.

  • Ao clicar nele, você vai ser direcionado para a Google Play Store e poderá instalar o app.

  • Isso é chamado de descoberta de pareamento rápido.

  • Por fim, vamos para a interface.

  • O Ryan já falou de muitas coisas legais do Googlebook sobre como criar interfaces, então vou passar por isso bem rápido.

  • Como você pode ver, o Options+ funciona em diferentes plataformas, no nosso caso, Windows, Mac e agora Googlebooks.

  • Então, temos dois objetivos: primeiro, queremos que ele pareça específico para cada plataforma, mas, ao mesmo tempo, queremos que ele seja semelhante em todas elas. Isso significa que, depois de se familiarizar com o Options+ em uma plataforma, você poderá usá-lo sem problemas em outra.

  • Isso significa que queremos aproveitar as vantagens dessas plataformas específicas, mas, ao mesmo tempo, usar a mesma linguagem de design.

  • Como você pode ver, a linguagem de design é consistente em todo o sistema.

  • Como já mencionamos, os usuários do Googlebook tendem a usar o dispositivo como um laptop/computador.

  • Então, é claro que o app em si, mesmo no Googlebook, parece um app para computador.

  • Assim, o app pode se comportar como um app para computador e funcionar bem em diferentes tamanhos de janela, toques e, claro, você pode controlar o uso do mouse e do teclado.

Roteiro futuro e conclusão

  • Essa é uma história rápida e uma versão curta da história dos periféricos da Logitech e do Options+ no Googlebook.

  • E funciona muito bem.

  • No entanto, estamos apenas começando.

  • Temos algumas etapas: primeiro, queremos levar essa experiência para mais dispositivos, teclados, mouses e outros periféricos. Além disso, queremos refinar o app usando o feedback de usuários reais.

  • E, claro, o mais importante é que vamos trabalhar com o Google no futuro e nos integrar ainda mais às novas plataformas.

  • Portanto, nosso objetivo final é tornar a personalização de periféricos uma experiência muito, muito natural ao usar o Googlebook e ajudar as pessoas a trabalhar da maneira que quiserem.

  • Okie-dokie.

  • Não deixe de conferir nossos estandes no andar de baixo e testar o Options+ e os fantásticos dispositivos Logitech.

  • Agradecemos ao Google pela parceria e a todos vocês pelo tempo.

  • Muito obrigado.

Código

Snippets de código

Snippet em Kotlin aos 26:16 em "Visão geral da API de personalização de periféricos"
// Vendor and product Information
const val VENDOR_ID = 1234
val pid = 123

// Use the mouse Middle Button as the trigger
val trigger = ButtonCustomizationTrigger(MotionEvent.BUTTON_TERTIARY)

// Set Voice Assistant as the action
val actionBuilder = AppCustomizationAction.Builder(component, ACTION_MAIN)
actionBuilder.setData(ActionId.ACTION_VOICE_ASSIST.actionId) // Action IDs are predefined
val action = actionBuilder.build()

val im = context.getSystemService(INPUT_SERVICE) as InputManager
im.addPeripheralCustomization(VENDOR_ID, pid, trigger, action)