Google IO'17

45
Google IO '17 @SuelenGC

Transcript of Google IO'17

Page 1: Google IO'17

Google IO '17

@SuelenGC

Page 2: Google IO'17

155 sessões, 100 office hours, 85 code labs e 19 sandboxes

Page 3: Google IO'17

Overview Geral do IO

Page 4: Google IO'17

Inteligência Artificial

Foi um dos grandes temas da conferência. Todos os produtos da Google estão utilizando algum tipo de camada de inteligência artificial agora e vão usar cada vez mais no futuro.

Page 5: Google IO'17

Inteligência Artificial

• Iniciativa Google.IA para compartilhar documentos de pesquisa, ferramentas e diversos outros tópicos sobre inteligência artificial.

• Segunda geração do Tensor Processing Units (TPU), um processador projetado especificamente para aprendizado de máquina utilizado principalmente no produto Tensor Flow.

• Com esse novo parque de equipamentos a Google espera conseguir entregar 180 teraflops de performance.

• A Google está efetivamente transformando sua plataforma de computação em nuvem para dar total suporte a Inteligência Artificial (https://blog.google/topics/google-cloud/google-cloud-offer-tpus-machine-learning/)

Page 6: Google IO'17

Google Assistent & Google Lens

• Teve melhorias significativas.

• O Google Assistent começou no celular Pixel mas agora já está em mais de 100 milhões de dispositivos Android.

• A nova versão do assistente agora pode analisar o mundo à sua volta com a ajuda da câmera do smartphone e a tecnologia Google Lens. O assistente irá analisar o seu entorno e exibir conteúdo relevante em sua tela.

• Será possível ver a classificação de um restaurante ao direcionar a câmera do telefone para ele, apontar para uma flor e identificar a espécie, ou até encontrar a música de uma banda ou vídeos apontando Lens para um cartaz de show.

• Outro exemplo apresentado foi reconhecer as credenciais de login WiFi em uma imagem e o assistente usar essa informação para fazer login na rede.

Page 7: Google IO'17

Google Assistent & Google Lens

• Além disso, novos recursos estão tornando o assistente mais conversacional:• Outros idiomas estão sendo incorporados a plataforma (inclusive o Português);• Agora é possível pode digitar sua consulta em vez de dizê-lo em voz alta;• O Google Assistent está sendo lançado também para a plataforma iOS (uma

alternativa ao Siri);• É possível usar o Google Assistent para enviar dinheiro para outras pessoa

(inclusive dentro de um chat);• Integração com o Google Home, smartwatchs e outros devices;• Disponibilização do Google Assistent SDK.• https://blog.google/products/assistant/your-assistant-getting-better-on-google-home-

and-your-phone/

Page 8: Google IO'17

Google Home v2

• Chamadas telefônicas gratuitas para os Estados Unidos e Canadá. Por padrão, o Google irá usar um número privado para esse recurso - mas você tem a opção de vinculá-lo ao seu próprio número de telefone celular (similar ao que já faz o Amazon Echo);

• Integração com HBO Now, Hulu, SoundCloud, Deezer e outros;

• Mais proativo (utilizando inteligência artificial) para sugerir algo;

• Respostas visuais integração com smart TVs ou Chromecast. Exemplos:

• "OK Google, mostre o meu calendário para hoje" e o Google Home pode exibir instantaneamente os eventos do seu dia em uma TV conectada ao Chromecast.

• Peça ao Google Home para obter instruções sobre um local ou evento e enviará as direções diretamente para o aplicativo do Google Maps em seu telefone.

Page 9: Google IO'17

Google Photos

• O Google Photos recebeu uma série de novos recursos.

• Compartilhamento de álbuns.

• Sugestão de compartilhamento de fotos com pessoas que aparecem nas fotos (utilizando reconhecimento facial).

• Compartilhamento automático de fotos (também utilizando reconhecimento facial).

• E no futuro irá permitir a remoção de itens indesejados das fotos como, por exemplo, uma grade que atrapalha a imagem onde aparece de uma pessoa ao fundo.

• Também foi lançado uma feature para impressão de fotos (entrega em domicílio).

Page 10: Google IO'17

Android O

• O lançamento da versão beta do Android O ocorreu durante o evento.

• Foi revelado que a contagem de dispositivos ativos do Android ultrapassa 2 bilhões.

• A nova versão do Android tem as principais características com foco em segurança, otimizações (de consumo de bateria) e ferramentas para desenvolvimento. Para isso criaram a iniciativa Android Vitals https://developer.android.com/topic/performance/vitals/index.html.

Page 11: Google IO'17

Android Go

• Mirando no próximo bilhão de usuários on-line para a plataforma, está sendo desenvolvida a versão Android Go. Que tem como objetivo conseguir funcionar em celulares com poucos recursos e deverá ser lançada em 2018.

• O Android Go aceita apps pequenos e será voltado principalmente para devices de até 1GB de RAM.

• Android for Entry-Level Devices https://www.youtube.com/watch?v=CHKfKChZSE0

Page 12: Google IO'17

Outras Novidades

• Também ocorreram algumas outras novidades, como YouTube 360, nova versão do Google Tango e o lançamento do Google for jobs.

• No geral o Google I/O 2017 foi bem denso em conteúdo. Ocorreram 155 sessões, 100 office hours, 85 code labs e 19 sandboxes

Page 13: Google IO'17

Inteligência Artificial

Page 14: Google IO'17

API.AI

• Em 2016 a Google adquiriu a Api.ai (https://api.ai) uma plataforma de conversação, que facilita a criação de bots, incluindo compreensão de linguagem natural em diversos idiomas e aprendizado de máquina.

• A plataforma evoluiu e agora disponibiliza um SDK bem evoluído que facilitar integração.

• https://developers.google.com/actions/apiai/

• https://developers.google.com/actions/apiai/tutorials/getting-started

Page 15: Google IO'17

Tensor Flow• Diversos produtos do Google utilizam TensorFlow, incluindo Search, Gmail, Translate, Maps, Android, Photos, Speech, YouTube, Play e muitos outros.

• O foco no Tensor Flow esta bastante elevado:

• Ocorreram mais de 17500 commits desde Nov 2015;

• +475 contribuidores não-Google;

• +6400 repositorios com "TensorFlow" (no github);

• +5000 perguntas respondidas no Stack Overflow.

• O suporte a novas linguagens de programação foi incorporado ao Tensor Flow. Suportando agora Haskell, C++, Java, Python, Go, etc.

• Durante o evento foi anunciado o TensorFlow Lite uma versão do TensorFlow para mobile.

• https://www.tensorflow.org/get_started/

Page 16: Google IO'17

Cloud Tensor Processing Units (TPU)

Durante as sessões foi apresentado a Cloud TPU. Aparentemente bem poderosa, mas ainda na versão Alpha. A cloud pode se integrar com um conjunto de clusters heterogêneos, e diversas otimizações de performance para aplicações de machine learning já vem por padrão.

https://cloud.google.com/tpu/

https://www.tensorflow.org/performance/xla/developing_new_backend

https://www.tensorflow.org/performance/xla/

https://g.co/tpusignup

https://cloudplatform.googleblog.com/2017/04/quantifying-the-performance-of-the-TPU-our-first-machine-learning-chip.html

Page 17: Google IO'17

Machine Learning

Page 18: Google IO'17

Machine Learning REST APIs

• Cloud Vision API

• Cloud Speech API

• Cloud Natural Language API

• Cloud Translation API

• Cloud Video Intelligence

Page 19: Google IO'17

Machine Learning

• Cloud Vision API: Reconhecimento de faces, logo, emoções, pontos de interesse, labels, conteúdo explícito, etc. (cloud.google.com/vision)

• Cloud Speech API: Transcreve o que é dito.

• Cloud Natural Language API: extrai sentimentos, categorias, principais palavras de textos, como respostas abertas de questionários, etc.

• Cloud Translation API: Tradução contextualizada.

• Cloud Video Intelligence: Busca e marca pontos do vídeo que aparece determinada coisa.

• Machine Learning By Examples (Google IO’17): https://www.youtube.com/watch?v=ETeeSYMGZn0

Page 20: Google IO'17

Android

Page 21: Google IO'17

Kotlin

• O principal novidade sobre a plataforma Android foi o suporte a linguagem de programação Kotlin.

• https://android-developers.googleblog.com/2017/05/android-announces-support-for-kotlin.html

• https://kotlinlang.org/

• Introduction to Kotlin (Google I/O '17) - https://www.youtube.com/watch?v=X1RVYt2QKQE

Page 22: Google IO'17

Kotlin

• O suporte oficial a linguagem Kotlin está disponível no Android Studio a partir da versão 3.0.

• A equipe de desenvolvimento do Android Studio é a mesma do Kotlin. Facilitando assim a implementação de features como copiar um trecho de código Java e colar como um trecho de código Kotlin e vice e versa.

• Aplicativos como Pinterest, Flipboard e Expedia já migraram para Kotlin.

• Diversas novas features do Java 8 foram incorporadas ao Android, incluindo java.time, java.nio.file, java.lang.invoke e muitos outras.

Page 23: Google IO'17

Novidades no Android O

• Suporte a fonts no XML. Podendo carregar tanto do código quanto do XML (já esta em beta);

• TextView com Auto-Sizing;

• Adaptative icons;

• Fim da necessidade de cast do findViewById;

• Castaway, não mais cast com findViewById

• Lançamento do Google Play Protect;

• https://www.android.com/play-protect/

• https://blog.google/products/android/google-play-protect/

• Melhorias no gerenciador de dependências;

• Mudanças nas solicitações sobre locations & scan WIFI pelos apps com objetivo de melhorar o consumo de bateria;

Page 24: Google IO'17

Novidades no Android O

• Novas restrições a serviços que rodam em background com objetivo de reduzir o consumo de bateria;

• AlarmManager, SyncAdapter e JobScheduler ainda não possuem limitação nesta API;

• SYSTEM_ALERT_WINDOW agora é ordenado de acordo com o app em foreground;

• APK Analyser: Otimizador de APK com objetivo de diminuir o tamanho dos APKs (divulgado no ano passado este ano teve muitas melhorias);

• Suporte WebP;

• Android Vitals (https://developer.android.com/topic/performance/vitals/index.html)

• No futuro (ainda está em review) o usuário poderá definir o limite de agressividade do app no consumo de bateria - podendo facilmente pausar serviços em background. Deverão ser incorporados limites para consumo de bluetooth, wifi, etc

Page 25: Google IO'17

Android Studio 3.0

A versão 3.0 do Android Studio recebeu uma série de melhorias:

• Incorporação de profilers: CPU, Memória e Rede;

• Com o Network Profiler é possível analisar e investigar cada request individualmente;

• Com o Memory Profiler é possível acompanhar a alocação de memória feita pelo app ao longo do tempo. Facilitando a identificação de pontos de alto consumo de memória ou mesmo leaks de memória.

• Com o Rede Profiler é possível ver toda a request, inclusive HEAD e BODY de dentro do Android Studio.

• Melhoria significativa no tempo de build do app;

• Android Debug APK para debugar o código de bibliotecas usadas no app;

• Google Play Store voltou ao Android Emulator.

• https://android-developers.googleblog.com/2017/05/android-studio-3-0-canary1.html

Page 26: Google IO'17

Notificações Android

• Ocorreram mudanças significativas no modelo de notificações no Android O. Antes de apresentar as mudança, tanto de comportamento quanto de usabilidade, foram apresentados dados e resultados de uma grande pesquisa que conduziram sobre notificações.

https://android-developers.googleblog.com/2017/05/whats-new-in-android-o-developer.html

Notifications UX: What's New for Android O (Google I/O '17) https://www.youtube.com/watch?v=vwZi56I0Mi0

• O novo modelo de notificações tem como base entender o que é prioridade para o usuário e qual é o melhor momento para ele receber a notificação.

• O principal componente do novo modelo são os channels os quais possuem níveis de prioridade (Min, Low, Default e High). Os channels e seus níveis de prioridade serão utilizados para definir quando e como uma notificação será apresentada para o usuário.

Page 27: Google IO'17

System Notifications Settings for an App

• O usuário poderá definir quais notificações deseja continuar recebendo, de determinado aplicativo, e quais serão as prioridades para cada tipo de notificação. Desta maneira, todos os desenvolvedores (ou fornecedor) de aplicativos serão obrigados a implementar suporte a configurações de notificações por channel (ou as notificações serão removidas na versão 11).

• A apresentação das notificações também será atualizada. Existirá uma hierarquia visual, onde o mais crítico vai aparecer no topo. Notificações poderão aparecer em uma single line se tiverem prioridade inferior às demais.

• Caso o usuário tenha muitas notificações pode gerar um "scroll de notificações". Sendo que durante o scroll os ícones dos aplicativos acabam fornecendo uma relevância adicional para notificações.

• Outra característica é que notificações poderão ser postergadas. Por exemplo adiar 1 hora. Se for postergado mais do que X vezes as notificações não serão entregues mais.

• Do ponto de vista do Firebase/GCM existem dois níveis de prioridade agora: High Priority e Normal Priority.

Page 28: Google IO'17

Instant App

• Diversas palestras sobre Instant App foram apresentadas durante o evento e sua adoção foi encorajada durante as sessões.

• O suporte a Instant App foi oficializado no Android Studio 3.0.

• Zillow, CastBox, Twitter e outras empresas apresentaram casos sobre o uso de Instant App.

• https://developer.android.com/topic/instant-apps/index.html

• Introduction to Android Instant Apps (Google I/O '17) https://www.youtube.com/watch?v=oispNrpGnIY

• Building an Android Instant App (Google I/O '17) https://www.youtube.com/watch?v=9Jg1D07NgeI

• Android Instant Apps Best Practices Fireside Chat (Google I/O '17) https://www.youtube.com/watch?v=F42Rbi3WIlA

Page 29: Google IO'17

Melhores Práticas para Apps

• Fluxos críticos no mobile, como logins, pagamentos e outros formulários foram temas explorados no evento. Autofill, Smart Lock e Backup and Restore foram apresentados com o intuito de auxiliar o tratamento destes fluxos críticos.

• Best Practices to Improve Sign-In, Payments, and Forms in Your Apps (Google I/O '17) https://www.youtube.com/watch?v=oZxwTiMH0FM

Page 30: Google IO'17

Android Autofill

• O suporte ao Android Autofill foi incorporado ao Android O e já é usado por alguma empresas (Keeper, LastPass, iPassword, dashlane, etc).

• O Autofill permite que os usuários economizem tempo preenchendo os formulários usando o preenchimento automático em seus devices em apps nativos.

• O Android O torna mais fácil o preenchimento de formulários de cartões de crédito e de contas.

• Na prática o Autofill Framework gerencia a comunicação entre o aplicativo e um serviço de preenchimento automático.

• A recomendação oficial é otimizar os apps para utilizar Autofill. • https://developer.android.com/preview/features/autofill.html

Page 31: Google IO'17

Android Smartlock for Password

• Ao utilizar Smart Lock for Passwords no app é possível logar automaticamente os usuários usando as credenciais previamente salvas.

• É possível salvar tanto as credenciais de username e senha quanto as credenciais de identidade. • As credenciais podem ser salvas durante o processo de login usando Crentials API. A experiência

para o usuário final, quando corretamente implementado, fica bem fluida. • https://developers.google.com/identity/smartlock-passwords/android/

• Diversos exemplos de empresas que usam Smart Lock: https://g.co/SmartLockCaseStudies

• O Pinterest afirmou que o uso do Smart Lock melhorou significativamente seus apps.

• https://developers.google.com/identity

• https://developers.google.com/identity/smartlock-passwords/android/overview • https://developers.google.com/android/reference/com/google/android/gms/auth/api/credentials/

package-summary

Page 32: Google IO'17

Android Auto Backup

• É possível utilizar os serviços de backup e restore sem depender de contas do Google

• https://developer.android.com/guide/topics/data/autobackup.html

• https://developer.android.com/guide/topics/data/keyvaluebackup.html

• Documento com links sobre Autofill, Smart Lock e Auto Backup: https://docs.google.com/document/d/15Krx0ml8qRPH5RfzgabHUYd3UqUOE11wYfOJ2PPb5QI/pub

Page 33: Google IO'17

Android Wear 2.0

• Google Assistant available.

• Will be integrated to Google Home.

• It is possible to custom the data showed on watchface (Android Wear Complication API)

• Provide a design guide and core APIs.

• Play Store direct on watch

• Many updates in notifications.

• All other than forground apps are considered idle and are disabled.

• Location updates were limited to some in an hour.

Page 34: Google IO'17

Android Wear 2.0

• The key to save battery on watch is the display as shown in image about consumption battery with different uses of display (off display, on and interactive, animations).

• To improve: use dark themes, animations are expensive, so don't use it. Avoid background sync. Batch data transfer once a day is better than a lot of little packages data and do it over wifi because bluetooth is so much more battery expensive. Vibration, location and music is also expensive.

• Android Wear: What's new & Best Practices (Google IO’17) https://www.youtube.com/watch?v=97U6W-5iF_o

Page 35: Google IO'17

Outras novidades

• Improvements on design and Constraint Layout 2.1

• Added sample resource file to see lists in development time like will be at runtime.

• Download fonts in development time too.

• Device explore option to navigate into device directories from Android Studio.

• Refactors tools to organizing your code into features packages.

• Android Debug APK

• Google maven repo (no more maven repo at manifest or build.gradle)

• Parallel build.

• Simulador voltou a ter Google Play Store

• Updates to APK AnalyzerS

Page 36: Google IO'17

Web

Page 37: Google IO'17

Progressive Web Pages (PWA)

• Durante diversas sessões os palestrantes incentivaram fortemente o uso de AMP (Accelerated Mobile Pages (https://www.ampproject.org/pt_br) e PWA. Além de reforçarem que Mobile Web é mainstream.

• Um Product Manager do Twitter apresentou casos de sucesso com PWA. Onde seu uso incrementou 65% de pages/sessions e 75% mais tweets.

• Forbes, Expedia, Pinterest, Lyft, Airbnb, Trivago, Lacôme, entre outros já utilizam PWA's. Sendo que a Lacôme teve um incremento de 53% de tempo de sessão após a adoção da tecnologia.

Page 38: Google IO'17

Progressive Web Pages (PWA)

• O Trivago pergunta se o usuário deseja adicionar um atalho na home (apresentando de maneira idêntica a um app aplicativo nativo).

• O Head de Web Products do Olacabs (https://www.olacabs.com/) apresentou um caso de sucesso do uso de PWA (com web components). Sendo que atualmente o Olacabs tem mais de 1 milhão de corridas diárias, em mais de 110 cidades, com mais de 600 mil motoristas.

• A versão com PWA teve cerca de 30% mais conversão que o app nativo. 20% das reservas usando PWA foram de usuários que tinham desinstalado o app.

Page 39: Google IO'17

Web Payments

• Foram apresentados os casos de uso de Web Payments com Wego (https://www.wego.com/) e Kogan (https://www.kogan.com) focando no checkout na versão web mobile.

• Web Payments já esta pronto para utilização e diversas empresas já implementaram: Monzo, Kogan, Groupon, Nivea, Wego, Washington Post, Mobify, Shopify, WooCommerce, BigCommerce, WompMobile, Weebly, etc.

• O time do Alipay & Alibaba (https://www.alipay.com/webpay) apresentaram um caso de sucesso da utilização de Web Payments. A versão mobile web deles é a que melhor atende sua audiência global. Sendo que o Alipay possibilita a utilização de fingerprint (impressão digital) para autorizar uma compra.

• A integração de pagamento com Web Payments com PaymentRequest é feita de maneira simples utilizando uma API JavaScript cross-browser.

• Navegadores que tem suporte a API: Chrome, IE, Samsung Internet e, em breve, Firefox.

Page 40: Google IO'17

Web Payments

Por enquanto o número de parceiros de pagamento é limitado: PayPal, Samsung Pay e Alipay. Entretanto outras alternativas serão adicionadas em breve. O Android Pay chegará ao Brasil até o fim de 2017.

Continuando no tema foi apresentado o resultado de uma pesquisa sobre transações mobile. Cerca de 80% das transações de compra no mobile só possuem 1 produto. E apresentar a opção para o usuário "Buy Now" ao além de "Add to Cart" aumenta significativamente a conversão.

https://g.co/PaymentRequesgtGuide

https://g.co/PayAppIntegration

https://g.co/PaymentRequestCodeLab

Page 41: Google IO'17

V8

Foram apresentados diversos dados sobre a evolução da tecnologia V8 https://developers.google.com/v8/ e como essa evolução impacta positivamente o usuário final. Incluindo a redução do consumo de memória, a melhora na performance do setup inicial e as otimizações feitas em tempo de execução (JIT) para múltiplas execuções da mesma chamada.

• Tópicos recomendados para uma boa compreensão:

• Conhecer bem JavaScript é fundamental;

• Entender o comportamento entre uma execução e múltiplas execuções da mesma chamada em JS;

• TurboFan https://github.com/v8/v8/wiki/TurboFan

• Ignition Interpreter https://github.com/v8/v8/wiki/Interpreter

• Orinoco https://v8project.blogspot.com.br/2016/04/jank-busters-part-two-orinoco.html

• Speedometer 2 http://browserbench.org/Speedometer/

Page 42: Google IO'17

Outros tópicos relevantes

A ferramenta Lighthouse foi integrada ao DevTools do Chrome https://www.chromestatus.com/features

Lançamento do Polymer 2.0 p/ Web Components https://www.polymer-project.org/

https://developers.google.com/web/tools/lighthouse/

https://www.chromestatus.com/features

https://developers.google.com/web

http://bit.ly/pwa-media

Page 43: Google IO'17

Cloud + Firebase

Page 44: Google IO'17

Firebase

Diversas sessões sobre Firebase ocorreram durante o evento. Focando principalmente em Autenticação por número de telefone, hosting e realtime.

https://firebase.google.com/

Page 45: Google IO'17

Todas as sessões foram gravadas e disponibilizadas em:

https://events.google.com/io/schedule

Docs com EXATAMENTE essas informações: https://docs.google.com/document/d/1Kj8fDvu-

YCLG8AMXIWb6Ag24huj06zP5asze1ea-qKo/edit?usp=sharing