Google IO'17
-
Upload
suelen-carvalho -
Category
Technology
-
view
80 -
download
2
Transcript of Google IO'17
Google IO '17
@SuelenGC
155 sessões, 100 office hours, 85 code labs e 19 sandboxes
Overview Geral do IO
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.
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/)
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.
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/
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.
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).
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.
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
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
Inteligência Artificial
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
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/
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
Machine Learning
Machine Learning REST APIs
• Cloud Vision API
• Cloud Speech API
• Cloud Natural Language API
• Cloud Translation API
• Cloud Video Intelligence
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
Android
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
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.
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;
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
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
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.
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.
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
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
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
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
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
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.
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
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
Web
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.
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.
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.
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
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/
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
Cloud + Firebase
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/
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