<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0"><id>tag:blogger.com,1999:blog-596098824972435195</id><updated>2017-06-09T12:12:09.356-07:00</updated><category term="Google I/O" /><category term="apis" /><category term="open source" /><category term="Fridaygram" /><category term="chrome" /><category term="cloud" /><category term="app engine" /><category term="developer" /><category term="faster web" /><category term="android" /><category term="events" /><category term="html5" /><category term="cloud platform" /><category term="featured" /><category term="google io" /><category term="javascript" /><category term="analytics" /><category term="google apps" /><category term="weekly roundup" /><category term="Google" /><category term="mobile" /><category term="oauth" /><category term="maps" /><category term="java" /><category term="developers" /><category term="google code project hosting" /><category term="conferences" /><category term="games" /><category term="google summer of code" /><category term="youtube" /><category term="Who's at Google I/O" /><category term="bigquery" /><category term="google code" /><category term="googlenew" /><category term="hackathon" /><category term="podcast" /><category term="gwt" /><category term="opensocial" /><category term="api" /><category term="apps script" /><category term="security" /><category term="video" /><category term="#io14" /><category term="gdata" /><category term="gdl" /><category term="openid" /><category term="google+" /><category term="page speed" /><category term="python" /><category term="chrome web store" /><category term="chromium" /><category term="gmail" /><category term="google visualization api" /><category term="google web toolkit" /><category term="gsoc" /><category term="GDD11" /><category term="apps" /><category term="calendar" /><category term="gadgets" /><category term="social" /><category term="Firebase" /><category term="Udacity" /><category term="ajax" /><category term="contest" /><category term="dart" /><category term="devfest" /><category term="event" /><category term="google developer day" /><category term="google gears" /><category term="ios" /><category term="Google APIs" /><category term="coffee with a googler" /><category term="google data apis" /><category term="google storage" /><category term="googleio" /><category term="prediction api" /><category term="Project Tango" /><category term="ajax search" /><category term="code review" /><category term="develop" /><category term="google developer days" /><category term="#io15" /><category term="AdMob" /><category term="accessibility" /><category term="google apps marketplace" /><category term="google cast" /><category term="google chart api" /><category term="google compute engine" /><category term="linux" /><category term="performance" /><category term="speakers" /><category term="web performance" /><category term="G Suite" /><category term="Google Drive" /><category term="VR" /><category term="adsense" /><category term="buzz" /><category term="code jam" /><category term="education" /><category term="google checkout" /><category term="machine learning" /><category term="mod_pagespeed" /><category term="native client" /><category term="polymer" /><category term="Ads" /><category term="Drive" /><category term="Google Wave" /><category term="beacons" /><category term="cloud sql" /><category term="commerce" /><category term="enterprise" /><category term="google chrome" /><category term="google cloud storage" /><category term="google docs" /><category term="google play services" /><category term="guest post" /><category term="guice" /><category term="igoogle" /><category term="maps apis" /><category term="oss devs" /><category term="search" /><category term="#io2012" /><category term="#io2013" /><category term="Gmail APIs" /><category term="africa" /><category term="cardboard" /><category term="cast" /><category term="countdown to I/O 2012" /><category term="css" /><category term="eclipse" /><category term="gdd07" /><category term="google earth" /><category term="google friend connect" /><category term="html" /><category term="labs" /><category term="material design" /><category term="orkut" /><category term="sdk" /><category term="sign-in" /><category term="standards" /><category term="startup" /><category term="students" /><category term="translate" /><category term="visualization" /><category term="webmaster" /><category term="#io16" /><category term="#io17" /><category term="20% project" /><category term="3d" /><category term="Firebase Analytics" /><category term="TensorFlow" /><category term="apache" /><category term="beacon" /><category term="chrome apps" /><category term="chrome dev summit" /><category term="chrome devtools" /><category term="chrome extensions" /><category term="classes" /><category term="courses" /><category term="design" /><category term="font api" /><category term="gdl weekly" /><category term="geolocation" /><category term="google code search" /><category term="google gadgets" /><category term="google mashup editor" /><category term="in-app payments" /><category term="picasa web" /><category term="project hosting" /><category term="student programs" /><category term="subversion" /><category term="web fonts" /><category term="wtm" /><category term="I/O" /><category term="I/O Extended" /><category term="SVG" /><category term="apis console" /><category term="app indexing" /><category term="authsub" /><category term="c++" /><category term="chromecast" /><category term="client libraries" /><category term="code for educators" /><category term="custom search" /><category term="feeds" /><category term="gdd09" /><category term="gears" /><category term="open web" /><category term="osx" /><category term="pubsubhubbub" /><category term="samba" /><category term="sidewiki" /><category term="#io12" /><category term="#io13" /><category term="AMP" /><category term="Auth" /><category term="Go" /><category term="Google Cloud Messaging" /><category term="Google Developers Live" /><category term="Google Drive SDK" /><category term="Google Fonts" /><category term="Google Noto fonts" /><category term="Google Sheets API" /><category term="I/O 2017" /><category term="IO17" /><category term="ajax apis" /><category term="android wear" /><category term="atom publishing protocol" /><category term="browser" /><category term="caption" /><category term="chinese" /><category term="cloud datastore" /><category term="cloud services" /><category term="cloud storage" /><category term="code-in" /><category term="conversations" /><category term="devart" /><category term="discovery service" /><category term="dns" /><category term="docs" /><category term="dot net" /><category term="fusion tables" /><category term="ghop" /><category term="git" /><category term="google apps for your domain" /><category term="google fit" /><category term="google web elements" /><category term="identity" /><category term="interviews" /><category term="iphone" /><category term="mac" /><category term="meetup" /><category term="narratives" /><category term="open source blog" /><category term="oreilly" /><category term="picasa" /><category term="rails" /><category term="random hacks of kindness" /><category term="research" /><category term="soc" /><category term="speed" /><category term="speed tracer" /><category term="testing" /><category term="training" /><category term="virtual reality" /><category term="web components" /><category term="web exponents" /><category term="webgl" /><category term="AdWords" /><category term="Administrative APIs" /><category term="Android Things" /><category term="Announcement" /><category term="Blockly" /><category term="CardDAV" /><category term="Certification" /><category term="CocoaPods" /><category term="Crash Reporting" /><category term="EMEA" /><category term="Fabric" /><category term="Google Developers Academy" /><category term="Google Slides" /><category term="Google Slides API" /><category term="Google Spreadsheets API" /><category term="Google sheets" /><category term="Google tech talk" /><category term="I/O Live" /><category term="KDE 4.0" /><category term="MacFuse" /><category term="Moderator" /><category term="MySQL" /><category term="O3D" /><category term="OAuth2" /><category term="Polymer Summit" /><category term="Remote Config" /><category term="Sheets API" /><category term="Street View" /><category term="Test Lab" /><category term="Unity" /><category term="Universal App Campaigns" /><category term="Vim" /><category term="WebP" /><category term="actions on google" /><category term="advogato" /><category term="apis. charts" /><category term="app indexing api" /><category term="apple" /><category term="asia" /><category term="assistant" /><category term="blogger" /><category term="bootcamp" /><category term="building ajax apps" /><category term="caldav" /><category term="campfire one" /><category term="chrome experiment" /><category term="closure tools" /><category term="cloud portability" /><category term="community" /><category term="compression" /><category term="contacts api" /><category term="contextual gadgets" /><category term="crisis response" /><category term="css3" /><category term="custom search api" /><category term="developer expert" /><category term="django" /><category term="documentation" /><category term="doubleclick" /><category term="drupal" /><category term="eddystone" /><category term="email" /><category term="gcc" /><category term="gdg" /><category term="geo" /><category term="goo.gl" /><category term="google apps api" /><category term="google assistant sdk" /><category term="google buzz" /><category term="google technoloy user groups" /><category term="google tv" /><category term="gtug" /><category term="hibernate" /><category term="ignite" /><category term="internationalization" /><category term="internet explorer" /><category term="joomla" /><category term="kernel" /><category term="khronos" /><category term="kids" /><category term="kml" /><category term="korean" /><category term="latitude" /><category term="london" /><category term="mozilla" /><category term="myspace" /><category term="mythtv" /><category term="nearby" /><category term="notifications" /><category term="nss" /><category term="objective-c" /><category term="open data" /><category term="opengl" /><category term="oscon" /><category term="payments" /><category term="play services" /><category term="programming" /><category term="python sprint" /><category term="reader" /><category term="salesforce" /><category term="screencast" /><category term="shindig" /><category term="sites api" /><category term="sketchup" /><category term="soap search api" /><category term="spdy" /><category term="storage" /><category term="subscribed links" /><category term="sxsw" /><category term="tasks API" /><category term="themes" /><category term="tools" /><category term="tutorials" /><category term="tv" /><category term="ubuntu" /><category term="web animations api" /><category term="web designer" /><category term="web platform docs" /><category term="webfonts" /><category term="website optimizer" /><category term="windows" /><category term="yahoo" /><category term="#GooglePlay #AndroidDevStory #PlayStore #DeveloperConsole #StoreListingExperiments" /><category term="#freeandopen" /><category term="#io2014" /><category term="+1" /><category term="AI" /><category term="AIY" /><category term="AIY Projects" /><category term="AIYProjects" /><category term="AMP Cache" /><category term="Android Studio" /><category term="App Invites" /><category term="Artificial Intelligence" /><category term="Brotli" /><category term="Cache" /><category term="Data Compression" /><category term="Developer Keynote" /><category term="Europe" /><category term="Firebase Cloud Messaging" /><category term="Firebase Dynamic Links" /><category term="GCP" /><category term="GDA" /><category term="GDC17" /><category term="GDE" /><category term="GPE" /><category term="GSuite" /><category term="GWSOP" /><category term="Game Developers Conference" /><category term="Google Cloud Platform" /><category term="Google Developers University Consortium" /><category term="Google Developers site" /><category term="Google Docs API" /><category term="Google Identity Platform" /><category term="Google Play" /><category term="Google Science Fair" /><category term="GooglePlay" /><category term="I/O 17" /><category term="IO2017" /><category term="Image Compression" /><category term="Imara" /><category term="India" /><category term="IoT" /><category term="Issue Tracker" /><category term="KDE" /><category term="Leadership" /><category term="LoCo" /><category term="MDL" /><category term="MIT CSAIL" /><category term="MOOC" /><category term="Makers" /><category term="Marketplace" /><category term="Noto Serif CJK" /><category term="OAuth playground" /><category term="OCaml" /><category term="ODF" /><category term="OOXML" /><category term="PWA" /><category term="PageSpeed" /><category term="PowerMeter API" /><category term="Progressive Web App" /><category term="Project Loon" /><category term="Rasberry Pi" /><category term="Rewarded Ads" /><category term="Rewarded Video Ads" /><category term="Saatchi" /><category term="Santa Tracker" /><category term="Scratch" /><category term="Shoreline Amphitheatre" /><category term="Slides API" /><category term="Smart Lock for Passwords" /><category term="Sundar Pichai" /><category term="TensorFlow Research Cloud" /><category term="UI" /><category term="URLs" /><category term="Wearables" /><category term="Weave" /><category term="WhiteHouse.gov" /><category term="Winter of Code" /><category term="Women Tech Makers" /><category term="ZXing" /><category term="about.com" /><category term="accelerator" /><category term="actions" /><category term="adobe" /><category term="agpl" /><category term="ajax search books news apis" /><category term="all for good" /><category term="amarok" /><category term="apis explorer" /><category term="authentication" /><category term="awards" /><category term="axsjax" /><category term="barcodes" /><category term="bespin" /><category term="best practices" /><category term="book search" /><category term="books API" /><category term="business" /><category term="caja" /><category term="camino" /><category term="channel" /><category term="chrome os" /><category term="chronoscope" /><category term="cifs" /><category term="classroom api" /><category term="cloud functions for firebase" /><category term="cms" /><category term="codeedu" /><category term="codelabs" /><category term="collada" /><category term="color" /><category term="competition" /><category term="compressorhead" /><category term="computing heritage" /><category term="couchdb" /><category term="creative commons" /><category term="cricket" /><category term="cryptography" /><category term="danish linux forum" /><category term="datastore" /><category term="developers. meetup" /><category term="devfest developer chrome maps social wave apps" /><category term="diversity" /><category term="documents list api" /><category term="dojo" /><category term="doodles" /><category term="dreamweaver" /><category term="earn" /><category term="earth" /><category term="eclipsecon" /><category term="evolution" /><category term="execution api" /><category term="extensions" /><category term="finance" /><category term="firebug" /><category term="firefox" /><category term="firevox" /><category term="fitness" /><category term="fosdem" /><category term="freebsd" /><category term="freenet" /><category term="gci" /><category term="gdd08" /><category term="geoserver" /><category term="getpaid" /><category term="github" /><category term="gnome" /><category term="gnome women's summer outreach program" /><category term="google assistant" /><category term="google code university" /><category term="google data protocol" /><category term="google developers" /><category term="google doctype" /><category term="google grants" /><category term="google health" /><category term="google wallet" /><category term="google.org" /><category term="googlecast" /><category term="googlewebelements googleio" /><category term="green linux" /><category term="grow" /><category term="gtags" /><category term="gulp" /><category term="gzip" /><category term="hacking" /><category term="hackthon" /><category term="hangouts" /><category term="haproxy" /><category term="hg" /><category term="howto" /><category term="hpux" /><category term="iOS SDK" /><category term="ical" /><category term="ietf" /><category term="iguanas" /><category term="iiw" /><category term="image search" /><category term="indie" /><category term="internet of things" /><category term="ipad" /><category term="israel" /><category term="jaiku" /><category term="japanese" /><category term="jetpack" /><category term="joomladayus2007" /><category term="joomladayusa" /><category term="karaoke" /><category term="kernel summit" /><category term="keynote" /><category term="kids coding team" /><category term="lanchpad" /><category term="languages" /><category term="launch" /><category term="launchpad" /><category term="lca" /><category term="lessons" /><category term="licenses" /><category term="linux foundation" /><category term="linux summit" /><category term="linux virtual server" /><category term="linuxconf eu" /><category term="localization" /><category term="malware" /><category term="material" /><category term="material components" /><category term="mercurial" /><category term="mobile UX" /><category term="mobile sites" /><category term="mobile speed" /><category term="monetize" /><category term="mylar" /><category term="named" /><category term="native ads" /><category term="netbsd" /><category term="non-profit" /><category term="nonsense" /><category term="nosql" /><category term="ocr" /><category term="office hours" /><category term="oha" /><category term="openajax alliance" /><category term="openssh" /><category term="openssl" /><category term="oscon2007" /><category term="osi" /><category term="ossjam" /><category term="pactester" /><category term="palette" /><category term="phone" /><category term="photos" /><category term="places API" /><category term="playground" /><category term="plone" /><category term="plone sprint" /><category term="portugal" /><category term="posix" /><category term="preview" /><category term="prizes" /><category term="proximity" /><category term="py3k" /><category term="result snippets" /><category term="rhino" /><category term="sandbox" /><category term="scalability" /><category term="scholarship" /><category term="sdks" /><category term="serif" /><category term="service worker" /><category term="sessions" /><category term="shopping" /><category term="showcase" /><category term="silverstripe" /><category term="sitemaps" /><category term="sixapart" /><category term="social graph" /><category term="solaris" /><category term="souders" /><category term="spa2007" /><category term="startups" /><category term="stuff" /><category term="summer of code" /><category term="syndication" /><category term="techmakers" /><category term="templates" /><category term="tool" /><category term="topp" /><category term="tranparency" /><category term="transit" /><category term="translation" /><category term="ubiquitous computing" /><category term="ubiquity" /><category term="ubucon" /><category term="unicode" /><category term="unit test" /><category term="unix" /><category term="videos" /><category term="virtual keyboard" /><category term="wattpad" /><category term="web apps" /><category term="win" /><category term="windows programming" /><category term="women techmakers" /><category term="xauth" /><category term="zlib" /><category term="zurich" /><title type="text">Google Developers Blog</title><subtitle type="html" /><link rel="alternate" type="text/html" href="http://developers.googleblog.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default?start-index=26&amp;max-results=25&amp;redirect=false" /><author><name>ewood</name><uri>http://www.blogger.com/profile/12341551220176883769</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img1.blogblog.com/img/b16-rounded.gif" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>1702</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/GDBcode" /><feedburner:info uri="gdbcode" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry><id>tag:blogger.com,1999:blog-596098824972435195.post-5688013975859043738</id><published>2017-06-09T10:44:00.001-07:00</published><updated>2017-06-09T10:44:44.645-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Blockly" /><category scheme="http://www.blogger.com/atom/ns#" term="kids" /><category scheme="http://www.blogger.com/atom/ns#" term="kids coding team" /><title type="text">Introducing Blockly 1.0 for Android and iOS</title><content type="html">&lt;em&gt;Posted by Erik Pasternak and the Kids Coding Team&lt;/em&gt;&lt;p&gt;Over the past five years, developers have created hundreds of projects with &lt;a href="http://developers.google.com/blockly"&gt; Blockly&lt;/a&gt;, our open source library for creating block-based coding experiences. These have ranged from education platforms like &lt;a href="https://code.org/"&gt;Code.org&lt;/a&gt; to electronics kits like &lt;a href="https://littlebits.cc/"&gt;littleBits&lt;/a&gt; and even Android app creation tools like &lt;a href="http://appinventor.mit.edu"&gt;MIT App Inventor&lt;/a&gt;. Last year, we also &lt;a href="https://developers.googleblog.com/2016/05/scratch-and-google-introduce-scratch-blocks.html"&gt;announced our collaboration&lt;/a&gt; with the Scratch Team to develop &lt;a href="https://scratch.mit.edu/developers"&gt;Scratch Blocks&lt;/a&gt;—a fork of Blockly optimized for creating coding apps for kids. &lt;/p&gt;&lt;p&gt;Today, we're finalizing our 1.0 release of Blockly on Android and iOS. These versions have everything you need to use Blockly natively in your mobile app, including: &lt;/p&gt;&lt;ul&gt;&lt;li&gt;Blockly's standard UI &lt;li&gt;Custom blocks, toolbox categories, and layouts &lt;li&gt;Functions, variables, mutators, and extensions &lt;li&gt;Code generation in JavaScript, Python, Dart, PHP, and Lua &lt;li&gt;Internationalization support (including for RTL languages)&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogimage"&gt;&lt;a href="https://1.bp.blogspot.com/-fQq5pikCSJs/WTmqDj2vZBI/AAAAAAAADWA/trJLFWZr68IWLUy7oL6NCs6_fthBT3qggCLcB/s1600/image1.png" imageanchor="1" &gt;&lt;img border="0" src="https://1.bp.blogspot.com/-fQq5pikCSJs/WTmqDj2vZBI/AAAAAAAADWA/trJLFWZr68IWLUy7oL6NCs6_fthBT3qggCLcB/s1600/image1.png" data-original-width="688" data-original-height="546" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;While our 1.0 update today is focused on native mobile, we've also made several updates to the web project over the past six months. We've made major improvements to performance and testing, added more structured APIs, and improved touch support for the mobile web. In addition, we improved Internet Explorer and Edge support; Blockly is fully supported on IE10+. &lt;/p&gt;&lt;p&gt;We've done a lot of work to ease cross platform development, too! All blocks can now be defined by JSON, allowing a single set of block definitions to be used for web, iOS, and Android. Check out the &lt;a href="https://developers.google.com/blockly/guides/create-custom-blocks/overview"&gt;documentation&lt;/a&gt;for more details on all three platforms. &lt;/p&gt;&lt;center&gt;&lt;iframe width="560" height="315" src="https://www.youtube.com/embed/wDJua9hgyZM" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;/center&gt;&lt;p&gt;Get started right away with our &lt;a href="https://codelabs.developers.google.com/codelabs/blockly-ios"&gt;iOS Codelab&lt;/a&gt; (Android coming soon)! To learn more about Blockly, check out the above &lt;a href="https://www.youtube.com/watch?v=wDJua9hgyZM"&gt;intro video&lt;/a&gt;, visit our &lt;a href="https://developers.google.com/blockly"&gt;developer site&lt;/a&gt;,  join our &lt;a href="https://groups.google.com/forum/#!forum/blockly"&gt;mailing list&lt;/a&gt;,   or jump right into the code for &lt;a href="https://github.com/google/blockly"&gt;web&lt;/a&gt;, &lt;a href="https://github.com/google/blockly-android"&gt;Android&lt;/a&gt;, or &lt;a href="https://github.com/google/blockly-ios"&gt;iOS&lt;/a&gt;. &lt;/p&gt; &lt;style&gt;.blogimage img{ width: 100%; } &lt;/style&gt;&lt;img src="http://feeds.feedburner.com/~r/GDBcode/~4/HyIf35zDZR0" height="1" width="1" alt=""/&gt;</content><link rel="replies" type="application/atom+xml" href="http://developers.googleblog.com/feeds/5688013975859043738/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://developers.googleblog.com/2017/06/introducing-blockly-10-for-android-and.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/5688013975859043738" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/5688013975859043738" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GDBcode/~3/HyIf35zDZR0/introducing-blockly-10-for-android-and.html" title="Introducing Blockly 1.0 for Android and iOS" /><author><name>Google Devs</name><uri>https://plus.google.com/116954523003757714329</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img1.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://1.bp.blogspot.com/-fQq5pikCSJs/WTmqDj2vZBI/AAAAAAAADWA/trJLFWZr68IWLUy7oL6NCs6_fthBT3qggCLcB/s72-c/image1.png" height="72" width="72" /><thr:total>0</thr:total><gd:extendedProperty name="commentSource" value="1" /><gd:extendedProperty name="commentModerationMode" value="FILTERED_POSTMOD" /><feedburner:origLink>http://developers.googleblog.com/2017/06/introducing-blockly-10-for-android-and.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-596098824972435195.post-6149427151684387432</id><published>2017-06-06T10:00:00.000-07:00</published><updated>2017-06-06T10:00:15.590-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="AMP" /><category scheme="http://www.blogger.com/atom/ns#" term="AMP Cache" /><category scheme="http://www.blogger.com/atom/ns#" term="Brotli" /><category scheme="http://www.blogger.com/atom/ns#" term="compression" /><category scheme="http://www.blogger.com/atom/ns#" term="gzip" /><title type="text">AMP Compression Update</title><content type="html">&lt;em&gt;Posted by Zachary Nado, Software Engineer&lt;/em&gt;&lt;p&gt;Recently we &lt;a href="https://amphtml.wordpress.com/2017/05/18/turbocharging-amp/"&gt;announced&lt;/a&gt;the addition of Brotli compression to the Google AMP Cache.  All AMP documents served from the Google AMP Cache can now be served with Brotli, which will save a considerable amount of bandwidth for our users and further our goal of improving the mobile experience. &lt;/p&gt;&lt;p&gt;&lt;a href="https://opensource.googleblog.com/2015/09/introducing-brotli-new-compression.html"&gt;Brotli&lt;/a&gt;is a newer, more efficient compression algorithm created by Jyrki Alakuijala and Zoltán Szabadka with the Google Research Europe Compression Team.  Launched in 2015, it has already been used to enable &lt;a href="https://students.googleblog.com/2017/02/intern-impact-brotli-compression-for.html"&gt;considerable savings&lt;/a&gt; in other areas of Google.  While it is a generic compression algorithm, it has particularly impressive performance when applied to web documents; we have seen an average decrease in document size of around 10% when using Brotli instead of gzip, which has amounted to hundreds of gigabytes of bandwidth saved per day across the Google AMP Cache. &lt;/p&gt;&lt;p&gt;With smaller document sizes, pages load faster while also saving bandwidth which can amount to noticeable savings for users on limited data plans.  The Google AMP Cache is just the beginning though, as engineering teams are working on Brotli support in many other products which can enable bandwidth savings throughout Google. &lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/GDBcode/~4/a_9UF2YJOZ0" height="1" width="1" alt=""/&gt;</content><link rel="replies" type="application/atom+xml" href="http://developers.googleblog.com/feeds/6149427151684387432/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://developers.googleblog.com/2017/06/amp-compression-update.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/6149427151684387432" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/6149427151684387432" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GDBcode/~3/a_9UF2YJOZ0/amp-compression-update.html" title="AMP Compression Update" /><author><name>Google Devs</name><uri>https://plus.google.com/116954523003757714329</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img1.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><gd:extendedProperty name="commentSource" value="1" /><gd:extendedProperty name="commentModerationMode" value="FILTERED_POSTMOD" /><feedburner:origLink>http://developers.googleblog.com/2017/06/amp-compression-update.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-596098824972435195.post-8126320915238330582</id><published>2017-05-31T10:58:00.000-07:00</published><updated>2017-05-31T13:51:31.593-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="languages" /><category scheme="http://www.blogger.com/atom/ns#" term="localization" /><category scheme="http://www.blogger.com/atom/ns#" term="translation" /><title type="text">Empowering a new generation of localization professionals</title><content type="html">&lt;em&gt;Posted by The Google Localization Team&lt;/em&gt; &lt;p&gt;When her grandmother turned 80, Christina Hayek — Arabic Language Manager at Google —  and her sisters wanted to give their beloved sitto a gift that would bring her closer to them. Chadia lives in Lebanon but her children and grandchildren are spread across the world. To bridge this geographical gap, Christina and her siblings gave their grandmother an Android smartphone. Much to Chadia’s surprise, she was able to use her phone in Arabic straight out of the box. &lt;/p&gt;&lt;p&gt;This isn’t magic—it’s the work of a dedicated localization team at Google. Spread over more than 30 countries, our team makes sure that all Google products are fun and easy to use in more than 70 languages. Localization goes beyond translation. While references to baseball and donuts work well in the US, these are not necessarily popular concepts in other cultures. Therefore we change these, for example, to football in Italy and croissant in France. Our mission is to create a diverse user experience that fits every language and every culture. We do this through a network of passionate translators and reviewers who localize Google products to make sure they sound natural to people everywhere.  &lt;/p&gt;&lt;p&gt;With more and more people from around the world coming online every day, the localization industry keeps growing—and so does the demand for great translators, reviewers, and localization professionals. So, as part of Google’s mission to build products for everyone and make the web globally accessible, no matter where users are, we’re launching a massive open online course (MOOC) called &lt;a href="https://www.udacity.com/course/localization-essentials--ud610"&gt;Localization Essentials&lt;/a&gt;. In the words of Peter Lubbers, Google's Head of Developer Training:  &lt;/p&gt;&lt;blockquote&gt;&lt;em&gt;"The language industry is one of the fastest growing in the world today, and as a former Internationalization Product Manager (and Dutch translator), I am absolutely thrilled that we've added Localization Essentials to our Google/Udacity training course catalog. The course is now available—free of charge—to students all over the world. This was a huge cross-functional effort; a large team of localization experts across Google came together and rallied to create this course. It was great to see how everybody poured their heart and soul into this effort and it really shows in the course quality."  &lt;/em&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;a href="https://www.udacity.com/course/localization-essentials--ud610"&gt;Localization Essentials&lt;/a&gt; was developed in collaboration with Udacity, and is free to access. It covers all localization basics needed to develop global products. This is how Bert Vander Meeren, Director of Localization at Google, described the collaboration: &lt;/p&gt;&lt;blockquote&gt;&lt;em&gt;“Today, localization is becoming more and more important because the internet user base is growing rapidly, especially in non-English speaking countries. At the same time, education opportunities in the field are limited. This is an issue for our team and any business in need of large numbers of localization resources. So we decided to take the lead and address the issue, because who knows localization better than dedicated localization professionals with years of experience? Udacity already helped us develop and host several successful courses for Android developers, so this partnership was more than logical. This course is a great opportunity for anyone who wants to get knowledge and new skills in a still lesser-known field that’s important to develop products for a truly global audience. Whether you are a student, a professional, or an entrepreneur, you will learn a lot and expand your horizons.” &lt;/em&gt;&lt;/blockquote&gt;&lt;p&gt;By sharing our knowledge we hope that more culturally relevant products will become available to users everywhere, to provide opportunities to them that they didn’t have before.  &lt;/p&gt;&lt;p&gt;We’re looking forward to seeing how sharing this localization knowledge will impact users from all over the world. &lt;/p&gt;    &lt;img src="http://feeds.feedburner.com/~r/GDBcode/~4/JivLREYxLqI" height="1" width="1" alt=""/&gt;</content><link rel="replies" type="application/atom+xml" href="http://developers.googleblog.com/feeds/8126320915238330582/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://developers.googleblog.com/2017/05/empowering-new-generation-of.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/8126320915238330582" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/8126320915238330582" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GDBcode/~3/JivLREYxLqI/empowering-new-generation-of.html" title="Empowering a new generation of localization professionals" /><author><name>Google Devs</name><uri>https://plus.google.com/116954523003757714329</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img1.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><gd:extendedProperty name="commentSource" value="1" /><gd:extendedProperty name="commentModerationMode" value="FILTERED_POSTMOD" /><feedburner:origLink>http://developers.googleblog.com/2017/05/empowering-new-generation-of.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-596098824972435195.post-978333115282091175</id><published>2017-05-26T10:00:00.000-07:00</published><updated>2017-05-26T10:00:04.008-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="analytics" /><category scheme="http://www.blogger.com/atom/ns#" term="cloud functions for firebase" /><category scheme="http://www.blogger.com/atom/ns#" term="Fabric" /><category scheme="http://www.blogger.com/atom/ns#" term="Firebase" /><category scheme="http://www.blogger.com/atom/ns#" term="Firebase Analytics" /><category scheme="http://www.blogger.com/atom/ns#" term="I/O" /><category scheme="http://www.blogger.com/atom/ns#" term="IO17" /><category scheme="http://www.blogger.com/atom/ns#" term="open source" /><category scheme="http://www.blogger.com/atom/ns#" term="sdks" /><category scheme="http://www.blogger.com/atom/ns#" term="wattpad" /><title type="text">What's new from Firebase at Google I/O 2017 </title><content type="html">&lt;em&gt;Originally posted on the &lt;a href="https://firebase.googleblog.com/2017/05/whats-new-from-firebase-at-google-io.html"&gt;Firebase Blog&lt;/a&gt; by Francis Ma, Firebase Group Product Manager&lt;/em&gt;&lt;p&gt;It's been an exciting year! Last May, we expanded Firebase &lt;a href="https://firebase.googleblog.com/2016/05/firebase-expands-to-become-unified-app-platform.html"&gt;into our unified app platform&lt;/a&gt;, building on the original backend-as-a-service and adding products to help developers grow their user base, as well as test and monetize their apps. Hearing from developers like Wattpad, who built an app using Firebase in only 3 weeks, makes all the hard work worthwhile. &lt;/p&gt;&lt;center&gt;&lt;iframe allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/7E0kilyBByI" width="560"&gt;&lt;/iframe&gt;&lt;/center&gt;&lt;p&gt;We're thrilled by the initial response from the community, but we believe our journey is just getting started. Let's talk about some of the enhancements coming to Firebase today. &lt;p/&gt;&lt;h3&gt;Integrating with Fabric&lt;/h3&gt;&lt;p&gt;In January, &lt;a href="https://firebase.googleblog.com/2017/01/FabricJoinsGoogle17.html"&gt;we announced&lt;/a&gt; that we were welcoming the &lt;a href="https://get.fabric.io/"&gt;Fabric&lt;/a&gt; team to Firebase. Fabric initially grabbed our attention with their array of products, including the industry-leading crash reporting tool, Crashlytics. As we got to know the team better, we were even more impressed by how closely aligned our missions are: to help developers build better apps and grow successful businesses. Over the last several months, we've been working closely with the Fabric team to &lt;a href="https://fabric.io/blog/fabric-and-firebase-building-momentum-together"&gt;bring the best of our platforms together&lt;/a&gt;. &lt;/p&gt;&lt;p&gt;We plan to make Crashlytics the primary crash reporting product in Firebase. If you don't already use a crash reporting tool, we recommend you take a look at Crashlytics and see what it can do for you. You can get started &lt;a href="https://fabric.io/kits/ios/crashlytics"&gt;by following the Fabric documentation&lt;/a&gt;. &lt;/p&gt;&lt;h3&gt;Phone authentication comes to Firebase&lt;/h3&gt;&lt;p&gt;Phone number authentication has been the biggest request for Firebase Authentication, so we're excited to announce that we've worked with the Fabric Digits team to bring phone auth to our platform. You can now let your users sign in with their phone numbers, in addition to traditional email/password or identity providers like Google or Facebook. This gives you a comprehensive authentication solution no matter who your users are or how they like to log in. &lt;/p&gt;&lt;p&gt;At the same time, the Fabric team will be retiring the Digits name and SDK. If you currently use Digits, over the next couple weeks we'll be rolling out the ability to link your existing Digits account with Firebase and swap in the Firebase SDK for the Digits SDK. Go to the &lt;a href="http://get.digits.com/blog/introducing-firebase-phone-authentication"&gt;Digits blog&lt;/a&gt; to learn more. &lt;/p/&gt;&lt;h3&gt;Introducing Firebase Performance Monitoring&lt;/h3&gt;&lt;p&gt;We recognize that poor app performance and stability are the top reasons for users to leave bad ratings on your app and possibly churn altogether. As part of our effort to help you build better apps, we're pleased to announce the beta launch of Performance Monitoring. &lt;/p&gt;&lt;p&gt;Firebase Performance Monitoring is a new free tool that helps you understand when your user experience is being impacted by poorly performing code or challenging network conditions. You can learn more and get started with Performance Monitoring in &lt;a href="https://firebase.google.com/docs/perf-mon/"&gt;the Firebase documentation&lt;/a&gt;. &lt;/p&gt;&lt;h3&gt;More robust analytics&lt;/h3&gt;&lt;p&gt;Analytics has been core to the Firebase platform since we launched last I/O. We know that understanding your users is the number one way to make your app successful, so we're continuing to invest in improving our analytics product. &lt;/p&gt;&lt;p&gt;First off, you may notice that you're starting to see the name "Google Analytics for Firebase" around our documentation. Our analytics solution was built in conjunction with the Google Analytics team, and the reports are available both in the Firebase console and the Google Analytics interface. So, we're renaming Firebase Analytics to Google Analytics for Firebase, to reflect that your app analytics data are shared across both. &lt;/p&gt;&lt;p&gt;For those of you who monetize your app with &lt;a href="https://www.google.com/admob/announcements.html"&gt;AdMob&lt;/a&gt;, we've started &lt;a href="https://support.google.com/firebase/answer/6387949"&gt;sharing data between the two platforms&lt;/a&gt;, helping you understand the true lifetime value (LTV) of your users, from both purchases and AdMob revenue. You'll see these new insights surfaced in the updated Analytics dashboard. &lt;/p&gt;&lt;p&gt;Many of you have also asked for analytics insights into custom events and parameters. Starting today, you can register up to 50 custom event parameters and see their details in your Analytics reports. &lt;a href="https://support.google.com/firebase/answer/7397304"&gt;Learn more about custom parameter reporting&lt;/a&gt;. &lt;/p&gt;&lt;h3&gt;Firebase for all - iOS, games, and open source&lt;/h3&gt;&lt;p&gt;Firebase's mission is to help all developers build better apps. In that spirit, today we're announcing expanded platform and vertical support for Firebase. &lt;/p&gt;&lt;p&gt;First of all, as Swift has become the preferred language for many iOS developers, we've updated our SDK to handle Swift language nuances, making Swift development a native experience on Firebase. &lt;/p&gt;&lt;p&gt;We've also improved Firebase Cloud Messaging by adding support for token-based authentication for APNs, and greatly simplifying the connection and registration logic in the client SDK. &lt;/p&gt;&lt;p&gt;Second, we've heard from our game developer community that one of the most important stats you monitor is frames per second (FPS). So, we've built Game Loop support &amp;amp; FPS monitoring into Test Lab for Android, allowing you to evaluate your game's frame rate before you deploy. Coupled with the addition of Unity plugins and a C++ SDK, which &lt;a href="https://firebase.googleblog.com/2017/02/supercharge-your-games-with-firebase.html"&gt;we announced&lt;/a&gt; at GDC this year, we think that Firebase is a great option for game developers. To see an example of a game built on top of Firebase, check out our &lt;a href="https://google.github.io/mechahamster/"&gt;Mecha Hamster app on Github&lt;/a&gt;. &lt;/p&gt;&lt;p&gt;Finally, we've taken a big first step towards open sourcing our SDKs. We believe in open source software, not only because transparency is an important goal, but also because we know that the greatest innovation happens when we all collaborate. You can view our new repos &lt;a href="https://opensource.google.com/projects/firebase-sdk"&gt;on our open sourceproject page&lt;/a&gt; and learn more about our decision in &lt;a href="http://opensource.googleblog.com/2017/05/open-sourcing-firebase-sdks.html"&gt;this blog post&lt;/a&gt;. &lt;/p&gt;&lt;h3&gt;Dynamic Hosting with Cloud Functions for Firebase&lt;/h3&gt;&lt;p&gt;In March, &lt;a href="https://firebase.googleblog.com/2017/03/introducing-cloud-functions-for-firebase.html"&gt;we launched Cloud Functions for Firebase&lt;/a&gt;, which lets you run custom backend code in response to events triggered by Firebase features and HTTP requests. This lets you do things like send a notification when a user signs up or automatically create thumbnails when an image is uploaded to Cloud Storage. &lt;/p&gt;&lt;p&gt;Today, in an effort to better serve our web developer community, we're expanding Firebase Hosting to integrate with Cloud Functions. This means that, in addition to serving static assets for your web app, you can now serve dynamic content, generated by Cloud Functions, through Firebase Hosting. For those of you building &lt;a href="https://developers.google.com/web/progressive-web-apps/"&gt;progressive web apps&lt;/a&gt;, Firebase Hosting + Cloud Functions allows you to go completely server-less. You can learn more by &lt;a href="https://firebase.google.com/docs/hosting/functions"&gt;visiting our documentation&lt;/a&gt;. &lt;/p&gt;&lt;h3&gt;Firebase Alpha program and what's next&lt;/h3&gt;&lt;p&gt;Our goal is to build the best developer experience: easy-to-use products, great documentation, and intuitive APIs. And the best resource that we have for improving Firebase is you! Your questions and feedback continuously push us to make Firebase better. &lt;/p&gt;&lt;p&gt;In light of that, we're excited to announce a Firebase Alpha program, where you will have the opportunity to test the cutting edge of our products. Things might not be perfect (in fact, we can almost guarantee they won't be), but by participating in the alpha community, you'll help define the future of Firebase. If you want to get involved, please register your interest in the &lt;a href="http://firebase.google.com/alpha"&gt;Firebase Alpha form&lt;/a&gt;. &lt;/p&gt;&lt;p&gt;Thank you for your support, enthusiasm, and, most importantly, feedback. The Firebase community is the reason that we've been able to grow and improve our platform at such an incredible pace over the last year. We're excited to continue working with you to build simple, intuitive products for developing apps and growing mobile businesses. To get started with Firebase today, visit our &lt;a href="http://firebase.google.com/"&gt;newly redesigned website&lt;/a&gt;. We're excited to see what you build! &lt;/p&gt;&lt;center&gt;&lt;iframe allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/IRk6n3M4d2E" width="560"&gt;&lt;/iframe&gt;&lt;/center&gt;&lt;img src="http://feeds.feedburner.com/~r/GDBcode/~4/LqvXFVGmtiY" height="1" width="1" alt=""/&gt;</content><link rel="replies" type="application/atom+xml" href="http://developers.googleblog.com/feeds/978333115282091175/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://developers.googleblog.com/2017/05/whats-new-from-firebase-at-google-io.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/978333115282091175" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/978333115282091175" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GDBcode/~3/LqvXFVGmtiY/whats-new-from-firebase-at-google-io.html" title="What's new from Firebase at Google I/O 2017 " /><author><name>Google Devs</name><uri>https://plus.google.com/116954523003757714329</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img1.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img.youtube.com/vi/7E0kilyBByI/default.jpg" height="72" width="72" /><thr:total>0</thr:total><gd:extendedProperty name="commentSource" value="1" /><gd:extendedProperty name="commentModerationMode" value="FILTERED_POSTMOD" /><feedburner:origLink>http://developers.googleblog.com/2017/05/whats-new-from-firebase-at-google-io.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-596098824972435195.post-8944670644196221166</id><published>2017-05-24T08:49:00.000-07:00</published><updated>2017-05-24T09:40:33.428-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="scholarship" /><category scheme="http://www.blogger.com/atom/ns#" term="techmakers" /><category scheme="http://www.blogger.com/atom/ns#" term="Udacity" /><category scheme="http://www.blogger.com/atom/ns#" term="women techmakers" /><title type="text">Announcing the Women Techmakers Udacity Scholarship</title><content type="html">&lt;style&gt;.post-content img { border: 0 0 0 0; margin: 0 0 0 0; padding: 10px 0 0 0; } &lt;/style&gt; &lt;em&gt;Posted by Amy Schapiro and the Women Techmakers team&lt;/em&gt; &lt;a href="https://4.bp.blogspot.com/-0E_vHFgzi_c/WSTIvPHnfTI/AAAAAAAADUg/nCioeU9tHxYd3gq0ktwvc6I1j3qGB-XGQCLcB/s1600/image1.jpg" imageanchor="1" &gt;&lt;img border="0" src="https://4.bp.blogspot.com/-0E_vHFgzi_c/WSTIvPHnfTI/AAAAAAAADUg/nCioeU9tHxYd3gq0ktwvc6I1j3qGB-XGQCLcB/s1600/image1.jpg" /&gt;&lt;/a&gt; &lt;p&gt;The community of women in tech is growing in numbers and influence, which we witnessed firsthand just last week at Google I/O, Google's biggest developer conference of the year. Our total attendees were 25% women, thanks in large part to creating a number of cross-industry partnerships supporting women developer communities. 25% of the speakers were women as well. &lt;/p&gt;&lt;p&gt;We know working together as a community is key to supporting women in tech. To that end, we are excited to announce a new collaborative resource. Women Techmakers is launching a new scholarship for women in tech around the world to increase their skills through enrolling in an online technical degree - the &lt;a href="https://www.womentechmakers.com/udacity"&gt;Women Techmakers Udacity Scholarship&lt;/a&gt;. Women Techmakers, Google's global program for women in technology, provides visibility, community and resources for women and allies around the world. Women Techmakers has partnered with Udacity, one of the world's leading online training platforms, as Udacity's flagship partner for women in technology to provide this scholarship to women across experience levels and geographies. &lt;/p&gt;&lt;p&gt;This new scholarship provides the opportunity for women to earn online certification in &lt;a href="https://www.udacity.com/course/android-basics-nanodegree-by-google--nd803"&gt;Android Basics&lt;/a&gt; , &lt;a href="https://www.udacity.com/course/android-developer-nanodegree-by-google--nd801"&gt;Android Developer&lt;/a&gt;, &lt;a href="https://www.udacity.com/course/front-end-web-developer-nanodegree--nd001"&gt;Front-End Web Developer&lt;/a&gt; and &lt;a href="https://www.udacity.com/course/full-stack-web-developer-nanodegree--nd004"&gt;Full-Stack Developer&lt;/a&gt;, all courses co-designed by Google experts, and includes opportunities for women at multiple skill levels. Benefits include special access to a community of Googlers and a cross-cohort global online community. Upon completion of the Nanodegree within one year, scholars will receive certification from Udacity, a certificate of completion from Women Techmakers, a resume review by a Googler, and more. &lt;/p&gt;&lt;p&gt;This scholarship is the newest offering in a portfolio of Women Techmakers programs to support women and allies globally, including &lt;a href="https://www.womentechmakers.com/membership"&gt;Membership&lt;/a&gt; for curated, personalized professional support, our &lt;a href="https://www.youtube.com/watch?v=klUtOqLakpQ&amp;list=PLNBb8OktVDKvyHEKIFpRSVuPbitvf_oN7"&gt;video series&lt;/a&gt; and guides on building inclusive tech hubs, and our &lt;a href="https://www.womentechmakers.com/scholars"&gt;Scholars program&lt;/a&gt;, which provides funding and support for university women studying computer science. &lt;/p&gt;&lt;p&gt;&lt;a href="https://www.womentechmakers.com/udacity"&gt;Click here to learn more and apply&lt;/a&gt; by June 9th, 2017. &lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/GDBcode/~4/mkaNDwg-PZc" height="1" width="1" alt=""/&gt;</content><link rel="replies" type="application/atom+xml" href="http://developers.googleblog.com/feeds/8944670644196221166/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://developers.googleblog.com/2017/05/announcing-women-techmakers-udacity.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/8944670644196221166" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/8944670644196221166" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GDBcode/~3/mkaNDwg-PZc/announcing-women-techmakers-udacity.html" title="Announcing the Women Techmakers Udacity Scholarship" /><author><name>Google Devs</name><uri>https://plus.google.com/116954523003757714329</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img1.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://4.bp.blogspot.com/-0E_vHFgzi_c/WSTIvPHnfTI/AAAAAAAADUg/nCioeU9tHxYd3gq0ktwvc6I1j3qGB-XGQCLcB/s72-c/image1.jpg" height="72" width="72" /><thr:total>0</thr:total><gd:extendedProperty name="commentSource" value="1" /><gd:extendedProperty name="commentModerationMode" value="FILTERED_POSTMOD" /><feedburner:origLink>http://developers.googleblog.com/2017/05/announcing-women-techmakers-udacity.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-596098824972435195.post-6139358160761948507</id><published>2017-05-23T10:26:00.000-07:00</published><updated>2017-05-23T13:56:04.135-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="accelerator" /><category scheme="http://www.blogger.com/atom/ns#" term="launchpad" /><category scheme="http://www.blogger.com/atom/ns#" term="startups" /><title type="text">Announcing the fourth class of Launchpad Accelerator featuring new countries!</title><content type="html">&lt;style&gt; .container0 { display: flex; justify-content: left; align-items: stretch; width: 100% background: black; background-color: black; margin: 0 0 10px 0; }  .item0 { text-align: left; background: black; color: white; margin: 0 0 0 10px; }  .container { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; align-content: space-around: width: 100% }  .item1 { width: 15%; margin: 0px 0px 0px 0px; padding: 0 0 0 0; align-items: center; text-align: center; }  .item1 img { margin: 0; padding: 0; object-fit: contain; }  .item2 { width: 75%; }  &lt;/style&gt; &lt;em&gt;Posted by Roy Glasberg, Global Lead, Launchpad Program &amp; Accelerator &lt;/em&gt;&lt;p&gt;We're back at it again and excited to welcome an inspiring group of startups from all over the world for the 4th class of &lt;a href="https://developers.google.com/startups/accelerator/"&gt;Launchpad Accelerator&lt;/a&gt;. &lt;/p&gt;&lt;p&gt;This time around, startups from Asia and Latin America will be joined by peers from Africa and Europe. In addition to expanding our reach, we’re also expanding our curriculum. We’ll help the startups dig deeper into machine learning and AI, to help them leverage Google’s latest technologies to scale their apps.  &lt;/p&gt;&lt;p&gt;Launchpad Accelerator includes intensive mentoring from 20+ Google teams, and expert mentors from top technology companies and VCs in Silicon Valley. Participants receive equity-free support, credits for Google products, and continue to work closely with Google back in their home country during the 6-month program. &lt;/p&gt;&lt;p&gt;Class 4 kicks off July 17th, 2017 at the Google Developers Launchpad Space in San Francisco and will include 2 weeks of all-expense-paid training. &lt;/p&gt;&lt;p&gt;Here's the full list of participating startups (by region): &lt;/p&gt;&lt;h3&gt;&lt;center&gt;&lt;u&gt;Africa&lt;/u&gt;&lt;/center&gt;&lt;/h3&gt;&lt;p&gt;&lt;div class="container0"&gt;&lt;div class="item0"&gt;&lt;h2&gt;&lt;em&gt;Kenya&lt;/em&gt;&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="container"&gt;&lt;div class="item1"&gt;&lt;a href="https://2.bp.blogspot.com/-04SqDNaTh2I/WSNap_wwjPI/AAAAAAAADAc/I5Bwna7zYpQfseK_BEy2pFir7X6VIQjeACLcB/s1600/image28.png"&gt;&lt;img src="https://2.bp.blogspot.com/-04SqDNaTh2I/WSNap_wwjPI/AAAAAAAADAc/I5Bwna7zYpQfseK_BEy2pFir7X6VIQjeACLcB/s1600/image28.png" /&gt;&lt;/a&gt;  &lt;/div&gt;&lt;div class="item2"&gt;&lt;ul&gt;&lt;a href="http://twigafoods.com/"&gt;Twiga Foods Ltd&lt;/a&gt;: A tech-enabled sourcing and distribution platform that replaces informal wholesale markets for the millions of small and medium size food and FMCG retailers in Africa's urban markets. &lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;/p&gt;&lt;div class="container0"&gt;&lt;div class="item0"&gt;&lt;h2&gt;&lt;em&gt;Nigeria&lt;/em&gt;&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="container"&gt;&lt;div class="item1"&gt;&lt;a href="https://4.bp.blogspot.com/-X1H3nONbc8Q/WSNd0kWit-I/AAAAAAAADAo/EGkBfk9bJY0tw1PiQ4XUreesB7HO7gjPgCLcB/s1600/image18.png"&gt;&lt;img border="0" src="https://4.bp.blogspot.com/-X1H3nONbc8Q/WSNd0kWit-I/AAAAAAAADAo/EGkBfk9bJY0tw1PiQ4XUreesB7HO7gjPgCLcB/s1600/image18.png" /&gt;&lt;/a&gt;  &lt;/div&gt;&lt;div class="item2"&gt;&lt;ul&gt;&lt;a href="https://deliveryscience.co/"&gt;Delivery Science&lt;/a&gt;: Mobile forms to help large organizations get field data &lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="container"&gt;&lt;div class="item1"&gt;&lt;a href="https://4.bp.blogspot.com/-BljvG5SG6Bw/WSNfbAVZL-I/AAAAAAAADA0/jqnBcghZKxQjrBhco5wgNjS4bWG67x8EQCLcB/s1600/image29.png" imageanchor="1"&gt;&lt;img border="0" src="https://4.bp.blogspot.com/-BljvG5SG6Bw/WSNfbAVZL-I/AAAAAAAADA0/jqnBcghZKxQjrBhco5wgNjS4bWG67x8EQCLcB/s1600/image29.png" /&gt;&lt;/a&gt;  &lt;/div&gt;&lt;div class="item2"&gt;&lt;ul&gt;&lt;a href="https://play.google.com/store/apps/details?id=com.gidimo&amp;amp;hl=en"&gt;Gidi Mobile Limited&lt;/a&gt;: gidimo is a mobile learning platform that uses mastery learning &amp;amp; social gamification to deliver personal advancement, in a fun way, and at unprecedented scale &lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="container"&gt;&lt;div class="item1"&gt;&lt;a href="https://4.bp.blogspot.com/-8SoqUKvEzAI/WSNfzDj1S6I/AAAAAAAADA4/TUPRzywA5RACybN84q-ZN5nGKXZYBQCSgCLcB/s1600/image8.png" imageanchor="1"&gt;&lt;img border="0" src="https://4.bp.blogspot.com/-8SoqUKvEzAI/WSNfzDj1S6I/AAAAAAAADA4/TUPRzywA5RACybN84q-ZN5nGKXZYBQCSgCLcB/s1600/image8.png" /&gt;&lt;/a&gt;  &lt;/div&gt;&lt;div class="item2"&gt;&lt;ul&gt;&lt;a href="https://www.flutterwave.com/"&gt;Flutterwave&lt;/a&gt;: Flutterwave is building technology and infrastructure for digital commerce across Africa starting with Rave, an app that helps merchants accept mobile money, cards and bank account payments across 4 African countries. &lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="container"&gt;  &lt;div class="item1"&gt;&lt;a href="https://1.bp.blogspot.com/-1WBVw16qTtA/WSNhi8sFZRI/AAAAAAAADBE/R9KiVcDCcWgeZTNbMqpVcm3alY9_dVdRwCLcB/s1600/image24.png" imageanchor="1" &gt;&lt;img border="0" src="https://1.bp.blogspot.com/-1WBVw16qTtA/WSNhi8sFZRI/AAAAAAAADBE/R9KiVcDCcWgeZTNbMqpVcm3alY9_dVdRwCLcB/s1600/image24.png" /&gt;&lt;/a&gt;  &lt;/div&gt;  &lt;div class="item2"&gt;&lt;ul&gt;&lt;a href="http://www.paystack.com"&gt;Paystack&lt;/a&gt;: We help businesses in Africa accept payments from their customers. &lt;/ul&gt;  &lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;p&gt;&lt;div class="container0"&gt;  &lt;div class="item0"&gt;&lt;h2&gt;&lt;em&gt;South Africa&lt;/em&gt;&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="container"&gt;  &lt;div class="item1"&gt;&lt;a href="https://2.bp.blogspot.com/-MB6i31SQi-E/WSNimrw1g1I/AAAAAAAADBM/R26R7gGhXbQ5f0ZZcbaDujat6JcXch3_QCLcB/s1600/image30.png" imageanchor="1" &gt;&lt;img border="0" src="https://2.bp.blogspot.com/-MB6i31SQi-E/WSNimrw1g1I/AAAAAAAADBM/R26R7gGhXbQ5f0ZZcbaDujat6JcXch3_QCLcB/s1600/image30.png" /&gt;&lt;/a&gt;  &lt;/div&gt;  &lt;div class="item2"&gt;&lt;ul&gt;&lt;a href="http://www.jumo.world"&gt;JUMO Marketplace&lt;/a&gt;: Jumo is the largest scale, lowest cost financial services marketplace for emerging markets&lt;/ul&gt;  &lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;h3&gt;&lt;u&gt;&lt;center&gt;Asia&lt;/center&gt;&lt;/u&gt;&lt;/h3&gt;&lt;p&gt;&lt;div class="container0"&gt;  &lt;div class="item0"&gt;&lt;h2&gt;&lt;em&gt;India&lt;/em&gt;&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="container"&gt;  &lt;div class="item1"&gt;&lt;a href="https://2.bp.blogspot.com/-WnAIhr3bENA/WSN1wB07P4I/AAAAAAAADBc/yhyv6fHRC-4v2qPzyFDi4J-xTex6TM28QCLcB/s1600/image33.png" imageanchor="1" &gt;&lt;img border="0" src="https://2.bp.blogspot.com/-WnAIhr3bENA/WSN1wB07P4I/AAAAAAAADBc/yhyv6fHRC-4v2qPzyFDi4J-xTex6TM28QCLcB/s1600/image33.png" /&gt;&lt;/a&gt;  &lt;/div&gt;  &lt;div class="item2"&gt;&lt;ul&gt;&lt;a href="https://edgenetworks.in/"&gt;EdGE Networks&lt;/a&gt;: HR solutions provider powered by Artificial Intelligence&lt;/ul&gt;  &lt;/div&gt;&lt;/div&gt;&lt;div class="container"&gt;  &lt;div class="item1"&gt;&lt;a href="https://3.bp.blogspot.com/-ORzlCX7khbA/WSN2Y2g41lI/AAAAAAAADBk/jrn0ckJ0fYw6KNG3NqLKBIwPJ20w0dx7QCLcB/s1600/image1.png" imageanchor="1" &gt;&lt;img border="0" src="https://3.bp.blogspot.com/-ORzlCX7khbA/WSN2Y2g41lI/AAAAAAAADBk/jrn0ckJ0fYw6KNG3NqLKBIwPJ20w0dx7QCLcB/s1600/image1.png" /&gt;&lt;/a&gt;  &lt;/div&gt;  &lt;div class="item2"&gt;&lt;ul&gt;&lt;a href="https://play.google.com/store/apps/details?id=com.fastfilmz.android&amp;hl=en"&gt;FastFilmz&lt;/a&gt;: The Super App for Super Fans of South Indian movies!&lt;/ul&gt;  &lt;/div&gt;&lt;/div&gt;&lt;div class="container"&gt;  &lt;div class="item1"&gt;&lt;a href="https://1.bp.blogspot.com/-KuBubegQ0gw/WSN22QnLeiI/AAAAAAAADBo/DRykSH76im0UG3gCA1iZukWUhpymw_GNQCLcB/s1600/image4.png" imageanchor="1" &gt;&lt;img border="0" src="https://1.bp.blogspot.com/-KuBubegQ0gw/WSN22QnLeiI/AAAAAAAADBo/DRykSH76im0UG3gCA1iZukWUhpymw_GNQCLcB/s1600/image4.png" /&gt;&lt;/a&gt;  &lt;/div&gt;  &lt;div class="item2"&gt;&lt;ul&gt;&lt;a href="https://play.google.com/store/apps/details?id=com.indialends.android&amp;hl=en"&gt;IndiaLends&lt;/a&gt;: Credit underwriting and analytics platform for unsecured consumer lending&lt;/ul&gt;  &lt;/div&gt;&lt;/div&gt;&lt;div class="container"&gt;&lt;div class="item1"&gt;&lt;a href="https://2.bp.blogspot.com/-3ZvCecbBPi0/WSN3JtZJlHI/AAAAAAAADBs/Pc40NNRAnPIlD3KfJRu0r96weijJYraPQCLcB/s1600/image16.png" imageanchor="1" &gt;&lt;img border="0" src="https://2.bp.blogspot.com/-3ZvCecbBPi0/WSN3JtZJlHI/AAAAAAAADBs/Pc40NNRAnPIlD3KfJRu0r96weijJYraPQCLcB/s1600/image16.png" /&gt;&lt;/a&gt;&lt;/div&gt;  &lt;div class="item2"&gt;&lt;ul&gt;&lt;a href="https://play.google.com/store/apps/details?id=com.railyatri.in.mobile&amp;hl=en"&gt;RailYatri&lt;/a&gt;: Intelligent, big data platform that leverages crowd-sourced content to help long distance travelers&lt;/ul&gt;  &lt;/div&gt;&lt;/div&gt;&lt;div class="container"&gt;  &lt;div class="item1"&gt;&lt;a href="https://3.bp.blogspot.com/-MI63QpdokGI/WSN3fidIJcI/AAAAAAAADBw/bif2V_I3FpkOIgEd8rsxH0SRhDT1x_phACLcB/s1600/image21.png" imageanchor="1" &gt;&lt;img border="0" src="https://3.bp.blogspot.com/-MI63QpdokGI/WSN3fidIJcI/AAAAAAAADBw/bif2V_I3FpkOIgEd8rsxH0SRhDT1x_phACLcB/s1600/image21.png" /&gt;&lt;/a&gt;  &lt;/div&gt;  &lt;div class="item2"&gt;&lt;ul&gt;&lt;a href="https://play.google.com/store/apps/details?id=com.desertstorm.recipebook&amp;hl=en"&gt;RecipeBook&lt;/a&gt;: Intelligent solutions in food and retail powered by deep learning computer vision&lt;/ul&gt;  &lt;/div&gt;&lt;/div&gt;&lt;div class="container"&gt;  &lt;div class="item1"&gt;&lt;a href="https://4.bp.blogspot.com/-t5wCFsOB-CA/WSN4EjObGKI/AAAAAAAADB4/HcLEdcs013QC837wzRAzcjZPVpnAR9cuACLcB/s1600/image5.png" imageanchor="1" &gt;&lt;img border="0" src="https://4.bp.blogspot.com/-t5wCFsOB-CA/WSN4EjObGKI/AAAAAAAADB4/HcLEdcs013QC837wzRAzcjZPVpnAR9cuACLcB/s1600/image5.png" /&gt;&lt;/a&gt;  &lt;/div&gt;  &lt;div class="item2"&gt;&lt;ul&gt;&lt;a href="https://sigtuple.com/"&gt;SigTuple&lt;/a&gt;: Smart screening solutions powered by data driven intelligence&lt;/ul&gt;  &lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;div class="container0"&gt;  &lt;div class="item0"&gt;&lt;h2&gt;&lt;em&gt;Indonesia&lt;/em&gt;&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="container"&gt;  &lt;div class="item1"&gt;&lt;a href="https://1.bp.blogspot.com/-hZnnTSAG00o/WSN9Gnpj4bI/AAAAAAAADCo/GbXihDEKKWczlzBqy0FYsOqDRsB8uOjuQCLcB/s1600/image22.png" imageanchor="1" &gt;&lt;img border="0" src="https://1.bp.blogspot.com/-hZnnTSAG00o/WSN9Gnpj4bI/AAAAAAAADCo/GbXihDEKKWczlzBqy0FYsOqDRsB8uOjuQCLcB/s1600/image22.png" /&gt;&lt;/a&gt;  &lt;/div&gt;  &lt;div class="item2"&gt;&lt;ul&gt;&lt;a href="https://www.cicil.co.id/"&gt;Cicil&lt;/a&gt;: We allow Indonesian university students to purchase items online, and pay for them in monthly installments without a credit card!&lt;/ul&gt;  &lt;/div&gt;&lt;/div&gt;&lt;div class="container"&gt;  &lt;div class="item1"&gt;&lt;a href="https://2.bp.blogspot.com/-DJnLIE4DOvw/WSN4smi5x3I/AAAAAAAADCA/Ub-xQNkh4TgMAuaWgUrCglIgcPWwrMmfgCLcB/s1600/image26.png" imageanchor="1" &gt;&lt;img border="0" src="https://2.bp.blogspot.com/-DJnLIE4DOvw/WSN4smi5x3I/AAAAAAAADCA/Ub-xQNkh4TgMAuaWgUrCglIgcPWwrMmfgCLcB/s1600/image26.png" /&gt;&lt;/a&gt;  &lt;/div&gt;  &lt;div class="item2"&gt;&lt;ul&gt;&lt;a href="https://play.google.com/store/apps/details?id=com.nadi.pos&amp;hl=en"&gt;NADIPOS&lt;/a&gt;: Restaurant Management Platform helping simplify operations and analytics&lt;/ul&gt;  &lt;/div&gt;&lt;/div&gt;&lt;div class="container"&gt;  &lt;div class="item1"&gt;&lt;a href="https://1.bp.blogspot.com/-FQABHHM4wTo/WSN6BNjwZII/AAAAAAAADCI/zX8wBRqN7M011NfXJ7B8gdIZdEh966ixwCLcB/s1600/image17.png" imageanchor="1" &gt;&lt;img border="0" src="https://1.bp.blogspot.com/-FQABHHM4wTo/WSN6BNjwZII/AAAAAAAADCI/zX8wBRqN7M011NfXJ7B8gdIZdEh966ixwCLcB/s1600/image17.png" /&gt;&lt;/a&gt;  &lt;/div&gt;  &lt;div class="item2"&gt;&lt;ul&gt;&lt;a href="https://www.sirclo.com/"&gt;SIRCLO&lt;/a&gt;: Empowering businesses to sell online&lt;/ul&gt;  &lt;/div&gt;&lt;/div&gt;&lt;div class="container0"&gt;  &lt;div class="item0"&gt;&lt;h2&gt;&lt;em&gt;Malaysia&lt;/em&gt;&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="container"&gt;  &lt;div class="item1"&gt;&lt;a href="https://1.bp.blogspot.com/-ViofK6oVbBs/WSN64n9NE3I/AAAAAAAADCQ/Vp7OG-1BmoYkzaiL9obMPZmefpZT1y9SACLcB/s1600/image3.png" imageanchor="1" &gt;&lt;img border="0" src="https://1.bp.blogspot.com/-ViofK6oVbBs/WSN64n9NE3I/AAAAAAAADCQ/Vp7OG-1BmoYkzaiL9obMPZmefpZT1y9SACLcB/s1600/image3.png" /&gt;&lt;/a&gt;  &lt;/div&gt;  &lt;div class="item2"&gt;&lt;ul&gt;&lt;a href="http://healthmetrics.co/"&gt;HealthMetrics&lt;/a&gt;: Assisting companies managing their employee health benefits efficiently and cost effectively&lt;/ul&gt;  &lt;/div&gt;&lt;/div&gt;&lt;div class="container0"&gt;  &lt;div class="item0"&gt;&lt;h2&gt;&lt;em&gt;Philippines&lt;/em&gt;&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="container"&gt;  &lt;div class="item1"&gt;&lt;a href="https://2.bp.blogspot.com/-ZkYoutYca64/WSN7XwhG_DI/AAAAAAAADCY/GKVTJhbtzcoM0I_hO6y8ng9f0gnaafMNwCLcB/s1600/image19.png" imageanchor="1" &gt;&lt;img border="0" src="https://2.bp.blogspot.com/-ZkYoutYca64/WSN7XwhG_DI/AAAAAAAADCY/GKVTJhbtzcoM0I_hO6y8ng9f0gnaafMNwCLcB/s1600/image19.png" /&gt;&lt;/a&gt;  &lt;/div&gt;  &lt;div class="item2"&gt;&lt;ul&gt;&lt;a href="https://bloom.solutions/"&gt;BLOOM&lt;/a&gt;: Transforming remittance businesses with blockchain technology&lt;/ul&gt;  &lt;/div&gt;&lt;/div&gt;&lt;div class="container"&gt;  &lt;div class="item1"&gt;&lt;a href="https://2.bp.blogspot.com/-h4zZQ7nG9Ac/WSN7osrcoTI/AAAAAAAADCc/kLYH-8VQ9sQI3JdshICMLJAgUer5tkvGgCLcB/s1600/image23.png" imageanchor="1" &gt;&lt;img border="0" src="https://2.bp.blogspot.com/-h4zZQ7nG9Ac/WSN7osrcoTI/AAAAAAAADCc/kLYH-8VQ9sQI3JdshICMLJAgUer5tkvGgCLcB/s1600/image23.png" /&gt;&lt;/a&gt;  &lt;/div&gt;  &lt;div class="item2"&gt;&lt;ul&gt;&lt;a href="http://honestyapps.com/"&gt;Honesty Apps&lt;/a&gt;: A Do-it-yourself mobile application platform for both iOS and Android&lt;/ul&gt;  &lt;/div&gt;&lt;/div&gt;&lt;div class="container0"&gt;  &lt;div class="item0"&gt;&lt;h2&gt;&lt;em&gt;Thailand&lt;/em&gt;&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="container"&gt;  &lt;div class="item1"&gt;&lt;a href="https://4.bp.blogspot.com/-PdFDR9sqTX0/WSN_g7OW3-I/AAAAAAAADC0/D9XRWJi76VkN15c9Z7PdN8g91QXp0DCAQCLcB/s1600/image25.png" imageanchor="1" &gt;&lt;img border="0" src="https://4.bp.blogspot.com/-PdFDR9sqTX0/WSN_g7OW3-I/AAAAAAAADC0/D9XRWJi76VkN15c9Z7PdN8g91QXp0DCAQCLcB/s1600/image25.png" /&gt;&lt;/a&gt;  &lt;/div&gt;  &lt;div class="item2"&gt;&lt;ul&gt;&lt;a href="https://play.google.com/store/apps/details?id=com.neversitup.piggipo&amp;hl=th"&gt;Piggipo&lt;/a&gt;: An application that helps users manage and monitor credit card spending more easily and effectively&lt;/ul&gt;  &lt;/div&gt;&lt;/div&gt;&lt;div class="container"&gt;  &lt;div class="item1"&gt;&lt;a href="https://4.bp.blogspot.com/-O7Rbz4JwazA/WSN_wjcF8fI/AAAAAAAADC4/bIID-5XOiH0r25WVzkX-KlvUSnJzIwIuQCLcB/s1600/image15.png" imageanchor="1" &gt;&lt;img border="0" src="https://4.bp.blogspot.com/-O7Rbz4JwazA/WSN_wjcF8fI/AAAAAAAADC4/bIID-5XOiH0r25WVzkX-KlvUSnJzIwIuQCLcB/s1600/image15.png" /&gt;&lt;/a&gt;  &lt;/div&gt;  &lt;div class="item2"&gt;&lt;ul&gt;&lt;a href="https://play.google.com/store/apps/details?id=com.jorlek.queqcustomer&amp;hl=en"&gt;QueQ&lt;/a&gt;: Helps users manage time more wisely at crowded places&lt;/ul&gt;  &lt;/div&gt;&lt;/div&gt;&lt;div class="container0"&gt;  &lt;div class="item0"&gt;&lt;h2&gt;&lt;em&gt;Vietnam&lt;/em&gt;&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="container"&gt;  &lt;div class="item1"&gt;&lt;a href="https://3.bp.blogspot.com/-yPmv9R2v6I4/WSOAQuHs8sI/AAAAAAAADDA/z2ea6BrfRjcME3v_MxJZvnJmWEn99hV5wCLcB/s1600/image6.png" imageanchor="1" &gt;&lt;img border="0" src="https://3.bp.blogspot.com/-yPmv9R2v6I4/WSOAQuHs8sI/AAAAAAAADDA/z2ea6BrfRjcME3v_MxJZvnJmWEn99hV5wCLcB/s1600/image6.png" /&gt;&lt;/a&gt;  &lt;/div&gt;  &lt;div class="item2"&gt;&lt;ul&gt;&lt;a href="https://edoctor.io/"&gt;eDoctor&lt;/a&gt;: Allows users to consult doctors anytime, anywhere&lt;/ul&gt;  &lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;h3&gt;&lt;center&gt;&lt;u&gt;Europe&lt;/u&gt;&lt;/center&gt;&lt;/h3&gt;&lt;p&gt;&lt;div class="container0"&gt;  &lt;div class="item0"&gt;&lt;h2&gt;&lt;em&gt;Czech Republic&lt;/em&gt;&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="container"&gt;  &lt;div class="item1"&gt;&lt;a href="https://3.bp.blogspot.com/-K-5WgM4DH08/WSOBD7l8NnI/AAAAAAAADDI/91u10m94FuQy9MAkXqDpBOT54JQvuwLXQCLcB/s1600/image9.png" imageanchor="1" &gt;&lt;img border="0" src="https://3.bp.blogspot.com/-K-5WgM4DH08/WSOBD7l8NnI/AAAAAAAADDI/91u10m94FuQy9MAkXqDpBOT54JQvuwLXQCLcB/s1600/image9.png" /&gt;&lt;/a&gt;  &lt;/div&gt;  &lt;div class="item2"&gt;&lt;ul&gt;&lt;a href="https://play.google.com/store/apps/details?id=com.gameeapp.android.app&amp;hl=en"&gt;Gamee&lt;/a&gt;: A social gaming platform&lt;/ul&gt;  &lt;/div&gt;&lt;/div&gt;&lt;div class="container"&gt;  &lt;div class="item1"&gt;&lt;a href="https://4.bp.blogspot.com/-ifxbLzxQcWQ/WSOBSHbDF7I/AAAAAAAADDM/S7oDsKyAtZ49kS7Vcmw0hJWUcbkwoMkWgCLcB/s1600/image31.png" imageanchor="1" &gt;&lt;img border="0" src="https://4.bp.blogspot.com/-ifxbLzxQcWQ/WSOBSHbDF7I/AAAAAAAADDM/S7oDsKyAtZ49kS7Vcmw0hJWUcbkwoMkWgCLcB/s1600/image31.png" /&gt;&lt;/a&gt;  &lt;/div&gt;  &lt;div class="item2"&gt;&lt;ul&gt;&lt;a href="https://play.google.com/store/apps/details?id=com.cleevio.spendee&amp;hl=en"&gt;Spendee&lt;/a&gt;: Helps users understand their finances&lt;/ul&gt;  &lt;/div&gt;&lt;/div&gt;&lt;div class="container0"&gt;  &lt;div class="item0"&gt;&lt;h2&gt;&lt;em&gt;Hungary&lt;/em&gt;&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="container"&gt;  &lt;div class="item1"&gt;&lt;a href="https://4.bp.blogspot.com/-gMXPAvjJGMg/WSOBiwmhY2I/AAAAAAAADDQ/NT5WyvzJwUobocuJOdbhzX50BKzY1pV8gCLcB/s1600/image2.png" imageanchor="1" &gt;&lt;img border="0" src="https://4.bp.blogspot.com/-gMXPAvjJGMg/WSOBiwmhY2I/AAAAAAAADDQ/NT5WyvzJwUobocuJOdbhzX50BKzY1pV8gCLcB/s1600/image2.png" /&gt;&lt;/a&gt;  &lt;/div&gt;  &lt;div class="item2"&gt;&lt;ul&gt;&lt;a href="https://publishdrive.com"&gt;PublishDrive&lt;/a&gt;: Intelligent SaaS enabled ebook publishing platform to increase sales globally&lt;/ul&gt;  &lt;/div&gt;&lt;/div&gt;&lt;div class="container0"&gt;  &lt;div class="item0"&gt;&lt;h2&gt;&lt;em&gt;Poland&lt;/em&gt;&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="container"&gt;  &lt;div class="item1"&gt;&lt;a href="https://1.bp.blogspot.com/-5_OLo61zEFU/WSOBvttpYlI/AAAAAAAADDU/qkltwmCr0aQf-C70mYWf2UuupyBOalzAACLcB/s1600/image32.png" imageanchor="1" &gt;&lt;img border="0" src="https://1.bp.blogspot.com/-5_OLo61zEFU/WSOBvttpYlI/AAAAAAAADDU/qkltwmCr0aQf-C70mYWf2UuupyBOalzAACLcB/s1600/image32.png" /&gt;&lt;/a&gt;  &lt;/div&gt;  &lt;div class="item2"&gt;&lt;ul&gt;&lt;a href="https://play.google.com/store/apps/details?id=com.dromnibus.dromnibus&amp;hl=en"&gt;DrOmnibus&lt;/a&gt;: Multimedia tools that support special needs education and therapy for children with developmental and behavioral disorders&lt;/ul&gt;  &lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;h3&gt;&lt;center&gt;&lt;u&gt;Latin America&lt;/u&gt;&lt;/center&gt;&lt;/h3&gt;&lt;p&gt;&lt;div class="container0"&gt;  &lt;div class="item0"&gt;&lt;h2&gt;&lt;em&gt;Argentina&lt;/em&gt;&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="container"&gt;  &lt;div class="item1"&gt;&lt;a href="https://1.bp.blogspot.com/-UttlveQPaj0/WSOCRb2m8tI/AAAAAAAADDc/0dhZMb4Jv88TUEr7GV8xT2slm_5NmAY0wCLcB/s1600/image14.png" imageanchor="1" &gt;&lt;img border="0" src="https://1.bp.blogspot.com/-UttlveQPaj0/WSOCRb2m8tI/AAAAAAAADDc/0dhZMb4Jv88TUEr7GV8xT2slm_5NmAY0wCLcB/s1600/image14.png" /&gt;&lt;/a&gt;  &lt;/div&gt;  &lt;div class="item2"&gt;&lt;ul&gt;&lt;a href="http://increase.com.ar"&gt;Increase&lt;/a&gt;: Simplifies and modernizes how merchants and companies understand, control and manage their income.&lt;/ul&gt;  &lt;/div&gt;&lt;/div&gt;&lt;div class="container0"&gt;  &lt;div class="item0"&gt;&lt;h2&gt;&lt;em&gt;Brazil&lt;/em&gt;&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="container"&gt;  &lt;div class="item1"&gt;&lt;a href="https://3.bp.blogspot.com/-oAs1vHI_xZE/WSOHjnnGnLI/AAAAAAAADDs/ZDeaQnayPAYaMDZSvWZ7yJ48iTdVovKbgCLcB/s1600/image10.png" imageanchor="1" &gt;&lt;img border="0" src="https://3.bp.blogspot.com/-oAs1vHI_xZE/WSOHjnnGnLI/AAAAAAAADDs/ZDeaQnayPAYaMDZSvWZ7yJ48iTdVovKbgCLcB/s1600/image10.png" /&gt;&lt;/a&gt;  &lt;/div&gt;  &lt;div class="item2"&gt;&lt;ul&gt;&lt;a href="https://arquivei.com.br"&gt;Arquivei&lt;/a&gt;: Empowers companies with smart data from fiscal documents fetch &amp; analysis&lt;/ul&gt;  &lt;/div&gt;&lt;/div&gt;&lt;div class="container"&gt;  &lt;div class="item1"&gt;&lt;a href="https://4.bp.blogspot.com/-yQeUyM5vrN8/WSOHwkL2ygI/AAAAAAAADDw/1p1EyBF42_IHfKBf6XDhRq0Vsc_dK8nXwCLcB/s1600/image7.png" imageanchor="1" &gt;&lt;img border="0" src="https://4.bp.blogspot.com/-yQeUyM5vrN8/WSOHwkL2ygI/AAAAAAAADDw/1p1EyBF42_IHfKBf6XDhRq0Vsc_dK8nXwCLcB/s1600/image7.png" /&gt;&lt;/a&gt;  &lt;/div&gt;  &lt;div class="item2"&gt;&lt;ul&gt;&lt;a href="https://play.google.com/store/apps/details?id=com.contabilizei&amp;hl=en"&gt;Contabilizei&lt;/a&gt;: Tax reporting and accounting SaaS for small businesses in Brazil&lt;/ul&gt;  &lt;/div&gt;&lt;/div&gt;&lt;div class="container"&gt;  &lt;div class="item1"&gt;&lt;a href="https://2.bp.blogspot.com/-yRNCZyhChhw/WSOH7nrI2NI/AAAAAAAADD0/oSmMPA2Q0pQzPRRDiFAHR8l3NVh7UMp2wCLcB/s1600/image12.png" imageanchor="1" &gt;&lt;img border="0" src="https://2.bp.blogspot.com/-yRNCZyhChhw/WSOH7nrI2NI/AAAAAAAADD0/oSmMPA2Q0pQzPRRDiFAHR8l3NVh7UMp2wCLcB/s1600/image12.png" /&gt;&lt;/a&gt;  &lt;/div&gt;  &lt;div class="item2"&gt;&lt;ul&gt;&lt;a href="https://www.contratado.me/"&gt;Contratado.ME&lt;/a&gt;: The marketplace that puts candidates at the center of their job search&lt;/ul&gt;  &lt;/div&gt;&lt;/div&gt;&lt;div class="container"&gt;  &lt;div class="item1"&gt;&lt;a href="https://3.bp.blogspot.com/-czaKVd4Cses/WSOJJQoVnfI/AAAAAAAADEE/lRnKa8HdWeEGeVM4zukxxKivDA4lDTYaQCLcB/s1600/image13.png" imageanchor="1" &gt;&lt;img border="0" src="https://3.bp.blogspot.com/-czaKVd4Cses/WSOJJQoVnfI/AAAAAAAADEE/lRnKa8HdWeEGeVM4zukxxKivDA4lDTYaQCLcB/s1600/image13.png" /&gt;&lt;/a&gt;  &lt;/div&gt;  &lt;div class="item2"&gt;&lt;ul&gt;&lt;a href="https://play.google.com/store/apps/details?id=com.guichevirtual.android&amp;hl=pt-BR"&gt;Guiche Virtua&lt;/a&gt;l: The app for booking bus tickets in Brazil&lt;/ul&gt;  &lt;/div&gt;&lt;/div&gt;&lt;div class="container0"&gt;  &lt;div class="item0"&gt;&lt;h2&gt;&lt;em&gt;Chile&lt;/em&gt;&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="container"&gt;  &lt;div class="item1"&gt;&lt;a href="https://4.bp.blogspot.com/-S_TH017hwdE/WSOJZl-zQLI/AAAAAAAADEI/6uBWDGOHTFQ2WxhtZK0TNWF30mYitcgOgCLcB/s1600/image20.png" imageanchor="1" &gt;&lt;img border="0" src="https://4.bp.blogspot.com/-S_TH017hwdE/WSOJZl-zQLI/AAAAAAAADEI/6uBWDGOHTFQ2WxhtZK0TNWF30mYitcgOgCLcB/s1600/image20.png" /&gt;&lt;/a&gt;  &lt;/div&gt;  &lt;div class="item2"&gt;&lt;ul&gt;&lt;a href="https://www.comparaonline.cl/"&gt;ComparaOnline&lt;/a&gt;: The best and the most transparent marketplace for financial products in Latin America&lt;/ul&gt;  &lt;/div&gt;&lt;/div&gt;&lt;div class="container0"&gt;  &lt;div class="item0"&gt;&lt;h2&gt;&lt;em&gt;Mexico&lt;/em&gt;&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="container"&gt;  &lt;div class="item1"&gt;&lt;a href="https://4.bp.blogspot.com/-LQJ-xx1C41M/WSOJr6X10eI/AAAAAAAADEM/My1O6SzddfkJVgdP_Z0Qk-ZleYn2Mk8bACLcB/s1600/image11.png" imageanchor="1" &gt;&lt;img border="0" src="https://4.bp.blogspot.com/-LQJ-xx1C41M/WSOJr6X10eI/AAAAAAAADEM/My1O6SzddfkJVgdP_Z0Qk-ZleYn2Mk8bACLcB/s1600/image11.png" /&gt;&lt;/a&gt;  &lt;/div&gt;  &lt;div class="item2"&gt;&lt;ul&gt;&lt;a href="https://play.google.com/store/apps/details?id=com.instafit.workouts&amp;hl=en"&gt;InstaFit Workouts&lt;/a&gt;: Mobile fitness subscription platform for Spanish speakers&lt;/ul&gt;  &lt;/div&gt;&lt;/div&gt;&lt;div class="container"&gt;  &lt;div class="item1"&gt;&lt;a href="https://3.bp.blogspot.com/-HvVvOsSViGg/WSOJxLHkmJI/AAAAAAAADEQ/SRapL2Tidt8dM7H7onLHqZl-5BR0YukPwCLcB/s1600/image27.png" imageanchor="1" &gt;&lt;img border="0" src="https://3.bp.blogspot.com/-HvVvOsSViGg/WSOJxLHkmJI/AAAAAAAADEQ/SRapL2Tidt8dM7H7onLHqZl-5BR0YukPwCLcB/s1600/image27.png" /&gt;&lt;/a&gt;  &lt;/div&gt;  &lt;div class="item2"&gt;&lt;ul&gt;&lt;a href="https://play.google.com/store/apps/details?id=com.lyncode.app.cfe&amp;hl=en"&gt;Switch&lt;/a&gt;: Low cost, mobile bill pay&lt;/ul&gt;  &lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/GDBcode/~4/AjKtW6_fDu4" height="1" width="1" alt=""/&gt;</content><link rel="replies" type="application/atom+xml" href="http://developers.googleblog.com/feeds/6139358160761948507/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://developers.googleblog.com/2017/05/announcing-fourth-class-of-launchpad.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/6139358160761948507" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/6139358160761948507" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GDBcode/~3/AjKtW6_fDu4/announcing-fourth-class-of-launchpad.html" title="Announcing the fourth class of Launchpad Accelerator featuring new countries!" /><author><name>Google Devs</name><uri>https://plus.google.com/116954523003757714329</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img1.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://4.bp.blogspot.com/-8SoqUKvEzAI/WSNfzDj1S6I/AAAAAAAADA4/TUPRzywA5RACybN84q-ZN5nGKXZYBQCSgCLcB/s72-c/image8.png" height="72" width="72" /><thr:total>0</thr:total><gd:extendedProperty name="commentSource" value="1" /><gd:extendedProperty name="commentModerationMode" value="FILTERED_POSTMOD" /><feedburner:origLink>http://developers.googleblog.com/2017/05/announcing-fourth-class-of-launchpad.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-596098824972435195.post-7148125296448205846</id><published>2017-05-19T10:55:00.000-07:00</published><updated>2017-05-19T10:55:41.485-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="#io17" /><category scheme="http://www.blogger.com/atom/ns#" term="AdMob" /><category scheme="http://www.blogger.com/atom/ns#" term="AdWords" /><category scheme="http://www.blogger.com/atom/ns#" term="Firebase" /><category scheme="http://www.blogger.com/atom/ns#" term="Google I/O" /><category scheme="http://www.blogger.com/atom/ns#" term="payments" /><category scheme="http://www.blogger.com/atom/ns#" term="Universal App Campaigns" /><title type="text">Google I/O: New Ways to Put Users at the Center of Your Apps and Payments</title><content type="html">&lt;em&gt;Cross posted from&amp;nbsp;&lt;a href="https://admob.googleblog.com/2017/05/google-io-new-ways-to-put-users-center-your-apps-payments.html"&gt;Inside AdMob&lt;/a&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;br /&gt;&lt;/em&gt;&lt;em&gt;Posted by Sridhar Ramaswamy, Senior Vice President, Ads and Commerce&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;I/O is a magical time at Google. Every year, thousands of developers gather&amp;nbsp;in Google's backyard to share new product ideas and learn about our latest innovations in computing.&lt;br /&gt;&lt;br /&gt;We're meeting at an exciting time for the developer community. It's a time when consumers have more choices than ever before—like where to shop, what to watch, which games to play and how to communicate with friends and family. Your product needs to stand out. You need tools to help your business grow. And you need to make sure your users are happy.&lt;br /&gt;&lt;br /&gt;We think we can help.&lt;br /&gt;&lt;br /&gt;This week, my team and I shared 3 new innovations for developers to make it easy for users to pay for your services, build profitable businesses and grow your user base.&lt;br /&gt;&lt;dl&gt;&lt;dt&gt;&lt;strong&gt;Enabling users to pay with Google&lt;/strong&gt;&lt;/dt&gt;&lt;div id="gdcalert1"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div id="gdcalert1"&gt;Starting today, our suite of payment solutions will be expanding. The Google Payment API enables merchants and developers to turbocharge checkout conversion by offering your users an easy way to pay with credit and debit cards saved to their Google Account. Users will have multiple Google payment options at their fingertips, like a credit or a debit card previously saved via Android Pay, a payment card used to transact on the Play Store or a form of payment stored via Chrome. And they'll be able to use these saved payment options in third-party apps and mobile sites, as well as on Google Assistant when they are on-the-go.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;/dl&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://2.bp.blogspot.com/-uJdgeyOXud0/WR3heQRDsOI/AAAAAAAAC04/RlF-dYvi4OUY2KgRK5Z2ncgR-T9qxwwBQCLcB/s1600/Pay%2Bwith%2BGoogle%2BAssistant_Panera%2B%2528for%2Bblog%2529.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://2.bp.blogspot.com/-uJdgeyOXud0/WR3heQRDsOI/AAAAAAAAC04/RlF-dYvi4OUY2KgRK5Z2ncgR-T9qxwwBQCLcB/s640/Pay%2Bwith%2BGoogle%2BAssistant_Panera%2B%2528for%2Bblog%2529.gif" width="360" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;i&gt;Paying with Google for Panera Bread on Google Assistant&lt;/i&gt;&lt;/div&gt;&lt;br /&gt;For users, this means faster checkout. Now they'll never miss a deal because they're stuck on a bus and don't want to pull out their credit card in front of strangers. They'll no longer experience the pain of stumbling on a sale that ends at midnight when they're tucked in bed with their credit card out of reach. Users can save time and headache by using credit and debit cards they've already saved to their Google Account whenever they see the option to pay with Google on supported apps or sites.&lt;br /&gt;&lt;br /&gt;For developers, this API is a significant innovation that can enable faster checkout, drive more conversions, increase sales and reduce abandoned carts—all with a simple integration. Learn more about our Google Payment API&amp;nbsp;&lt;a href="https://www.google.com/payments/solutions/?utm_source=payments&amp;amp;utm_medium=blog&amp;amp;utm_campaign=io2017pay"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;dl&gt;&lt;dt&gt;&lt;strong&gt;Earn more from your apps with the brand new AdMob&lt;/strong&gt;&lt;/dt&gt;&lt;div id="gdcalert3"&gt;&lt;span style="color: red; font-weight: bold;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;/dl&gt;People turn to their mobile devices throughout the day to shop, communicate and stay entertained. For developers, in-app purchases are one way to monetize. Ads are another way.&lt;br /&gt;AdMob was built to support the app ecosystem. With over 1 million apps across iOS and Android,&amp;nbsp;&lt;strong&gt;AdMob has paid over $3.5 billion dollars&amp;nbsp;&lt;/strong&gt;&lt;b&gt;in ads revenue&amp;nbsp;&lt;/b&gt;&lt;strong&gt;to developers&lt;/strong&gt;. But there's more we can do to help you succeed.&lt;br /&gt;&lt;br /&gt;Today, we're introducing a completely redesigned&amp;nbsp;&lt;a href="https://www.google.com/admob/announcements.html"&gt;AdMob&lt;/a&gt;. Rebuilt from the ground up, AdMob is now simpler to use and delivers richer insights about your users' in-app experiences.&lt;br /&gt;&lt;br /&gt;&lt;blockquote class="tr_bq"&gt;&lt;strong&gt;Simpler to use&lt;/strong&gt;: We've applied&amp;nbsp;&lt;a href="https://material.io/"&gt;Material Design&lt;/a&gt;&amp;nbsp;to all aspects of the AdMob look and feel to deliver an easy-to-use and intuitive experience across the entire platform—on mobile and desktop. You'll get more done in less time. Below you can see how easy it is to pick an app that you're monitoring, check out its key metrics and then quickly take action to fine-tune its performance.&lt;/blockquote&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://1.bp.blogspot.com/-vcCvLyu_uxA/WR3hz_YaHrI/AAAAAAAAC08/UZIimepPo94AqbCtVEQNLTxE6Fx3jtLQACEw/s1600/AdMob-Image-Generic-Networks.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="484" src="https://1.bp.blogspot.com/-vcCvLyu_uxA/WR3hz_YaHrI/AAAAAAAAC08/UZIimepPo94AqbCtVEQNLTxE6Fx3jtLQACEw/s640/AdMob-Image-Generic-Networks.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;i&gt;Redesigned AdMob experience&amp;nbsp;&lt;/i&gt;&lt;/div&gt;&lt;blockquote class="tr_bq"&gt;&lt;strong&gt;Deeper insights:&lt;/strong&gt;&amp;nbsp;We've also integrated Google Analytics for Firebase into the core of the redesigned AdMob so you have quick access to the metrics that matter most for your business. Once you&amp;nbsp;&lt;a href="https://support.google.com/firebase/answer/6387949"&gt;link&lt;/a&gt;&amp;nbsp;your AdMob and Firebase accounts, you'll have access to detailed ad revenue data and user insights like time spent in the app and in-app purchases—all in one place.&lt;/blockquote&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://4.bp.blogspot.com/-t_LFA39_lj8/WR3iIQogJ2I/AAAAAAAAC1A/hTInyOOKoqQyHE7PtSn4pMfcV8H2pMm9ACLcB/s1600/AdMob%2BImage%2B2%2B-%2BBlog.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://4.bp.blogspot.com/-t_LFA39_lj8/WR3iIQogJ2I/AAAAAAAAC1A/hTInyOOKoqQyHE7PtSn4pMfcV8H2pMm9ACLcB/s640/AdMob%2BImage%2B2%2B-%2BBlog.png" width="566" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;dl&gt;&lt;div id="gdcalert5"&gt;&lt;div style="text-align: center;"&gt;&lt;i&gt;Google Analytics for Firebase dashboard in AdMob&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;&lt;div id="gdcalert5"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div id="gdcalert5"&gt;&lt;strong&gt;Know your user, find your user with Universal App Campaigns&lt;/strong&gt;&lt;/div&gt;&lt;/dl&gt;Earning money from your app is one piece of the puzzle. You also need to think about how to grow your user base.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Google's app innovations have delivered over 5 billion installs from ads and we are now helping developers drive over 3 billion in-app events per quarter&lt;/strong&gt;—like users adding something to their cart or reaching level 3 of a game. Developers have gravitated toward&amp;nbsp;&lt;a href="https://support.google.com/adwords/answer/6247380?hl=en"&gt;Universal App Campaigns&lt;/a&gt;&amp;nbsp;(UAC) as the "one stop shop" campaign type that scales your reach and maximizes app installs across Google's largest properties: Google Play, Search, YouTube, Gmail and the Display Network. UAC uses Google's machine learning technology to evaluate numerous signals in real time, refining each ad to help you reach your most engaged users. We're continuing to double down on UAC, with all new innovations being built into UAC to make app promotion even more effective.&lt;br /&gt;&lt;dl&gt;&lt;blockquote class="tr_bq"&gt;&lt;strong&gt;Engage users in key moments of discovery with new UAC placements in Google Play&lt;/strong&gt;&amp;nbsp;&lt;/blockquote&gt;&lt;blockquote class="tr_bq"&gt;Android reaches more than 2 billion active devices every month, with Google Play available in 190+ countries around the world. It's the place users come to discover new apps and games. Beyond searching for apps to try, users are increasingly browsing the Play store and finding recommendations for new apps.&amp;nbsp;&lt;/blockquote&gt;&lt;blockquote class="tr_bq"&gt;To help those users discover more of your apps, we are introducing&amp;nbsp;&lt;strong&gt;new ad placements on the home and app listing pages in the Google Play Store&lt;/strong&gt;. These new placements, available exclusively through UAC, help you reach users in "discovery mode" as they swipe, tap and scroll in search of their next favorite app.&amp;nbsp;&lt;/blockquote&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://4.bp.blogspot.com/-P7nBK7jFsiY/WR3iju_tPTI/AAAAAAAAC1E/cSGaEFGZf0IR_jsuwQRQwiJTBXgZG3jjgCLcB/s1600/Play-Ads-SC-Anim-Lrg.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://4.bp.blogspot.com/-P7nBK7jFsiY/WR3iju_tPTI/AAAAAAAAC1E/cSGaEFGZf0IR_jsuwQRQwiJTBXgZG3jjgCLcB/s640/Play-Ads-SC-Anim-Lrg.gif" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;i&gt;New ad placements reach users browsing in Google Play&lt;/i&gt;&amp;nbsp;&lt;/div&gt;&lt;blockquote class="tr_bq"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;strong&gt;Discover more of your best users with new bidding options in UAC&lt;/strong&gt;&amp;nbsp;&lt;/blockquote&gt;&lt;blockquote class="tr_bq"&gt;Some users are more valuable to your business than others, like the players who level-up in your game or the loyal travelers who book several flights a month. That's why we're expanding&amp;nbsp;&lt;a href="https://support.google.com/adwords/answer/7065882"&gt;Smart Bidding strategies&lt;/a&gt;&amp;nbsp;in UAC to help you acquire more of these high-value users. Using Smart Bidding, you can tailor bids for your unique business goals - target cost per acquisition (tCPA) or target return on ad spend (tROAS). UAC delivers the right users based on your objectives:&amp;nbsp;&lt;strong&gt;installs, events and, coming soon, value&lt;/strong&gt;. This update starts rolling out to iOS and Android developers and advertisers in the coming months.&amp;nbsp;&lt;/blockquote&gt;&lt;blockquote class="tr_bq"&gt;&lt;strong&gt;Introducing App Attribution Partners, a new measurement program&lt;/strong&gt;&amp;nbsp;&lt;/blockquote&gt;&lt;blockquote class="tr_bq"&gt;Many developers rely on third-party measurement providers to measure the impact of ads and gain valuable insights about how users engage with your app. To help you take action on these insights in a faster and more seamless way, we are introducing&amp;nbsp;&lt;a href="http://google.com/adwords/appcampaigns/attribution"&gt;App Attribution Partners&lt;/a&gt;, a new program designed to integrate data from 7 global companies right into AdWords.&lt;br /&gt;&lt;br /&gt;Welcome to adjust, Adways, AppsFlyer, Apsalar, CyberZ, Kochava and TUNE... we're thrilled to have them onboard!&lt;br /&gt;&lt;br /&gt;AdWords' integration with these partners ensures that you have consistent, reliable and more granular data where you review app metrics. Now you can take action with confidence and stay on top of your business performance.&lt;/blockquote&gt;&lt;/dl&gt;As consumers live more of their lives online, it's increasingly important for developers to build user-centric experiences in everything that you do—from the apps you design, to the experiences you deliver, to the ways you help people transact. We know it's not always easy, so Google is here to help.&lt;br /&gt;&lt;br /&gt;We look forward to continuing on this journey with you.&lt;img src="http://feeds.feedburner.com/~r/GDBcode/~4/RblhWsUs6CM" height="1" width="1" alt=""/&gt;</content><link rel="replies" type="application/atom+xml" href="http://developers.googleblog.com/feeds/7148125296448205846/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://developers.googleblog.com/2017/05/google-io-new-ways-to-put-users-center-your-apps-payments.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/7148125296448205846" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/7148125296448205846" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GDBcode/~3/RblhWsUs6CM/google-io-new-ways-to-put-users-center-your-apps-payments.html" title="Google I/O: New Ways to Put Users at the Center of Your Apps and Payments" /><author><name>Google Devs</name><uri>https://plus.google.com/116954523003757714329</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img1.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://2.bp.blogspot.com/-uJdgeyOXud0/WR3heQRDsOI/AAAAAAAAC04/RlF-dYvi4OUY2KgRK5Z2ncgR-T9qxwwBQCLcB/s72-c/Pay%2Bwith%2BGoogle%2BAssistant_Panera%2B%2528for%2Bblog%2529.gif" height="72" width="72" /><thr:total>0</thr:total><gd:extendedProperty name="commentSource" value="1" /><gd:extendedProperty name="commentModerationMode" value="FILTERED_POSTMOD" /><feedburner:origLink>http://developers.googleblog.com/2017/05/google-io-new-ways-to-put-users-center-your-apps-payments.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-596098824972435195.post-8439198338416113836</id><published>2017-05-18T11:44:00.000-07:00</published><updated>2017-05-18T11:44:03.852-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="#io17" /><category scheme="http://www.blogger.com/atom/ns#" term="chrome" /><category scheme="http://www.blogger.com/atom/ns#" term="chrome devtools" /><category scheme="http://www.blogger.com/atom/ns#" term="Google I/O" /><category scheme="http://www.blogger.com/atom/ns#" term="polymer" /><title type="text">The Modern Mobile Web: State of the Union</title><content type="html">&lt;i&gt;Cross&lt;/i&gt;&lt;em&gt;&amp;nbsp;posted from the &lt;a href="https://blog.chromium.org/2017/05/the-modern-mobile-web-state-of-union.html"&gt;Chromium Blog&lt;/a&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;br /&gt;&lt;/em&gt;&lt;em&gt;Posted by Rahul Roy-chowdhury, VP Product Management, Chrome&lt;/em&gt;&lt;br /&gt;What a difference a year makes. Last year at Google I/O, &lt;a href="https://blog.chromium.org/2016/05/the-mobile-web-is-open-for-business.html"&gt;we shared&lt;/a&gt; that the mobile web was open for business. New technologies such as AMP and Progressive Web Apps (PWAs) were bringing new capabilities, better performance, and a streamlined workflow to the mobile web.&lt;br /&gt;Fast forward one year later: more than two billion AMP pages have been created and "PWA" has proved to be far more than a buzzword—it’s now the way that many businesses around the world are building for mobile devices. For more details, take a look at the video from Google I/O on the latest &lt;a href="https://youtu.be/_ssDaecATCM"&gt;mobile web state of the union&lt;/a&gt;, or read below on how these technologies are making the modern mobile web mainstream.&lt;br /&gt;&lt;b&gt;Momentum&lt;/b&gt;&lt;br /&gt;Summing up all the great &lt;a href="https://developers.google.com/web/showcase"&gt;success stories&lt;/a&gt; from around the world in a single post is a tall order, but here are some highlights.&lt;br /&gt;&lt;br /&gt;To improve the performance of Wego's mobile site, the company built AMP pages using &lt;a href="https://www.ampproject.org/docs/guides/pwa-amp/amp-to-pwa"&gt;amp-install-serviceworker&lt;/a&gt; to transition to a fast PWA experience. Average page load time decreased from 12 seconds to less than one second, and conversion rates increased by 95%.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;iframe width="560" height="315" src="https://www.youtube.com/embed/_pmjBZi5zY0" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;br /&gt;When Forbes rebuilt their mobile website as a PWA, they began by re-thinking what their experience could look like on a phone. Instead of minimally updating their underlying site, Forbes integrated PWA technologies to provide an immersive, app-like experience. They saw immediate improvements and engagement rates have more than doubled since launch.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; color: rgba(0, 0, 0, 0.87); font-family: Roboto, sans-serif; font-size: 17px; text-align: center;"&gt;&lt;iframe width="560" height="315" src="https://www.youtube.com/embed/JmC0xkCMFCE" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;br /&gt;&lt;a href="https://developers.google.com/web/showcase/2017/ola"&gt;Ola&lt;/a&gt;, the leading cab aggregator in India, built a PWA and noticed that 20% of users who book using their PWA had previously uninstalled their app. By reducing the amount of storage space needed, the PWA allowed them to effectively re-engage with users that otherwise would have been lost.&lt;br /&gt;Another success story is &lt;a href="https://developers.google.com/web/showcase/2017/twitter"&gt;Twitter Lite&lt;/a&gt;, a PWA which minimizes data usage, is resilient on unreliable mobile networks, and is less than 1MB of space on a device. Twitter's new mobile experience is also optimized for speed, with up to 30% faster launch times as well as quicker navigation throughout the site. They've found that users are spending 2.7x more time on site, and as a result are seeing 76% more tweets on the new PWA than their previous mobile site. Twitter is seeing incredible re-engagement with 1 million sessions initiated a day from icons added to the Android homescreen.&lt;br /&gt;&lt;b&gt;Polished Experiences&lt;/b&gt;&lt;br /&gt;Users expect a lot from their mobile devices, and we've added tons of APIs over the past year to meet that demand. The mobile web can support more use cases and get more done than ever before. A few highlights: &lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Improved Add to Homescreen:&lt;/b&gt; Earlier this year we unveiled &lt;a href="https://blog.chromium.org/2017/02/integrating-progressive-web-apps-deeply.html"&gt;Improved Add to Homescreen&lt;/a&gt;, integrating PWAs much deeper into the Android operating system. Now, in addition to being displayed on the homescreen, PWAs are also displayed in the app launcher and Android settings alongside native apps, and can also open in response to users clicking links in Chrome or other apps.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Payments:&lt;/b&gt; Checkout can be a complicated process. To improve payment flows on the web, we launched a one-tap payment API called &lt;a href="https://goo.gl/yWXhDq"&gt;Payment Request&lt;/a&gt;. Using this API allows web apps to support credit cards and Google payment mechanisms such as Android Pay. We also just announced that it is now possible to integrate this API with &lt;a href="https://goo.gl/A4BH49"&gt;additional payment apps&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Media Consumption:&lt;/b&gt; Over 70% of internet traffic is video. To allow great mobile web media experiences we have given the users more control over playback with the Media Session API, improved full screen playback with the Screen Orientation API, and we’re filling out features for offline with Background Fetch. To learn more, see our &lt;a href="https://developers.google.com/web/fundamentals/media/mobile-web-video-playback"&gt;mobile web media best practices&lt;/a&gt; and see how the APIs can come together at our &lt;a href="http://biograf-155113.appspot.com/"&gt;PWA for Media demo&lt;/a&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;b&gt;Tooling&lt;/b&gt;&lt;br /&gt;We’ve also been working hard to improve and extend the set of tools that let you build engaging experiences on the web.&lt;br /&gt;&lt;a href="https://developers.google.com/web/tools/lighthouse/"&gt;Lighthouse&lt;/a&gt; is a new automated tool for measuring the quality of a web experience. It runs nearly 100 audits against your web app, checking everything from page performance, to byte efficiency, to accessibility, and gives you a summary score. New integration with Chrome's DevTools means you’ll be able to run Lighthouse audits without leaving the browser.&lt;br /&gt;&lt;a href="https://www.polymer-project.org/2.0/start/"&gt;Polymer 2.0&lt;/a&gt; is the next major release of the Polymer library, re-built from the ground up to take advantage of the best new features of the modern web platform. This release uses new Web Component API’s that have shipped in Chrome and Safari. It’s completely modular and best of all - it’s now 10% faster and 80% smaller.&lt;br /&gt;Chrome is committed to making sure that you can develop easily, engage with your users, and build a thriving business around the web. For the latest news, &lt;a href="https://www.youtube.com/user/ChromeDevelopers?sub_confirmation=1"&gt;subscribe&lt;/a&gt; to our YouTube channel and follow us on Twitter &lt;a href="https://twitter.com/chromiumdev"&gt;@ChromiumDev&lt;/a&gt;.&lt;img src="http://feeds.feedburner.com/~r/GDBcode/~4/09zFAt_CGLU" height="1" width="1" alt=""/&gt;</content><link rel="replies" type="application/atom+xml" href="http://developers.googleblog.com/feeds/8439198338416113836/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://developers.googleblog.com/2017/05/the-modern-mobile-web-state-of-union.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/8439198338416113836" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/8439198338416113836" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GDBcode/~3/09zFAt_CGLU/the-modern-mobile-web-state-of-union.html" title="The Modern Mobile Web: State of the Union" /><author><name>Google Devs</name><uri>https://plus.google.com/116954523003757714329</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img1.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img.youtube.com/vi/_pmjBZi5zY0/default.jpg" height="72" width="72" /><thr:total>0</thr:total><gd:extendedProperty name="commentSource" value="1" /><gd:extendedProperty name="commentModerationMode" value="FILTERED_POSTMOD" /><feedburner:origLink>http://developers.googleblog.com/2017/05/the-modern-mobile-web-state-of-union.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-596098824972435195.post-8765578239587571691</id><published>2017-05-17T14:17:00.000-07:00</published><updated>2017-05-17T14:17:36.320-07:00</updated><title type="text">Google I/O 2017: Empowering developers to build the best experiences across platforms</title><content type="html">&lt;em&gt;By Jason Titus, Vice President, Developer Product Group&lt;/em&gt;&lt;p&gt;It's great to be in our backyard again for Google I/O to connect with developers around the world. The 7,200 attendees at Shoreline Amphitheatre, millions of viewers on the &lt;a href="https://events.google.com/io/"&gt;livestream&lt;/a&gt;, and thousand of developers at local &lt;a href="https://events.google.com/io/extended/"&gt;I/O Extended&lt;/a&gt; events across 80+ countries heard about our efforts to make the lives of developers easier -- allowing them to focus on the problems they're trying to solve by minimizing the pain points of building a product. &lt;/p&gt;&lt;p&gt;Earlier this morning, our CEO Sundar Pichai &lt;a href="https://blog.google/topics/machine-learning/making-ai-work-for-everyone/"&gt;talked&lt;/a&gt;about our various billion-user platforms. Whether it's Android or Chrome or the mobile Web, our success would not have been possible without the developer community. And during our &lt;a href="https://events.google.com/io/schedule/?section=may-17&amp;sid=__keynote2__"&gt;Developer Keynote&lt;/a&gt;, we covered our heavy investments in tools and services for developers who build on our platforms every day. &lt;/p&gt;&lt;p&gt;We have a lot to cover over the next three days. Let's take a closer look at the major developer news at I/O so far: &lt;/p&gt;&lt;h2&gt;Platforms that connect developers to billions of users around the world&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://android-developers.googleblog.com/2017/05/whats-new-in-android-o-developer.html"&gt;Android O Developer Preview 2&lt;/a&gt; — Get a look at the next release of Android O focused on fluid experiences that make Android even more useful, and our efforts to optimize battery life, startup time, graphic rendering time, and stability. Early adopters can opt in to the Android O Beta Program at &lt;a href="http://android.com/beta"&gt;android.com/beta&lt;/a&gt; and run Android O now. &lt;li&gt;&lt;a href="https://android-developers.googleblog.com/2017/05/here-comes-treble-modular-base-for.html"&gt;Project Treble&lt;/a&gt; — Last week, we also introduced a new Android framework designed to help reduce the time and effort it takes device makers to upgrade a phone to a new version of Android, starting with Android O. &lt;li&gt;&lt;a href="http://android-developers.googleblog.com/2017/05/whats-new-in-android-o-developer.html"&gt;Android Go&lt;/a&gt; — We're optimizing Android to run smoothly on entry-level devices, starting with the O release. We're also designing Google apps to use less memory, storage space, and mobile data, including apps such as YouTube Go, Chrome, and Gboard. &lt;li&gt;&lt;a href="http://android-developers.googleblog.com/2017/05/android-announces-support-for-kotlin.html"&gt;Kotlin&lt;/a&gt;— Android is officially supporting the Kotlin programming language, in addition to the Java language and C++. Kotlin is a brilliantly designed, mature, production-ready language that we believe will make Android development faster and more fun. &lt;li&gt;&lt;a href="http://android-developers.googleblog.com/2017/05/android-studio-3-0-canary1.html"&gt;Android Studio 3.0 Canary&lt;/a&gt; — Our new preview includes three major features to accelerate development flow: a new suite of app performance profiling tools to quickly diagnose performance issues, support for the Kotlin programming language, and increased Gradle build speeds for large sized app projects. &lt;li&gt;Mobile Web — &lt;a href="https://www.ampproject.org/"&gt;AMP&lt;/a&gt; and&lt;a href="https://developers.google.com/web/progressive-web-apps/"&gt; Progressive Web Apps&lt;/a&gt;&lt;span style="text-decoration:underline;"&gt; &lt;/span&gt;(PWAs) are re-defining modern mobile web development. AMP gets content in front of users fast and PWAs deliver app-focused experiences that are reliable, fast and engaging. We're seeing&lt;a href="https://developers.google.com/web/showcase"&gt; success stories&lt;/a&gt;from all around the world - travel company &lt;a href="https://www.youtube.com/watch?v=_pmjBZi5zY0"&gt;Wego&lt;/a&gt; has rolled out a successful AMP based PWA and &lt;a href="https://www.youtube.com/watch?v=JmC0xkCMFCE"&gt;Forbes&lt;/a&gt; has seen user engagement double since launching a PWA. If you're wondering how good your current web experience is, you can use&lt;a href="https://developers.google.com/web/tools/lighthouse/"&gt; Lighthouse&lt;/a&gt; - an automated tool for measuring web-page quality. Be sure to tune in this afternoon for the&lt;a href="https://events.google.com/io/schedule/?section=may-17&amp;sid=aff68d97-f91f-4303-a1e4-c3549d59f907"&gt;Mobile Web: State of the Union&lt;/a&gt; talk to hear more about building rich mobile web experiences.&lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;Infrastructure and services to take mobile apps and the Web to the next level&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://firebase.googleblog.com/2017/05/whats-new-from-firebase-at-google-io.html"&gt;Firebase&lt;/a&gt;— At last year's I/O, we expanded Firebase to a full mobile development platform with products to help you build your app and grow your business. Over a million developers now use Firebase, and we're doubling down on our efforts to simplify more every-day developer challenges. We're giving more insights to understand app performance through Firebase Performance Monitoring, introducing integration between Hosting and Cloud Functions, adding support for Phone Number Authentication, and continuing to improve Analytics in a number of ways. We've also started &lt;a href="http://opensource.googleblog.com/2017/05/open-sourcing-firebase-sdks.html"&gt;open sourcing our SDKs&lt;/a&gt;. &lt;li&gt;&lt;a href="https://developers.google.com/training/certification/"&gt;Mobile web developer certifications&lt;/a&gt; — At I/O'16 we launched the Associate Android Developer Certification. This year, we're adding two new certifications for web developers: the &lt;a href="https://developers.googleblog.com/2017/04/introducing-mobile-sites-certification.html"&gt;Mobile Sites Certification&lt;/a&gt; and the &lt;a href="https://developers.google.com/training/certification"&gt;Mobile Web Specialist Certification&lt;/a&gt;. &lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;Powerful tools to acquire and engage new users; grow successful businesses&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="https://android-developers.googleblog.com/2017/05/whats-new-in-google-play-at-io-2017.html"&gt;Google Play Console&lt;/a&gt; — We announced several powerful, new features and reports in the Play Console to help developers improve their app's performance, manage releases with confidence, reach a global audience, and grow their business. The Play Console also has a new name, to reflect its broadened business uses, and a fresh look to make it easier to get things done. &lt;li&gt;&lt;a href="http://android-developers.googleblog.com/2017/05/android-instant-apps-is-open-to-all.html"&gt;Android Instant Apps&lt;/a&gt; — We opened Android Instant Apps, a new way to run Android apps without requiring installation, to &lt;a href="http://g.co/InstantApps"&gt;all developers&lt;/a&gt;. Now anyone can build and publish an instant app. There are also more than 50 new experiences available for users to try out from a variety of brands, such as Jet, New York Times, Vimeo and Zillow. &lt;li&gt;Payments, Monetization &amp; Ads — We introduced a Google Payment API that enables developers to give their customers the ability to pay in apps and online with credit or debit cards saved to their Google Account. New AdMob integration with Google Analytics for Firebase helps them monetize efficiently and updates to Universal Apps Campaigns will help them grow their user base. &lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;New interfaces to push the limits of what's possible&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="https://blog.google/products/assistant/your-assistant-getting-better-on-google-home-and-your-phone"&gt;Actions on Google for the Google Assistant&lt;/a&gt; — We brought Actions on Google to phones, introduced new features and functionality, improved our SDK and more. We also launched the Actions Console, a new developer console that helps developers work as a team, and collect data on app usage, performance and user discovery patterns. This new console is integrated with the Firebase and Google Cloud consoles. &lt;li&gt;&lt;a href="https://events.google.com/io/schedule/?section=may-18&amp;sid=3f4efba7-3bc7-4c88-afa5-f30485d92eca"&gt;VR and AR at Google&lt;/a&gt; — We'll have more to share on the latest Daydream platform features and developer tools during our "VR and AR at Google" session tomorrow (May 18) at 9:30 AM PT in the Amphitheatre and on the livestream.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;It's important to us that developers are successful. In addition to building products that help solve developer challenges, we're on the ground in over 130 countries, growing and expanding the developer community through programs such as &lt;a href="https://www.womentechmakers.com/"&gt;Women Techmakers&lt;/a&gt; &amp; Google Developer Groups (&lt;a href="https://developers.google.com/groups/"&gt;GDGs&lt;/a&gt;). We're also investing in training programs like &lt;a href="https://developers.google.com/training/certification/"&gt;Google Developers Certification&lt;/a&gt; and courses through Udacity and other partners to help developers deepen their technical capability. We're also excited to announce two large multi-product developer events, Google Developer Days, which are planned for Europe (September 2017 in Krakow, Poland) and India (December 2017 in Bangalore, India). If you are interested to find out more, sign up for updates on &lt;a href="https://services.google.com/fb/forms/googledeveloperdayseurope2017-registerforupdates/"&gt;g.co/gdd2017&lt;/a&gt;. &lt;/p&gt;&lt;p&gt;During Google  I/O, attendees and viewers have an opportunity to dive deep into a number of these areas with 14 content tracks and 140+ breakout sessions -- covering Android to Assistant to VR -- and all livestreamed. We've also launched over &lt;a href="https://codelabs.developers.google.com/"&gt;70 codelabs&lt;/a&gt; to get developers up and running with our latest APIs today. &lt;/p&gt;&lt;p&gt;Whether it's Android, Chrome, Play, VR/AR, the Cloud, and the Mobile Web — we're constantly investing in the platforms that connect developers to billions of users around the world. Thank you to the continued support and feedback from the developer community. &lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/GDBcode/~4/XC8HyfTeSIw" height="1" width="1" alt=""/&gt;</content><link rel="replies" type="application/atom+xml" href="http://developers.googleblog.com/feeds/8765578239587571691/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://developers.googleblog.com/2017/05/google-io-2017-empowering-developers-to.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/8765578239587571691" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/8765578239587571691" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GDBcode/~3/XC8HyfTeSIw/google-io-2017-empowering-developers-to.html" title="Google I/O 2017: Empowering developers to build the best experiences across platforms" /><author><name>Google Devs</name><uri>https://plus.google.com/116954523003757714329</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img1.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><gd:extendedProperty name="commentSource" value="1" /><gd:extendedProperty name="commentModerationMode" value="FILTERED_POSTMOD" /><feedburner:origLink>http://developers.googleblog.com/2017/05/google-io-2017-empowering-developers-to.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-596098824972435195.post-7794413187100342146</id><published>2017-05-17T14:10:00.000-07:00</published><updated>2017-05-17T14:10:50.420-07:00</updated><title type="text">From Actions on Google to the SDK, the Google Assistant is getting better for developers</title><content type="html">&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;em&gt;Posted by Brad Abrams, Product Manager for the Google Assistant&lt;/em&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;em&gt;&lt;br /&gt;&lt;/em&gt;&lt;/div&gt;&lt;em&gt;&lt;br /&gt;&lt;/em&gt;Five months ago, we &lt;a href="https://developers.googleblog.com/2016/12/start-building-actions-on-google.html"&gt;announced&lt;/a&gt;an early version of the Actions on Google developer platform for Google Home. Since then we've been focused on growing your audience, expanding the platform's features and improving the developer experience overall. With today's news, we're excited to bring the platform to phones, introduce new features and functionality, improve our SDK and continue to work together to create great apps for Google Assistant users near and far! &lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Introducing Actions on Google on phones&lt;/h3&gt;&lt;br /&gt;Since the platform launched in December, it's been exciting to see creative and interesting apps come to life on Google Home, from working with &lt;a href="https://assistant.google.com/services/a/id/38b63eba66daf6e4"&gt;FitStar&lt;/a&gt;to getting the latest news with &lt;a href="https://assistant.google.com/services/a/id/479692ee51bb4ddc"&gt;CNBC&lt;/a&gt;. Today, we're bringing Actions on Google to the Assistant on both Android phones and iPhones. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;With apps for the Assistant now available on phones, you'll have the opportunity to grow your user base and build apps for entirely new use cases -- things that weren't suited to a voice-only interface, like shopping for clothes or ordering food from a lengthy menu. Moving to a screen also means users can easily get things done with their app through new UI elements like image carousels, lists, and suggestion chips. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;You can build and deploy apps for the Assistant on the phones starting today - here's &lt;a href="http://developers.google.com/actions"&gt;the documentation&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;We'll also soon be launching Actions on Google in English in the UK and later this year French and German, and other languages. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Adding Transactions and Payments&lt;/h3&gt;Our goal with the Assistant is to help you get things done - and that doesn’t just mean asking questions or listening to information. We also want to make it easy to complete purchases.&lt;br /&gt;&lt;br /&gt;To enable payments in your apps for the Google Assistant, you have two options. You can use Google-facilitated payments that are free, easy to integrate, and allow you to leverage the hundreds of millions of cards that are already available with Google. Or, you can use the payment method the user has already provided you. With this second option, we recommend using our new seamless account linking solution that enables users to sign into an existing account or create a new account with just two taps.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;But a transaction isn't over when the user pays, it includes things like tracking an order, modifying or reordering. That's why the Assistant now allows users to see all their transactions in a single history view. And we also built an order-updates feature to make it easier to re-engage. With it you can send status updates like when a car arrives to pick them up, when their food is delivered, or their prescription is ready. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;You can &lt;a href="http://developers.google.com/actions"&gt;start building and testing transactional apps today&lt;/a&gt;, and they'll be available to Google Assistant users on phones soon.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://1.bp.blogspot.com/-tpbGTFd1icU/WRxmRj98n-I/AAAAAAAACtM/ndsra3EM6202ZaBO8S6mzXHfSh1XLtX3wCLcB/s1600/Final-Panera-GIF-PIXEL.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="https://1.bp.blogspot.com/-tpbGTFd1icU/WRxmRj98n-I/AAAAAAAACtM/ndsra3EM6202ZaBO8S6mzXHfSh1XLtX3wCLcB/s640/Final-Panera-GIF-PIXEL.gif" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;h3&gt;Offering Better Tools and Discovery&lt;/h3&gt;With all of these new features, getting the basics is more important than ever and we know that great tools and being discovered are top of mind. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;We're invested in offering a great developer experience, so today we're also launching a new developer console. This console helps you work as a team, and collect data on your app's usage, performance and user discovery patterns. It's integrated with the Firebase and Google Cloud consoles, so that you share data within your apps. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Additionally, we're rolling out a new app directory. Users can access it with a single tap from the Google Assistant and it has both categories and user ratings. Each app's directory page is also shareable on the web so that you can promote your app for new and existing users and they can share it with their friends.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;With this update, they can also create a shortcut to your app, so instead of saying "Ok Google, ask Forecaster Joe what's the surf report for the Outer Banks", a user can just say their personal shortcut, like "Ok Google, is the surf up?" to easily re-engage with your app.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;While we're confident these features will help improve discoverability, our work is not done! We'll continue to add new features and improve the discoverability of your apps over time.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://4.bp.blogspot.com/-kr82L8HTgG0/WRxo83SQhJI/AAAAAAAACtk/_IWGmaH7Uy83HtPnlxteBxD8yiMhezieACLcB/s1600/Screen%2BShot%2B2017-05-17%2Bat%2B8.13.34%2BAM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="https://4.bp.blogspot.com/-kr82L8HTgG0/WRxo83SQhJI/AAAAAAAACtk/_IWGmaH7Uy83HtPnlxteBxD8yiMhezieACLcB/s400/Screen%2BShot%2B2017-05-17%2Bat%2B8.13.34%2BAM.png" width="221" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;h3&gt;Updating the Assistant SDK&lt;/h3&gt;Last month we &lt;a href="https://developers.googleblog.com/2017/04/introducing-google-assistant-sdk.html"&gt;introduced&lt;/a&gt;a preview of the Google Assistant SDK. Today, we're continuing to make it better by adding a number of new features. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;With hotword support, developers can now build devices that are triggered by "Ok Google" rather than a button or some other physical action. We're also adding the ability to have both timers and alarms. So a user can now say "Ok Google, set a timer for 60 seconds" on any device with the Google Assistant built-in. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;While we are still in the early days of the SDK and the platform, we're continuing to work on creating a more comprehensive developer experience. We're also looking to bring the platform to new devices, including those powered by the Google Assistant SDK. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="https://1.bp.blogspot.com/-y6Fxt5Q801c/WRvuDTiLskI/AAAAAAAACq8/Kh4ZPgQgrpsqDLogvzEohN7fxyKDM5EdwCLcB/s1600/assistantSDK_01_1920x1080%2B%25282%2529.jpg"&gt;&lt;img height="360" src="https://1.bp.blogspot.com/-y6Fxt5Q801c/WRvuDTiLskI/AAAAAAAACq8/Kh4ZPgQgrpsqDLogvzEohN7fxyKDM5EdwCLcB/s640/assistantSDK_01_1920x1080%2B%25282%2529.jpg" width="640" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;h3&gt;Announcing a new developer competition&lt;/h3&gt;Last but not least, we're also launching the first &lt;a href="http://g.co/actionschallenge"&gt;developer competition for Actions on Google&lt;/a&gt;. As part of this competition, there will be more than 20 prizes for the best apps for the Google Assistant! So start building - we can't wait to see what you come up with. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;We're excited for the road ahead and look forward to working with you to develop new apps for the Google Assistant. &lt;img src="http://feeds.feedburner.com/~r/GDBcode/~4/Eukg7cIyQiA" height="1" width="1" alt=""/&gt;</content><link rel="replies" type="application/atom+xml" href="http://developers.googleblog.com/feeds/7794413187100342146/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://developers.googleblog.com/2017/05/from-actions-on-google-to-sdk-google.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/7794413187100342146" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/7794413187100342146" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GDBcode/~3/Eukg7cIyQiA/from-actions-on-google-to-sdk-google.html" title="From Actions on Google to the SDK, the Google Assistant is getting better for developers" /><author><name>Google Devs</name><uri>https://plus.google.com/116954523003757714329</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img1.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://1.bp.blogspot.com/-tpbGTFd1icU/WRxmRj98n-I/AAAAAAAACtM/ndsra3EM6202ZaBO8S6mzXHfSh1XLtX3wCLcB/s72-c/Final-Panera-GIF-PIXEL.gif" height="72" width="72" /><thr:total>0</thr:total><gd:extendedProperty name="commentSource" value="1" /><gd:extendedProperty name="commentModerationMode" value="FILTERED_POSTMOD" /><feedburner:origLink>http://developers.googleblog.com/2017/05/from-actions-on-google-to-sdk-google.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-596098824972435195.post-1299486930066735527</id><published>2017-05-17T11:59:00.000-07:00</published><updated>2017-05-17T11:59:20.596-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="machine learning" /><category scheme="http://www.blogger.com/atom/ns#" term="TensorFlow" /><category scheme="http://www.blogger.com/atom/ns#" term="TensorFlow Research Cloud" /><title type="text">Introducing the TensorFlow Research Cloud</title><content type="html">&lt;em&gt;Posted by Zak Stone, Product Manager for TensorFlow&lt;/em&gt;&lt;br /&gt;Researchers require enormous computational resources to train the machine learning (ML) models that have delivered recent breakthroughs in &lt;a href="https://research.googleblog.com/2017/03/assisting-pathologists-in-detecting.html"&gt;medical imaging&lt;/a&gt;, &lt;a href="https://research.googleblog.com/2016/09/a-neural-network-for-machine.html"&gt;neural machine translation&lt;/a&gt;, &lt;a href="https://deepmind.com/research/alphago/"&gt;game playing&lt;/a&gt;, and many other domains. We believe that significantly larger amounts of computation will make it possible for researchers to invent new types of ML models that will be even more accurate and useful. &lt;br /&gt;To accelerate the pace of open machine-learning research, we are introducing the &lt;a href="https://www.tensorflow.org/tfrc"&gt;TensorFlow Research Cloud&lt;/a&gt; (TFRC), a cluster of 1,000 &lt;a href="https://cloud.google.com/tpu/"&gt;Cloud TPUs&lt;/a&gt; that will be made available free of charge to support a broad range of computationally-intensive research projects that might not be possible otherwise. &lt;br /&gt;&lt;center&gt;&lt;a href="https://2.bp.blogspot.com/-1o_xatGB4os/WRvUOjQdKwI/AAAAAAAACog/e1qpRyIYWQIUgxqkdH_uRo2JUBAaUUQvACLcB/s1600/TensorFlow%2B1.png"&gt;&lt;img src="https://2.bp.blogspot.com/-1o_xatGB4os/WRvUOjQdKwI/AAAAAAAACog/e1qpRyIYWQIUgxqkdH_uRo2JUBAaUUQvACLcB/s400/TensorFlow%2B1.png" width="100%" /&gt;&lt;/a&gt;&lt;/center&gt;The TensorFlow Research Cloud offers researchers the following benefits: &lt;br /&gt;&lt;ul&gt;&lt;li&gt;Access to Google's all-new &lt;a href="https://cloud.google.com/tpu/"&gt;Cloud TPUs&lt;/a&gt; that accelerate both training &lt;em&gt;and&lt;/em&gt; inference &lt;/li&gt;&lt;li&gt;Up to 180 teraflops of floating-point performance per Cloud TPU &lt;/li&gt;&lt;li&gt;64 GB of ultra-high-bandwidth memory per Cloud TPU &lt;/li&gt;&lt;li&gt;Familiar TensorFlow programming interfaces&lt;/li&gt;&lt;/ul&gt;You can &lt;a href="https://services.google.com/fb/forms/tpusignup/"&gt;sign up here&lt;/a&gt; to request to be notified when the TensorFlow Research Cloud application process opens, and you can optionally share more information about your computational needs. We plan to evaluate applications on a rolling basis in search of the most creative and ambitious proposals. &lt;br /&gt;The TensorFlow Research Cloud program is not limited to academia — we recognize that people with a wide range of affiliations, roles, and expertise are making major machine learning research contributions, and we especially encourage those with non-traditional backgrounds to apply. Access will be granted to selected individuals for limited amounts of compute time, and researchers are welcome to apply multiple times with multiple projects. &lt;br /&gt;&lt;center&gt;&lt;a href="https://4.bp.blogspot.com/-xUP7XISGwmU/WRvT9AwyHXI/AAAAAAAACoc/ZfAPWpRuEXcF3EGw_zLivAlJJrzntJL3ACLcB/s1600/TensorFlow%2B2.jpg"&gt;&lt;img src="https://4.bp.blogspot.com/-xUP7XISGwmU/WRvT9AwyHXI/AAAAAAAACoc/ZfAPWpRuEXcF3EGw_zLivAlJJrzntJL3ACLcB/s400/TensorFlow%2B2.jpg" /&gt;&lt;/a&gt;&lt;/center&gt;Since the main goal of the TensorFlow Research Cloud is to benefit the open machine learning research community as a whole, successful applicants will be expected to do the following: &lt;br /&gt;&lt;ul&gt;&lt;li&gt;Share their TFRC-supported research with the world through peer-reviewed publications, open-source code, blog posts, or other open media &lt;/li&gt;&lt;li&gt;Share concrete, constructive feedback with Google to help us improve the TFRC program and the underlying Cloud TPU platform over time &lt;/li&gt;&lt;li&gt;Imagine a future in which ML acceleration is abundant and develop new kinds of machine learning models in anticipation of that future&lt;/li&gt;&lt;/ul&gt;For businesses interested in using Cloud TPUs for proprietary research and development, we will offer a parallel Cloud TPU Alpha program. You can &lt;a href="https://services.google.com/fb/forms/tpusignup/"&gt;sign up here&lt;/a&gt; to learn more about this program. We recommend participating in the Cloud TPU Alpha program if you are interested in any of the following: &lt;br /&gt;&lt;ul&gt;&lt;li&gt;Accelerating training of proprietary ML models; models that take weeks to train on other hardware can be trained in days or even hours on Cloud TPUs &lt;/li&gt;&lt;li&gt;Accelerating batch processing of industrial-scale datasets: images, videos, audio, unstructured text, structured data, etc. &lt;/li&gt;&lt;li&gt;Processing live requests in production using larger and more complex ML models than ever before&lt;/li&gt;&lt;/ul&gt;We hope the &lt;a href="https://www.tensorflow.org/tfrc"&gt;TensorFlow Research Cloud&lt;/a&gt; will allow as many researchers as possible to explore the frontier of machine learning research and extend it with new discoveries! We encourage you to &lt;a href="https://services.google.com/fb/forms/tpusignup"&gt;sign up today&lt;/a&gt; to be among the first to know as more information becomes available. &lt;img src="http://feeds.feedburner.com/~r/GDBcode/~4/fjkp8HnYnZw" height="1" width="1" alt=""/&gt;</content><link rel="replies" type="application/atom+xml" href="http://developers.googleblog.com/feeds/1299486930066735527/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://developers.googleblog.com/2017/05/introducing-tensorflow-research-cloud.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/1299486930066735527" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/1299486930066735527" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GDBcode/~3/fjkp8HnYnZw/introducing-tensorflow-research-cloud.html" title="Introducing the TensorFlow Research Cloud" /><author><name>Google Devs</name><uri>https://plus.google.com/116954523003757714329</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img1.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://2.bp.blogspot.com/-1o_xatGB4os/WRvUOjQdKwI/AAAAAAAACog/e1qpRyIYWQIUgxqkdH_uRo2JUBAaUUQvACLcB/s72-c/TensorFlow%2B1.png" height="72" width="72" /><thr:total>0</thr:total><gd:extendedProperty name="commentSource" value="1" /><gd:extendedProperty name="commentModerationMode" value="FILTERED_POSTMOD" /><feedburner:origLink>http://developers.googleblog.com/2017/05/introducing-tensorflow-research-cloud.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-596098824972435195.post-5717400803767251084</id><published>2017-05-12T10:48:00.000-07:00</published><updated>2017-05-12T10:48:01.661-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="#io17" /><category scheme="http://www.blogger.com/atom/ns#" term="Developer Keynote" /><category scheme="http://www.blogger.com/atom/ns#" term="Google I/O" /><category scheme="http://www.blogger.com/atom/ns#" term="I/O" /><category scheme="http://www.blogger.com/atom/ns#" term="I/O 2017" /><category scheme="http://www.blogger.com/atom/ns#" term="IO17" /><category scheme="http://www.blogger.com/atom/ns#" term="Shoreline Amphitheatre" /><title type="text">Get ready for Google I/O 2017</title><content type="html">&lt;em&gt;Posted by Mónica Bagagem, Product Marketing Manager&lt;/em&gt;&lt;br /&gt;We’re excited to be hosting Google I/O 2017 next week at the &lt;a href="https://earth.google.com/web/@37.4267374,-122.0805931,5.53916871a,818.32594339d,35y,0h,45t,0r/data=ClkaVxJRCiUweDgwOGZiOWY3NzZmNWUxNjU6MHgxZGRmMDE0YTFiNTUzZjNkGXN9xFSftkJAISEy9m8ohV7AKhZTaG9yZWxpbmUgQW1waGl0aGVhdHJlGAIgASgC"&gt;Shoreline Amphitheatre&lt;/a&gt;!  The agenda for May 17-19 is packed with rich, technical content. Here are some tips to help you make the most of it.  &lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Attending in person?&lt;/h2&gt;Everyone is guaranteed a spot for the keynotes but seating will be pre-assigned on a first-come, first-served basis during badge pick-up. Your seating section will be noted on your badge. &lt;a href="https://events.google.com/io/schedule/?section=agenda&amp;amp;utm_source=google&amp;amp;utm_medium=blog&amp;amp;utm_campaign=getready"&gt;Badge pick-up&lt;/a&gt; starts on Tuesday, May 16th, between 7AM - 7PM PDT at the Shoreline Amphitheatre. &lt;b&gt;Plan to come by early to get the best seats!&lt;/b&gt;&lt;br /&gt;Sessions start at 2PM after the &lt;a href="https://events.google.com/io/schedule/?section=may-17&amp;amp;sid=__keynote2__&amp;amp;utm_source=google&amp;amp;utm_medium=blog&amp;amp;utm_campaign=getready"&gt;Developer Keynote&lt;/a&gt; ends, and are roughly 40mins in length. To help make it easier for you to attend your favorite talks and minimize lines, you can reserve seats for sessions now via our &lt;a href="https://events.google.com/io/schedule?utm_source=google&amp;amp;utm_medium=blog&amp;amp;utm_campaign=getready"&gt;web app&lt;/a&gt;, &lt;a href="https://play.google.com/store/apps/details?id=com.google.samples.apps.iosched"&gt;Android app&lt;/a&gt; and &lt;a href="https://itunes.apple.com/app/id1109898820"&gt;iOS app&lt;/a&gt; using your Google I/O registration email address. Additionally, App reviews and select Sandbox demos will be reservable onsite on a first-come, first-served basis at the beginning of each day.  &lt;br /&gt;Beyond attending technical Sessions, you’ll have the opportunity to check out our latest product demos and speak directly with Google engineers throughout the Sandbox space; during Codelabs where you can complete self-paced tutorials; and at Office Hours where you can get specific questions answered 1:1 with Googlers. &lt;br /&gt;Remember to save some energy for the evening! On Day 1, we’ll host an &lt;a href="https://events.google.com/io/schedule/?section=may-17&amp;amp;type=afterhours&amp;amp;utm_source=google&amp;amp;utm_medium=blog&amp;amp;utm_campaign=getready"&gt;After Hours Block Party&lt;/a&gt; from 7-10PM. It will include dinner, drinks, and lots of fun, interactive experiences throughout the Sandbox space: our very own comedy club, an international food market &amp;amp; pizza party, several musical performances, a VR drive-in, a Museum of Developer Art, to name just a few! On Day 2, we’ll have an After Hours Concert from 8-10PM (don’t worry, we’ll feed you dinner, too!). Stay tuned - we’ll be announcing the talent closer to I/O.  &lt;br /&gt;Don’t forget to to check the &lt;a href="https://www.google.com/search?q=weather+mountain+view+ca&amp;amp;oq=weather+mountain+view&amp;amp;aqs=chrome.0.0j69i57j0l4.4506j0j0&amp;amp;sourceid=chrome&amp;amp;ie=UTF-8"&gt;Mountain View weather forecast&lt;/a&gt; for each day; &lt;b&gt;we recommend bringing a jacket for the evening festivities as it can get chilly after dark&lt;/b&gt;. Although all Sessions and Sandboxes will take place in climate controlled structures, Shoreline Amphitheatre is an outdoor venue - so come prepared for whatever mother nature might have in store!  &lt;br /&gt;Finally, you can find directions, shuttle schedules, biking, parking, and carpooling info &lt;a href="https://events.google.com/io/attending/?utm_source=google&amp;amp;utm_medium=blog&amp;amp;utm_campaign=get_ready#travel"&gt;here&lt;/a&gt;.  &lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Attending remotely?&lt;/h2&gt;Even if you’re not at Shoreline, you can still participate in I/O from afar! Here’s how:   &lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;I/O Extended&lt;/b&gt;: Find an &lt;a href="https://events.google.com/io/extended?utm_source=google&amp;amp;utm_medium=blog&amp;amp;utm_campaign=getready"&gt;I/O Extended event&lt;/a&gt; near you to watch the keynotes with your community, participate in hackathons, codelabs, and much more.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Livestream&lt;/b&gt;: Tune into the livestream throughout the 3 day festival on desktop and mobile. &lt;/li&gt;&lt;li&gt;&lt;b&gt;I/O Live Widget&lt;/b&gt;: If you want to bring the livestream and the #io17 social conversation to your audience, you can customize and embed our &lt;a href="https://events.google.com/io/widget/?utm_source=google&amp;amp;utm_medium=blog&amp;amp;utm_campaign=getready"&gt;I/O Live widget&lt;/a&gt; on your site or blog.&lt;/li&gt;&lt;li&gt;&lt;b&gt;I/O Guide&lt;/b&gt;: Follow our Guide, &lt;a href="https://twitter.com/timothyjordan"&gt;Timothy Jordan&lt;/a&gt;, as he tours the venue and gets the inside scoop. You can find him on any of our livestream channels throughout the event, in-between sessions. &lt;li&gt;&lt;b&gt;#io17request&lt;/b&gt;: Between May 17-19, send us your questions about I/O via English-language tweets that include the #io17request hashtag. A team of Googlers across Android, Chrome, Assistant, VR, Machine Learning, and more will track down answers to your burning questions.&lt;/li&gt;&lt;li&gt;&lt;b&gt;I/O in photos&lt;/b&gt;: Be sure to follow out our real-time I/O &lt;a href="https://photos.google.com/share/AF1QipNbuzlX4pZ8EtFzOGgBjN14Jj_nQWS2tL4UNaY8AiEFy6ZNQlaHFoJKltgJol0WFQ?key=MEo0bi1sZ01pN2ZZRmQyOUdPczItZTRpeEotYlFB"&gt;photo album&lt;/a&gt; from Shoreline!&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Check out our &lt;a href="https://events.google.com/io/faq/?utm_source=google&amp;amp;utm_medium=blog&amp;amp;utm_campaign=getready"&gt;FAQ page&lt;/a&gt; if you need more info and join the conversation at &lt;a href="https://twitter.com/search?q=%23io17&amp;amp;src=typd"&gt;#io17&lt;/a&gt;. See you veryyyyy soon! &lt;img src="http://feeds.feedburner.com/~r/GDBcode/~4/sRq6vHa0gV4" height="1" width="1" alt=""/&gt;</content><link rel="replies" type="application/atom+xml" href="http://developers.googleblog.com/feeds/5717400803767251084/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://developers.googleblog.com/2017/05/get-ready-for-google-io-2017.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/5717400803767251084" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/5717400803767251084" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GDBcode/~3/sRq6vHa0gV4/get-ready-for-google-io-2017.html" title="Get ready for Google I/O 2017" /><author><name>Google Devs</name><uri>https://plus.google.com/116954523003757714329</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img1.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><gd:extendedProperty name="commentSource" value="1" /><gd:extendedProperty name="commentModerationMode" value="FILTERED_POSTMOD" /><feedburner:origLink>http://developers.googleblog.com/2017/05/get-ready-for-google-io-2017.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-596098824972435195.post-8081009302621439249</id><published>2017-05-12T09:00:00.000-07:00</published><updated>2017-05-12T09:00:13.571-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="material" /><category scheme="http://www.blogger.com/atom/ns#" term="material components" /><category scheme="http://www.blogger.com/atom/ns#" term="material design" /><category scheme="http://www.blogger.com/atom/ns#" term="UI" /><title type="text">Build beautiful apps and websites with modular, customizable UI components </title><content type="html">&lt;style&gt; .separator img { margin:0; }  .list-wrapper { margin: 1em 0; }  .list-wrapper:after { content: ""; display: table; clear: both; }  &lt;/style&gt;  &lt;i&gt;Posted by Adrian Secord and Omer Ziv, Material Design&lt;/i&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="https://material.io/components"&gt;Material Components&lt;/a&gt; lets you build easily for Android, iOS, and the web using open-source code for &lt;a href="https://material.io/"&gt;Material Design&lt;/a&gt;, a shared set of principles uniting style, brand, interaction, and motion. &lt;/p&gt;&lt;p&gt;These components are regularly updated by a team of engineers and designers to follow the latest Material Design guidelines, ensuring well-crafted implementations that meet development standards such as internationalization and accessibility support. &lt;/p&gt;&lt;div class="list-wrapper"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://1.bp.blogspot.com/-EYiSCHnpbcw/WRNTgHmAF2I/AAAAAAAACnk/vKvH0LX15rkwvJCSsUuXsLKMUmMZZec8gCLcB/s1600/image2.png" imageanchor="1" style="clear: left; float: left; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="https://1.bp.blogspot.com/-EYiSCHnpbcw/WRNTgHmAF2I/AAAAAAAACnk/vKvH0LX15rkwvJCSsUuXsLKMUmMZZec8gCLcB/s200/image2.png" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;strong&gt;Accurate&lt;/strong&gt;&lt;p&gt;Pixel-perfect components for Android, iOS, and the web &lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://2.bp.blogspot.com/-nFRZvPgZyAQ/WRNUDkkg4hI/AAAAAAAACns/XbEfXZF7fC4hslqDDzvudOLGhkNAKE1WwCLcB/s1600/image1.png" imageanchor="1" style="clear: left; float: left; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="https://2.bp.blogspot.com/-nFRZvPgZyAQ/WRNUDkkg4hI/AAAAAAAACns/XbEfXZF7fC4hslqDDzvudOLGhkNAKE1WwCLcB/s200/image1.png" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;strong&gt;Current&lt;/strong&gt;&lt;p&gt;Maintained by Google engineers and designers, using the latest APIs and features. &lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://3.bp.blogspot.com/-aKu5MVnHmI8/WRNUbbX1QLI/AAAAAAAACnw/e8houAjrRDcYQPqx71Sy7HVmWoO8UY7iACLcB/s1600/image3.png" imageanchor="1" style="clear: left; float: left; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="https://3.bp.blogspot.com/-aKu5MVnHmI8/WRNUbbX1QLI/AAAAAAAACnw/e8houAjrRDcYQPqx71Sy7HVmWoO8UY7iACLcB/s200/image3.png" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;strong&gt;Open-source&lt;/strong&gt;&lt;p&gt;The code on GitHub is available for you to contribute or simply use elements as needed&lt;br /&gt;&lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://1.bp.blogspot.com/-MTgN9Sc-6UQ/WRNUq5qkSRI/AAAAAAAACn0/VeOspSkUTDs3hgwgp6ADyCZEKOwL-KJOACLcB/s1600/image4.png" imageanchor="1" style="clear: left; float: left; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="https://1.bp.blogspot.com/-MTgN9Sc-6UQ/WRNUq5qkSRI/AAAAAAAACn0/VeOspSkUTDs3hgwgp6ADyCZEKOwL-KJOACLcB/s200/image4.png" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;strong&gt;Industry standards&lt;/strong&gt;&lt;p&gt;Also used in Google's products, these components meet industry standards, such as internationalization and accessibility &lt;/p&gt;&lt;/div&gt;&lt;p&gt;Material Components are maintained by a core team of Android, iOS, and web engineers and UX designers at Google. We strive to support the best of each platform by: &lt;/p&gt;&lt;ul&gt;&lt;li&gt;Supporting older Android versions with graceful degradation &lt;/li&gt;&lt;li&gt;Developing iOS apps that use industry standards like Swift, Objective-C, and storyboards &lt;/li&gt;&lt;li&gt;Integrating seamlessly with popular web frameworks and libraries&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;With these components, your team can easily develop rich user experiences using Material Design. We'll be continually updating the components to match the latest Material Design guidelines, and we're looking forward to you and your team contributing to the project. To get the latest news and chat with us directly, please check out our &lt;a href="https://github.com/material-components"&gt;GitHub repos&lt;/a&gt;, follow us on Twitter (&lt;a href="https://twitter.com/materialdesign"&gt;@materialdesign&lt;/a&gt;), and visit us at &lt;a href="https://material.io/components"&gt;https://material.io/components/&lt;/a&gt;. &lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/GDBcode/~4/9sVrt2XSGxE" height="1" width="1" alt=""/&gt;</content><link rel="replies" type="application/atom+xml" href="http://developers.googleblog.com/feeds/8081009302621439249/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://developers.googleblog.com/2017/05/build-beautiful-apps-and-websites-with.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/8081009302621439249" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/8081009302621439249" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GDBcode/~3/9sVrt2XSGxE/build-beautiful-apps-and-websites-with.html" title="Build beautiful apps and websites with modular, customizable UI components " /><author><name>Google Devs</name><uri>https://plus.google.com/116954523003757714329</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img1.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://1.bp.blogspot.com/-EYiSCHnpbcw/WRNTgHmAF2I/AAAAAAAACnk/vKvH0LX15rkwvJCSsUuXsLKMUmMZZec8gCLcB/s72-c/image2.png" height="72" width="72" /><thr:total>0</thr:total><gd:extendedProperty name="commentSource" value="1" /><gd:extendedProperty name="commentModerationMode" value="FILTERED_POSTMOD" /><feedburner:origLink>http://developers.googleblog.com/2017/05/build-beautiful-apps-and-websites-with.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-596098824972435195.post-7447286370539662516</id><published>2017-05-11T17:38:00.000-07:00</published><updated>2017-05-11T17:38:24.781-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Auth" /><category scheme="http://www.blogger.com/atom/ns#" term="contacts api" /><category scheme="http://www.blogger.com/atom/ns#" term="Gmail APIs" /><category scheme="http://www.blogger.com/atom/ns#" term="Google APIs" /><category scheme="http://www.blogger.com/atom/ns#" term="oauth" /><category scheme="http://www.blogger.com/atom/ns#" term="OAuth2" /><category scheme="http://www.blogger.com/atom/ns#" term="security" /><title type="text">Updating developer identity guidelines and registration processes to protect users </title><content type="html">&lt;em&gt;Posted by Naveen Agarwal, Identity Team&lt;/em&gt;&lt;p&gt;Last week, we took &lt;a href="https://security.googleblog.com/2017/05/protecting-you-against-phishing.html"&gt;immediate action&lt;/a&gt; to protect users from a phishing attack that attempted to abuse the OAuth authorization infrastructure. &lt;/p&gt;&lt;p&gt;Today, we’re supplementing those efforts to help prevent these types of issues in the future. These changes may add some friction and require more time before you are able to publish your web application, so we recommend that you plan your work accordingly.  &lt;/p&gt;&lt;p&gt;&lt;h3&gt;Updating app identity guidelines&lt;/h3&gt;As our &lt;a href="https://developers.google.com/terms/api-services-user-data-policy"&gt;Google API user data policy&lt;/a&gt; states, apps must not mislead users. For example, app names should be unique to your application and should not copy others'. &lt;/p&gt;&lt;p&gt;To further enforce this policy,  we are updating our app publishing process, our risk assessment systems, and our user-facing consent page in order to better detect spoofed or misleading application identities. You may see an error message as you’re registering new applications or modifying existing application attributes in the Google API Console, Firebase Console, or Apps Script editor as a result of this change. &lt;/p&gt;&lt;h3&gt;New review processes and restrictions on web apps requesting user data&lt;/h3&gt;We have also enhanced our risk assessment for new web applications that request user data. &lt;p&gt;Based on this risk assessment, some web applications will require a manual review. Until the review is complete, users will not be able to approve the data permissions, and we will display an error message instead of the permissions consent page.   You can request a review during the testing phase in order to open the app to the public. We will try to process those reviews in 3-7 business days. In the future, we will enable review requests during the registration phase as well.  &lt;/p&gt;&lt;p&gt;You can continue to use your app for testing purposes before it is approved by logging in with an account registered as an owner/editor of that project in the Google API Console. This will enable you to add additional testers, as well as initiate the review process.  &lt;/p&gt;&lt;p&gt;We also recommend developers review &lt;a href="https://gsuite-developers.googleblog.com/2016/09/setting-expectations-for-accessing-user-data-via-oauth.html"&gt;our earlier post&lt;/a&gt; outlining their responsibilities when requesting access to user data from their applications. Our teams will continue our constant efforts to support a powerful, useful developer ecosystem that keeps users and their data safe. &lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/GDBcode/~4/xfpooVLu4nk" height="1" width="1" alt=""/&gt;</content><link rel="replies" type="application/atom+xml" href="http://developers.googleblog.com/feeds/7447286370539662516/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://developers.googleblog.com/2017/05/updating-developer-identity-guidelines.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/7447286370539662516" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/7447286370539662516" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GDBcode/~3/xfpooVLu4nk/updating-developer-identity-guidelines.html" title="Updating developer identity guidelines and registration processes to protect users " /><author><name>Google Devs</name><uri>https://plus.google.com/116954523003757714329</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img1.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><gd:extendedProperty name="commentSource" value="1" /><gd:extendedProperty name="commentModerationMode" value="FILTERED_POSTMOD" /><feedburner:origLink>http://developers.googleblog.com/2017/05/updating-developer-identity-guidelines.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-596098824972435195.post-4725618186716127680</id><published>2017-05-10T11:30:00.000-07:00</published><updated>2017-05-10T12:25:53.242-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="machine learning" /><category scheme="http://www.blogger.com/atom/ns#" term="performance" /><category scheme="http://www.blogger.com/atom/ns#" term="TensorFlow" /><title type="text">TensorFlow Benchmarks and a New High-Performance Guide</title><content type="html">&lt;i&gt;Posted by &lt;a href="https://twitter.com/random_forests"&gt;&lt;span id="goog_635523677"&gt;&lt;/span&gt;Josh Gordon&lt;span id="goog_635523678"&gt;&lt;/span&gt;&lt;/a&gt; on behalf of the TensorFlow team&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;We recently published a collection of performance &lt;a href="https://www.tensorflow.org/performance/benchmarks"&gt;benchmarks&lt;/a&gt; that highlight TensorFlow's speed and scalability when training image classification models, like &lt;a href="https://arxiv.org/abs/1512.00567"&gt;InceptionV3&lt;/a&gt; and &lt;a href="https://arxiv.org/abs/1512.03385"&gt;ResNet&lt;/a&gt;, on a variety of hardware and configurations. &lt;br /&gt;&lt;br /&gt;To help you build highly scalable models, we've also added a new &lt;a href="https://www.tensorflow.org/performance/performance_models"&gt;High-Performance Models&lt;/a&gt; guide to the &lt;a href="https://www.tensorflow.org/performance/"&gt;performance&lt;/a&gt; site on &lt;a href="http://tensorflow.org/"&gt;tensorflow.org&lt;/a&gt;. Together with the guide, we hope these benchmarks and associated scripts will serve as a reference point as you tune your code, and help you get the most performance from your new and existing hardware. &lt;br /&gt;&lt;br /&gt;When running benchmarks, we tested using both real and synthetic data. We feel this is important to show, as it exercises both the compute and input pipelines, and is more representative of real-world performance numbers than testing with synthetic data alone. For transparency, we've also shared our scripts and methodology. &lt;br /&gt;&lt;br /&gt;Collected below are highlights of TensorFlow's performance when training with an &lt;a href="http://www.nvidia.com/object/deep-learning-system.html"&gt;NVIDIA® DGX-1™&lt;/a&gt;, as well as with 64 NVIDIA® Tesla® K80 GPUs running in a distributed configuration. In-depth results, including details like batch-size and configurations used for the various platforms we tested, are available on the benchmarks site. &lt;br /&gt;&lt;h3&gt;&lt;strong&gt;Training with NVIDIA® DGX-1™ (8 NVIDIA® Tesla®  P100s)&lt;/strong&gt;&lt;/h3&gt;Our benchmarks show that TensorFlow has nearly&lt;em&gt; &lt;/em&gt;linear scaling on an &lt;a href="http://www.nvidia.com/object/deep-learning-system.html"&gt;NVIDIA® DGX-1™&lt;/a&gt;for training image classification models with synthetic data. With 8 NVIDIA Tesla P100s, we report a speedup of 7.99x (99% efficiency) for InceptionV3 and 7.91x (98% efficiency) for ResNet-50, compared to using a single GPU. &lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://4.bp.blogspot.com/-f1stm7_Fd_s/WRNGE7JSkXI/AAAAAAAACm0/By2Hfd0bUkkp1Fzm1sv5auU6GAbYq-DwwCLcB/s1600/image3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="306" src="https://4.bp.blogspot.com/-f1stm7_Fd_s/WRNGE7JSkXI/AAAAAAAACm0/By2Hfd0bUkkp1Fzm1sv5auU6GAbYq-DwwCLcB/s640/image3.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;The following are results comparing training with synthetic and real data. The benchmark results show a small difference between training data placed statically on the GPU (synthetic) and executing the full input pipeline with data from ImageNet. One strength of TensorFlow is the ability of its input pipeline to saturate state-of-the-art compute units with large inputs. &lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://2.bp.blogspot.com/-1UuTbCtWU8k/WRNGgQiTzkI/AAAAAAAACm8/s4vJRMuKxMoGKUpclHCrQwz2XEq5ueZGwCLcB/s1600/image4.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="https://2.bp.blogspot.com/-1UuTbCtWU8k/WRNGgQiTzkI/AAAAAAAACm8/s4vJRMuKxMoGKUpclHCrQwz2XEq5ueZGwCLcB/s1600/image4.png" /&gt;&lt;/a&gt;&lt;a href="https://1.bp.blogspot.com/-rbgPiHDtTnQ/WRNGgXaCAPI/AAAAAAAACm4/HmsIcH4FoFcTRwHGtGNrsAp8gQ-cg7pRQCLcB/s1600/image1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="https://1.bp.blogspot.com/-rbgPiHDtTnQ/WRNGgXaCAPI/AAAAAAAACm4/HmsIcH4FoFcTRwHGtGNrsAp8gQ-cg7pRQCLcB/s1600/image1.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;h3&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/h3&gt;&lt;div&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/div&gt;&lt;h3&gt;&lt;strong&gt;Training with NVIDIA® Tesla® K80 (Single server, 8 GPUs)&lt;/strong&gt;&lt;/h3&gt;With 8 NVIDIA® Tesla® K80s in a single-server configuration, TensorFlow has a 7.4x speedup on Inception v3 (93% efficiency) and a 7.4x speedup on ResNet-50, compared to a single GPU.  For this benchmark, we used Google Compute Engine &lt;a href="https://www.tensorflow.org/performance/benchmarks#details_for_google_compute_engine_nvidia_tesla_k80"&gt;instances&lt;/a&gt;. &lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://4.bp.blogspot.com/-9W1wOxTpNkI/WRNM4CFYXJI/AAAAAAAACnU/7p0HWcBKKKQKWGkKoUkb7BTRFlN56pITACLcB/s1600/image5.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="308" src="https://4.bp.blogspot.com/-9W1wOxTpNkI/WRNM4CFYXJI/AAAAAAAACnU/7p0HWcBKKKQKWGkKoUkb7BTRFlN56pITACLcB/s640/image5.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;h3&gt;&lt;strong&gt;Distributed Training with NVIDIA® Tesla® K80 (up to 64 GPUs)&lt;/strong&gt;&lt;/h3&gt;With 64 Tesla K80s running on Amazon EC2 &lt;a href="https://www.tensorflow.org/performance/benchmarks#details_for_amazon_ec2_distributed_nvidia_tesla_k80"&gt;instances&lt;/a&gt;in a distributed configuration, TensorFlow has a 59x speedup (92% efficiency) for InceptionV3 and a 52x speedup (82% efficiency) for ResNet-50 using synthetic data. &lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://4.bp.blogspot.com/-fxy9YLPRmwA/WRNMsbZ2r0I/AAAAAAAACnQ/UkY6gB45BWc3YRNVREnKCvapUpanSGj1wCEw/s1600/image2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="308" src="https://4.bp.blogspot.com/-fxy9YLPRmwA/WRNMsbZ2r0I/AAAAAAAACnQ/UkY6gB45BWc3YRNVREnKCvapUpanSGj1wCEw/s640/image2.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;h3&gt;&lt;strong&gt;Discussion&lt;/strong&gt;&lt;/h3&gt;During our testing of the DGX-1 and other platforms, we explored a variety of configurations using &lt;a href="https://github.com/NVIDIA/nccl"&gt;NCCL&lt;/a&gt;,&lt;a href="https://github.com/NVIDIA/nccl"&gt; &lt;/a&gt;a collective communications library, part of the &lt;a href="https://developer.nvidia.com/deep-learning-software"&gt;NVIDIA Deep Learning SDK&lt;/a&gt;. Our hypothesis before testing began was that replicating the variables across GPUs and syncing them with NCCL would be the optimal approach. The results were not always as expected. Optimal configurations varied depending not only on the GPU, but also on the platform and model tested. On the DGX-1, for example, VGG16 and AlexNet performed best when replicating the variables on each of the GPUs and updating them using NCCL, while InceptionV3 and ResNet performed best when placing the shared variable on the CPU. These intricacies highlight the need for comprehensive benchmarking. Models have to be tuned for each platform, and a one size fits all approach is likely to result in suboptimal performance in many cases. &lt;br /&gt;&lt;br /&gt;To get peak performance, it is necessary to benchmark with a mix of settings to determine which ones are likely to perform best on each platform. The script that accompanies the article on creating &lt;a href="https://www.tensorflow.org/performance/performance_models"&gt;High-Performance Models&lt;/a&gt; was created not only to illustrate how to achieve the highest performance, but also as a tool to benchmark a platform with a variety of settings. The benchmarks page lists the configurations that we found which provided optimal performance for the platforms tested. &lt;br /&gt;&lt;br /&gt;As many people have pointed out in response to various benchmarks that have been performed on other platforms, increases to samples per second does not necessarily correlate to faster convergence, and as batch sizes increase it can be more difficult to converge to the highest accuracy levels. &lt;br /&gt;&lt;br /&gt;As a team, we hope to do future tests that focus on time to convergence to high levels of accuracy. We hope these numbers and the guide will prove useful to you as you tune your code for performance. &lt;br /&gt;&lt;br /&gt;We'd like to thank NVIDIA for sharing a DGX-1 for benchmark testing and for their technical assistance. We're looking forward to NVIDIA's upcoming &lt;a href="https://www.google.com/url?q=https://www.nvidia.com/en-us/data-center/volta-gpu-architecture/&amp;amp;sa=D&amp;amp;ust=1494447427516000&amp;amp;usg=AFQjCNEvv5Dy4LTSz5Aa5wzNcOkxhlkn9g"&gt;Volta&lt;/a&gt;architecture, and to working closely with them to optimize TensorFlow's performance there, and to expand support for FP16. &lt;br /&gt;&lt;br /&gt;Thanks for reading, and as always, we look forward to working with you on forums like &lt;a href="https://github.com/tensorflow/tensorflow/issues"&gt;GitHub issues&lt;/a&gt;, &lt;a href="http://stackoverflow.com/questions/tagged/tensorflow"&gt;Stack Overflow&lt;/a&gt;, the &lt;a href="https://groups.google.com/a/tensorflow.org/forum/#!forum/discuss"&gt;discuss@tensorflow.org&lt;/a&gt;list, and &lt;a href="https://twitter.com/tensorflow"&gt;@TensorFlow&lt;/a&gt;. &lt;img src="http://feeds.feedburner.com/~r/GDBcode/~4/1L1Kgnc6x7k" height="1" width="1" alt=""/&gt;</content><link rel="replies" type="application/atom+xml" href="http://developers.googleblog.com/feeds/4725618186716127680/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://developers.googleblog.com/2017/05/tensorflow-benchmarks-and-new-high.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/4725618186716127680" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/4725618186716127680" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GDBcode/~3/1L1Kgnc6x7k/tensorflow-benchmarks-and-new-high.html" title="TensorFlow Benchmarks and a New High-Performance Guide" /><author><name>Google Devs</name><uri>https://plus.google.com/116954523003757714329</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img1.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://4.bp.blogspot.com/-f1stm7_Fd_s/WRNGE7JSkXI/AAAAAAAACm0/By2Hfd0bUkkp1Fzm1sv5auU6GAbYq-DwwCLcB/s72-c/image3.png" height="72" width="72" /><thr:total>0</thr:total><gd:extendedProperty name="commentSource" value="1" /><gd:extendedProperty name="commentModerationMode" value="FILTERED_POSTMOD" /><feedburner:origLink>http://developers.googleblog.com/2017/05/tensorflow-benchmarks-and-new-high.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-596098824972435195.post-6816512425781662751</id><published>2017-05-08T10:04:00.001-07:00</published><updated>2017-05-08T12:04:10.402-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="#io17" /><category scheme="http://www.blogger.com/atom/ns#" term="Google I/O" /><category scheme="http://www.blogger.com/atom/ns#" term="I/O" /><category scheme="http://www.blogger.com/atom/ns#" term="I/O 17" /><category scheme="http://www.blogger.com/atom/ns#" term="I/O 2017" /><category scheme="http://www.blogger.com/atom/ns#" term="web apps" /><title type="text">Google I/O 2017 on your mobile devices</title><content type="html">&lt;i&gt;Posted by Mónica Bagagem, Product Marketing Manager&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;I/O is just a couple of weeks away… 9 days to be exact! As we get closer, we know many of you are excited to start customizing your I/O schedule so that you can make the most of the three festival days. In addition to customizing your schedule on google.com/io, you can also navigate through our 150+ technical Sessions, hundreds of Office Hours, and dozens of Codelabs via the Google I/O 2017 mobile app, available now for Android and very soon for iOS. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Available now:&amp;nbsp;&lt;/strong&gt;&lt;a href="https://play.google.com/store/apps/details?id=com.google.samples.apps.iosched"&gt;Android app&lt;/a&gt;,&amp;nbsp;&lt;a href="https://itunes.apple.com/app/id1109898820"&gt;iOS app&lt;/a&gt;,&amp;nbsp;&lt;a href="https://events.google.com/io/schedule?utm_source=google&amp;amp;utm_medium=blog&amp;amp;utm_campaign=app_launch"&gt;Web app&lt;/a&gt; (add to your mobile homescreen)&lt;br /&gt;&lt;em&gt;&lt;br /&gt;&lt;/em&gt;Here is a breakdown of all the things you can do with the mobile app this year:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://3.bp.blogspot.com/-hnvbYKg_AYs/WRCeT2ynj7I/AAAAAAAACmI/axBg3A4ksQIPrGhqZhKwvqh_AIQeVdDnQCLcB/s1600/Screen%2BShot%2B2017-05-08%2Bat%2B9.34.44%2BAM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="412" src="https://3.bp.blogspot.com/-hnvbYKg_AYs/WRCeT2ynj7I/AAAAAAAACmI/axBg3A4ksQIPrGhqZhKwvqh_AIQeVdDnQCLcB/s640/Screen%2BShot%2B2017-05-08%2Bat%2B9.34.44%2BAM.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://2.bp.blogspot.com/-CiUtiLjVnJI/WRCeVpTcxkI/AAAAAAAACmM/H8tJ0eVHJwUuDYZBJbkHq2CxtPbAUhqLQCLcB/s1600/Screen%2BShot%2B2017-05-08%2Bat%2B9.34.57%2BAM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="370" src="https://2.bp.blogspot.com/-CiUtiLjVnJI/WRCeVpTcxkI/AAAAAAAACmM/H8tJ0eVHJwUuDYZBJbkHq2CxtPbAUhqLQCLcB/s400/Screen%2BShot%2B2017-05-08%2Bat%2B9.34.57%2BAM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;dl&gt;&lt;strong&gt;SCHEDULE&lt;/strong&gt;&amp;nbsp;&lt;/dl&gt;&lt;dl&gt;Browse, filter and find Sessions, Office Hours, Codelabs, and App Reviews across 14 tracks. All sessions will be livestreamed this year and you can access the livestream channel or the session recording after the fact in the respective session detail screen.&lt;/dl&gt;&lt;dl&gt;&lt;dt&gt;&lt;strong&gt;MY I/O&lt;/strong&gt;&lt;/dt&gt;&lt;/dl&gt;This is where you'll find all your saved #io17 events. To make things easy for you, these will always be synced from your account across mobile and desktop, so you can switch back and forth as needed. And since we know May 17-19 will be quite busy days, we'll send you reminders right before your saved sessions are about to start. &lt;br /&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;b&gt;Exclusive for onsite registered attendees: &lt;/b&gt;To help make it easier to attend your favorite talks and minimize lines, you'll be able to &lt;b&gt;reserve seats for sessions&lt;/b&gt; in advance of I/O via google.com/io AND our mobile app - as long as you're signed in with the same email address you used to register for the festival. You can reserve as many sessions as you'd like per day, but only one reservation per time slot is allowed.&lt;br /&gt;&lt;br /&gt;Reservations will be open until 1H before the start time for each session. If a particular session has already reached the reservation capacity, you can join the waitlist and we'll automatically change your reservation status if any spots open up. A portion of seats will still be available first-come, first-served onsite. Reservations are open starting today via the Session detail screens on the Android app and on &lt;a href="http://google.com/io/schedule"&gt;google.com/io/schedule&lt;/a&gt;. Note: Reservations will also be available on iOS once the app is launched. &lt;br /&gt;&lt;dl&gt;&lt;dt&gt;&lt;strong&gt;FEED&lt;/strong&gt;&lt;/dt&gt;&lt;/dl&gt;Read through the latest details and announcements about I/O. You can also opt-in to receive notifications from us about the event, so you don't miss a thing! &lt;br /&gt;&lt;dl&gt;&lt;dt&gt;&lt;strong&gt;MAP&lt;/strong&gt;&lt;/dt&gt;&lt;/dl&gt;Guide yourself throughout Shoreline using the custom conference map. &lt;br /&gt;&lt;dl&gt;&lt;dt&gt;&lt;strong&gt;INFO&lt;/strong&gt;&lt;/dt&gt;&lt;/dl&gt;Find more information about onsite WiFi, our content formats, travel tips to get to Shoreline, and more. Under Settings, you can also set the timezone for the schedule and opt-in to receive notifications. &lt;br /&gt;&lt;br /&gt;Keeping up with the tradition, we'll be open sourcing the app after I/O. Until then, start getting ready for I/O; we hope the mobile app will help you navigate the schedule and grounds for a great experience. See you soon! &lt;br /&gt;&lt;br /&gt;&lt;i&gt;Update: The iOS app is now available for download.&lt;/i&gt;&lt;img src="http://feeds.feedburner.com/~r/GDBcode/~4/nvVQr8owdu8" height="1" width="1" alt=""/&gt;</content><link rel="replies" type="application/atom+xml" href="http://developers.googleblog.com/feeds/6816512425781662751/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://developers.googleblog.com/2017/05/google-io-2017-on-your-mobile-devices.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/6816512425781662751" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/6816512425781662751" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GDBcode/~3/nvVQr8owdu8/google-io-2017-on-your-mobile-devices.html" title="Google I/O 2017 on your mobile devices" /><author><name>Google Devs</name><uri>https://plus.google.com/116954523003757714329</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img1.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://3.bp.blogspot.com/-hnvbYKg_AYs/WRCeT2ynj7I/AAAAAAAACmI/axBg3A4ksQIPrGhqZhKwvqh_AIQeVdDnQCLcB/s72-c/Screen%2BShot%2B2017-05-08%2Bat%2B9.34.44%2BAM.png" height="72" width="72" /><thr:total>0</thr:total><gd:extendedProperty name="commentSource" value="1" /><gd:extendedProperty name="commentModerationMode" value="FILTERED_POSTMOD" /><feedburner:origLink>http://developers.googleblog.com/2017/05/google-io-2017-on-your-mobile-devices.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-596098824972435195.post-6098845880290983142</id><published>2017-05-04T09:01:00.000-07:00</published><updated>2017-05-05T09:47:14.977-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="AI" /><category scheme="http://www.blogger.com/atom/ns#" term="AIY" /><category scheme="http://www.blogger.com/atom/ns#" term="AIY Projects" /><category scheme="http://www.blogger.com/atom/ns#" term="AIYProjects" /><category scheme="http://www.blogger.com/atom/ns#" term="Android Things" /><category scheme="http://www.blogger.com/atom/ns#" term="Artificial Intelligence" /><category scheme="http://www.blogger.com/atom/ns#" term="google assistant sdk" /><category scheme="http://www.blogger.com/atom/ns#" term="Makers" /><category scheme="http://www.blogger.com/atom/ns#" term="Rasberry Pi" /><title type="text">AIY Projects: Do-it-yourself AI for Makers</title><content type="html">&lt;i&gt;Posted by Billy Rutledge, Director of AIY Projects&lt;/i&gt;&lt;br /&gt;Our teams are continually inspired by how Makers &lt;a href="https://www.hackster.io/search?i=projects&amp;amp;q=google"&gt;use Google technology to do crazy, cool new things&lt;/a&gt;. Things we would've never imagined doing ourselves, things that solve real world problems. After talking to Maker community members, we learned that many were interested in using artificial intelligence in projects, but didn't know where to begin. To address this gap, we're launching AIY Projects: do-it-yourself artificial intelligence for Makers. &lt;br /&gt;With AIY Projects, Makers can use artificial intelligence to make human-to-machine interaction more like human-to-human interactions. We'll be releasing a series of reference kits, starting with voice recognition. The speech recognition capability in our first project could be used to: &lt;br /&gt;&lt;ul&gt;&lt;li&gt;Replace physical buttons and digital displays (those are so 90's) on household appliances and consumer electronics (imagine a coffee machine with no buttons or screen -- just talk to it) &lt;/li&gt;&lt;li&gt;Replace smartphone apps to control devices (those are so 2000's) on connected devices (imagine a connected light bulb or thermostat -- just talk to them) &lt;/li&gt;&lt;li&gt;Add voice recognition to assistive robotics (e.g. for accessibility) -- just talk to the robot as a simplified programming interface, e.g. "tell me what's in this room or "tell me when you see the mail-carrier come to the door"&lt;/li&gt;&lt;/ul&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://2.bp.blogspot.com/-3v52p8b3AiU/WQpveT1PdDI/AAAAAAAACkM/F1_Ek3wTYl0b-GSFMzeNkhUjmwSgVprigCEw/s1600/AIYlaunch_Google-VoiceSim-assemble-17.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="426" src="https://2.bp.blogspot.com/-3v52p8b3AiU/WQpveT1PdDI/AAAAAAAACkM/F1_Ek3wTYl0b-GSFMzeNkhUjmwSgVprigCEw/s640/AIYlaunch_Google-VoiceSim-assemble-17.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="centeritem"&gt;&lt;center&gt;Fully assembled Voice Kit. &lt;/center&gt;&lt;/div&gt;The first open source reference project is the Voice Kit: instructions to build a Voice User Interface (VUI) that can use cloud services (like the new &lt;a href="http://developers.google.com/assistant/sdk"&gt;Google Assistant SDK&lt;/a&gt; or &lt;a href="https://cloud.google.com/speech/"&gt;Cloud Speech API&lt;/a&gt;) or run completely on-device. This project extends the functionality of the most popular single board computer used for digital making - the Raspberry Pi. &lt;a href="https://4.bp.blogspot.com/-zqeJcQPay0A/WQpv3vEQvtI/AAAAAAAACkA/7pDWwp6evVwWeKK5WirtduIyzshzGwEuACLcB/s1600/AIYlaunch_Google-VoiceSim-Deconstucted-white.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="426" src="https://4.bp.blogspot.com/-zqeJcQPay0A/WQpv3vEQvtI/AAAAAAAACkA/7pDWwp6evVwWeKK5WirtduIyzshzGwEuACLcB/s640/AIYlaunch_Google-VoiceSim-Deconstucted-white.png" width="640" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="centeritem"&gt;&lt;center&gt;Everything that comes in the Voice Kit. &lt;/center&gt;&lt;/div&gt;&lt;br /&gt;The included Voice Hardware Accessory on Top (HAT) contains hardware for audio capture and playback: easy-to-use connectors for the dual mic daughter board and speaker, GPIO pins to connect low-voltage components like micro-servos and sensors, and an optional barrel connector for dedicated power supply. It was designed and tested with the Raspberry Pi 3 Model B. &lt;br /&gt;Alternately, Developers can run &lt;a href="https://developer.android.com/things/index.html"&gt;Android Things&lt;/a&gt; on the Voice Kit with full functionality - making it easy to prototype Internet-of-Things devices and scale to full commercial products with several turnkey hardware solutions available (including Intel Edison, NXP Pico, and Raspberry Pi 3). &lt;a href="https://developer.android.com/things/preview/index.html"&gt;Download the latest Android Things developer preview&lt;/a&gt; to get started. &lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://2.bp.blogspot.com/-E9eCM9y0ppk/WQpv_4xgz_I/AAAAAAAACkE/iP2Nxd6HSpQRtWTXq_1jlg6mPPEzjIsMACLcB/s1600/AIYlaunch_Google-VoiceHat-white.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="426" src="https://2.bp.blogspot.com/-E9eCM9y0ppk/WQpv_4xgz_I/AAAAAAAACkE/iP2Nxd6HSpQRtWTXq_1jlg6mPPEzjIsMACLcB/s640/AIYlaunch_Google-VoiceHat-white.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="centeritem"&gt;&lt;center&gt;Close up of the Voice HAT accessory board. &lt;/center&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="border"&gt;&lt;strong&gt;Making with the Google Assistant SDK&lt;/strong&gt;&lt;br /&gt;The &lt;a href="https://developers.google.com/assistant/sdk/"&gt;Google Assistant SDK&lt;/a&gt; developer preview was &lt;a href="https://developers.googleblog.com/2017/04/introducing-google-assistant-sdk.html"&gt;released last week&lt;/a&gt;. It's enabled by default, and brings the Google Assistant to your Voice Kit: including voice control, natural language understanding, Google's smarts, and more. &lt;br /&gt;In combination with the rest of the Voice Kit, we think the Google Assistant SDK will provide you many creative opportunities to build fun and engaging projects. Makers have already started experimenting with the SDK - including building a &lt;a href="http://deeplocal.com/mocktailsmixer/"&gt;mocktail maker.&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;The Voice Kit ships out to all &lt;a href="https://www.raspberrypi.org/magpi/"&gt;MagPi Magazine&lt;/a&gt; subscribers on May 4, 2017, and we've published a parts list, assembly instructions, source code and suggested extensions to our website: &lt;a href="https://aiyprojects.withgoogle.com/?utm_source=GoogleDevPost&amp;amp;utm_medium=social&amp;amp;utm_campaign=launch"&gt;aiyprojects.withgoogle.com&lt;/a&gt;. The complete kit is also for sale at over 500 Barnes &amp;amp; Noble stores nationwide, as well as UK retailers WH Smith, Tesco, Sainsburys, and Asda. &lt;br /&gt;This is just the first AIY Project. There are more in the works, but we need to know how you'd like to incorporate AI into your own projects. Visit &lt;a href="https://www.hackster.io/google/products/aiy-projects"&gt;hackster.io&lt;/a&gt; to share your experiences and discuss future projects. Use &lt;em&gt;#AIYprojects&lt;/em&gt; on social media to help us find your inventions. And if you happen to be at the San Mateo &lt;a href="http://makerfaire.com/"&gt;Maker Faire&lt;/a&gt; on May 19-21, 2017, stop by the Google pavilion to give us feedback. &lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://1.bp.blogspot.com/-ykfPrkGqIso/WQpwH5mIPgI/AAAAAAAACkI/m7H3GyG-MJgD3yhLz_umrAcn7kC60ngEQCLcB/s1600/AIYlaunch_Google-VoiceSim-MadebyyouwithGoogle.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="426" src="https://1.bp.blogspot.com/-ykfPrkGqIso/WQpwH5mIPgI/AAAAAAAACkI/m7H3GyG-MJgD3yhLz_umrAcn7kC60ngEQCLcB/s640/AIYlaunch_Google-VoiceSim-MadebyyouwithGoogle.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;img src="http://feeds.feedburner.com/~r/GDBcode/~4/Clvy9QnUQF0" height="1" width="1" alt=""/&gt;</content><link rel="replies" type="application/atom+xml" href="http://developers.googleblog.com/feeds/6098845880290983142/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://developers.googleblog.com/2017/05/aiy-projects-voice-kit.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/6098845880290983142" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/6098845880290983142" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GDBcode/~3/Clvy9QnUQF0/aiy-projects-voice-kit.html" title="AIY Projects: Do-it-yourself AI for Makers" /><author><name>Google Devs</name><uri>https://plus.google.com/116954523003757714329</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img1.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://2.bp.blogspot.com/-3v52p8b3AiU/WQpveT1PdDI/AAAAAAAACkM/F1_Ek3wTYl0b-GSFMzeNkhUjmwSgVprigCEw/s72-c/AIYlaunch_Google-VoiceSim-assemble-17.png" height="72" width="72" /><thr:total>0</thr:total><gd:extendedProperty name="commentSource" value="1" /><gd:extendedProperty name="commentModerationMode" value="FILTERED_POSTMOD" /><feedburner:origLink>http://developers.googleblog.com/2017/05/aiy-projects-voice-kit.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-596098824972435195.post-7800736732341899329</id><published>2017-04-28T10:44:00.000-07:00</published><updated>2017-04-28T10:44:11.773-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="#io17" /><category scheme="http://www.blogger.com/atom/ns#" term="codelabs" /><category scheme="http://www.blogger.com/atom/ns#" term="Google" /><category scheme="http://www.blogger.com/atom/ns#" term="I/O" /><category scheme="http://www.blogger.com/atom/ns#" term="I/O 2017" /><category scheme="http://www.blogger.com/atom/ns#" term="I/O Extended" /><category scheme="http://www.blogger.com/atom/ns#" term="IO17" /><category scheme="http://www.blogger.com/atom/ns#" term="IO2017" /><category scheme="http://www.blogger.com/atom/ns#" term="keynote" /><category scheme="http://www.blogger.com/atom/ns#" term="office hours" /><category scheme="http://www.blogger.com/atom/ns#" term="sessions" /><category scheme="http://www.blogger.com/atom/ns#" term="Sundar Pichai" /><title type="text">Start planning your Google I/O 2017 schedule!</title><content type="html">&lt;i&gt;Posted by Christopher Katsaros, Product Marketing Manager&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Whether you're joining us in person or remotely, we're looking forward to connecting with you at &lt;a href="https://events.google.com/io/"&gt;Google I/O&lt;/a&gt;, on May 17-19. It's the best way to learn about &lt;a href="https://events.google.com/io/schedule/?section=may-18&amp;amp;sid=8075afbc-88ab-4fbe-ab7f-1cf9f480afdd" target="_blank"&gt;building apps for the Google Assistant&lt;/a&gt;, how to go from &lt;a href="https://events.google.com/io/schedule/?section=may-18&amp;amp;sid=a553cfd3-5deb-43f7-8e88-1e6a63df2919&amp;amp;track=firebase"&gt;Zero to App with Firebase&lt;/a&gt;, all of the &lt;a href="https://events.google.com/io/schedule/?section=may-17&amp;amp;sid=1f9e95f4-73da-4e6c-9895-9fb7a8b5b5b6"&gt;goodies inside Android O&lt;/a&gt;, and much more! &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Over 150 Technical Sessions, Livestreamed&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;The show kicks off at 10AM PDT on Wednesday, May 17 with the &lt;a href="https://events.google.com/io/schedule/?section=may-17&amp;amp;sid=__keynote__"&gt;Google Keynote&lt;/a&gt;, an opportunity to hear about the latest product and platform innovations from Google, helping connect you to billions of users around the world. After that, we'll be diving into all of the ways developers can take advantage of this newness in a &lt;a href="https://events.google.com/io/schedule/?section=may-17&amp;amp;sid=__keynote2__" target="_blank"&gt;Developer Keynote &lt;/a&gt;at 1PM PDT. From there, the 14 tracks at Google I/O kickoff, with over 150 technical sessions livestreamed (i.e. all of them!) at &lt;a href="https://events.google.com/io/"&gt;google.com/io&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;We've just published more talks on the &lt;a href="https://events.google.com/io/schedule/?section=may-17"&gt;I/O website&lt;/a&gt;, so you can start planning your custom schedule ahead of the conference (shhh! we've got a few more sessions up our sleeve, so don't forget to check back directly after the Developer Keynote). &lt;br /&gt;&lt;br /&gt;You can also take advantage of Codelabs - self-paced tutorials on a number of technical topics to get you up and running with a Google product or feature. These Codelabs will be available both to those who are joining us in person at Shoreline, and online for those of you tuning in from around the world. More details will be available on the schedule soon. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Joining in person? &lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;We received a lot of great feedback from attendees last year, and have been working hard since then to make sure this is the best Google I/O, yet. To help make it easier to attend your favorite talks and minimize lines, you'll be able to reserve seats across sessions before I/O starts. But don't worry, we're saving a few seats in each session that will be available on a first-come, first-served basis onsite. We've also increased the size of each of the tents this year, giving you more opportunities to see all of your favorite talks in-person. &lt;br /&gt;&lt;br /&gt;Finally, we've doubled the number of Office Hours available, since you told us that being able to connect directly with Googlers to get your questions answered was extremely valuable. On top of that, all of the sandbox demo areas will be inside climate-controlled structures, making it easier to avoid the elements (but don't forget to bring your layers – Shoreline Amphitheatre is still an outdoor venue, after all). &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;See you in 3 weeks!&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;We're looking forward to seeing you in just a few weeks. We've got a few more updates to share before then; be sure to check out the Google I/O website for more details, or follow the conversation using the #io17 hashtag. &lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://4.bp.blogspot.com/-L6eLyVy2inY/WQNtD8XcHGI/AAAAAAAACio/70a1OnRQKOQLpGA3xloVqgHYKa9OAs2HgCLcB/s1600/IMG_6138.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="424" src="https://4.bp.blogspot.com/-L6eLyVy2inY/WQNtD8XcHGI/AAAAAAAACio/70a1OnRQKOQLpGA3xloVqgHYKa9OAs2HgCLcB/s640/IMG_6138.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;img src="http://feeds.feedburner.com/~r/GDBcode/~4/mznCKZXO3p0" height="1" width="1" alt=""/&gt;</content><link rel="replies" type="application/atom+xml" href="http://developers.googleblog.com/feeds/7800736732341899329/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://developers.googleblog.com/2017/04/start-planning-your-google-io-2017.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/7800736732341899329" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/7800736732341899329" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GDBcode/~3/mznCKZXO3p0/start-planning-your-google-io-2017.html" title="Start planning your Google I/O 2017 schedule!" /><author><name>Google Devs</name><uri>https://plus.google.com/116954523003757714329</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img1.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://4.bp.blogspot.com/-L6eLyVy2inY/WQNtD8XcHGI/AAAAAAAACio/70a1OnRQKOQLpGA3xloVqgHYKa9OAs2HgCLcB/s72-c/IMG_6138.jpg" height="72" width="72" /><thr:total>0</thr:total><gd:extendedProperty name="commentSource" value="1" /><gd:extendedProperty name="commentModerationMode" value="FILTERED_POSTMOD" /><feedburner:origLink>http://developers.googleblog.com/2017/04/start-planning-your-google-io-2017.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-596098824972435195.post-5231235650322684017</id><published>2017-04-27T10:01:00.000-07:00</published><updated>2017-05-02T16:11:08.814-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="actions on google" /><category scheme="http://www.blogger.com/atom/ns#" term="assistant" /><category scheme="http://www.blogger.com/atom/ns#" term="Google" /><category scheme="http://www.blogger.com/atom/ns#" term="google assistant" /><category scheme="http://www.blogger.com/atom/ns#" term="google assistant sdk" /><category scheme="http://www.blogger.com/atom/ns#" term="google developers" /><category scheme="http://www.blogger.com/atom/ns#" term="sdk" /><title type="text">Introducing the Google Assistant SDK</title><content type="html"> &lt;i&gt;Posted by Chris Ramsdale, Product Manager&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;When we first announced the Google Assistant, we talked about helping users get things done no matter what device they're using. We started with Google Allo, Google Home and Pixel phones, and expanded the Assistant ecosystem to include Android Wear and Android phones running Marshmallow and Nougat over the last few months. We also announced that Android Auto and Android TV will get support soon. &lt;br /&gt;&lt;br /&gt;Today, we're taking another step towards building out that ecosystem by introducing the developer preview of the &lt;a href="http://developers.google.com/assistant/sdk"&gt;Google Assistant SDK&lt;/a&gt;. With this SDK you can now start building your own hardware prototypes that include the Google Assistant, like a self-built robot or a voice-enabled smart mirror. This allows you to interact with the Google Assistant from any platform. &lt;br /&gt;&lt;br /&gt;The Google Assistant SDK includes a &lt;a href="http://www.grpc.io/"&gt;gRPC&lt;/a&gt; API, a Python open source client that handles authentication and access to the API, samples and documentation. The SDK allows you to capture a spoken query, for example "what's on my calendar", pass that up to the Google Assistant service and receive an audio response. And while it's ideal for prototyping on &lt;a href="https://www.raspberrypi.org/"&gt;Raspberry Pi&lt;/a&gt; devices, it also adds support for many other platforms. &lt;br /&gt;&lt;br /&gt;To get started, visit the Google Assistant SDK &lt;a href="http://developers.google.com/assistant/sdk"&gt;website&lt;/a&gt; for developers, download the SDK, and start building. In addition, &lt;a href="https://google.com/+WaynePiekarski"&gt;Wayne Piekarski&lt;/a&gt; from our Developer Relations team has a video introducing the Google Assistant SDK, below. &lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;iframe allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/Wsic12MXlsc" width="560"&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;br /&gt;And for some more inspiration, try our samples or check out an example implementation by Deeplocal, an innovation studio out of Pittsburgh that took the Google Assistant SDK for a spin and built a fun mocktails mixer. You can even build one for yourself: &lt;a href="http://deeplocal.com/mocktailsmixer/"&gt;go here&lt;/a&gt; to learn more and &lt;a href="https://github.com/Deeplocal/mocktailsmixer"&gt;read their documentation&lt;/a&gt;on Github. Or check out the video below on how they built their demo from scratch. &lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;iframe allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/Iyq60edXzvc" width="560"&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;br /&gt;This is a developer preview and we have a number of features in development including hotword support, companion app integration and more. If you're interested in building a commercial product with the Google Assistant, we encourage you to reach out and &lt;a href="https://developers.google.com/assistant/sdk/interest"&gt;contact us&lt;/a&gt;. We've created a new developer community on Google+ at &lt;a href="http://g.co/assistantsdkdev"&gt;g.co/assistantsdkdev&lt;/a&gt; for developers to keep up to date and discuss ideas. There is also a &lt;a href="http://stackoverflow.com/questions/tagged/google-assistant-sdk"&gt;stackoverflow tag&lt;/a&gt; [google-assistant-sdk] for questions, and a &lt;a href="https://groups.google.com/forum/#!forum/google-assistant-sdk-updates"&gt;mailing list&lt;/a&gt; to keep up to date on SDK news. We look forward to seeing what you create with the Google Assistant SDK!  &lt;img src="http://feeds.feedburner.com/~r/GDBcode/~4/cUD-zXJT2oU" height="1" width="1" alt=""/&gt;</content><link rel="replies" type="application/atom+xml" href="http://developers.googleblog.com/feeds/5231235650322684017/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://developers.googleblog.com/2017/04/introducing-google-assistant-sdk.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/5231235650322684017" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/5231235650322684017" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GDBcode/~3/cUD-zXJT2oU/introducing-google-assistant-sdk.html" title="Introducing the Google Assistant SDK" /><author><name>Google Devs</name><uri>https://plus.google.com/116954523003757714329</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img1.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img.youtube.com/vi/Wsic12MXlsc/default.jpg" height="72" width="72" /><thr:total>0</thr:total><gd:extendedProperty name="commentSource" value="1" /><gd:extendedProperty name="commentModerationMode" value="FILTERED_POSTMOD" /><feedburner:origLink>http://developers.googleblog.com/2017/04/introducing-google-assistant-sdk.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-596098824972435195.post-5107357364321335827</id><published>2017-04-20T20:00:00.000-07:00</published><updated>2017-04-20T20:00:22.961-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="G Suite" /><category scheme="http://www.blogger.com/atom/ns#" term="Google APIs" /><category scheme="http://www.blogger.com/atom/ns#" term="google apps" /><category scheme="http://www.blogger.com/atom/ns#" term="Google Sheets API" /><category scheme="http://www.blogger.com/atom/ns#" term="Google Slides API" /><title type="text">Using field masks with update requests to Google APIs</title><content type="html">Originally posted on the&amp;nbsp;&lt;a href="https://gsuite-developers.googleblog.com/2017/04/using-field-masks-with-update-requests.html" target="_blank"&gt;G Suite Developers Blog&lt;/a&gt;&lt;br /&gt;&lt;i&gt;Posted by &lt;a href="http://google.com/+WesleyChun" target="_blank"&gt;Wesley Chun&lt;/a&gt; (&lt;a href="http://twitter.com/wescpy" target="_blank"&gt;@wescpy&lt;/a&gt;), Developer Advocate, G Suite&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="https://gsuite-developers.googleblog.com/2017/03/using-field-masks-with-google-apis-for_31.html"&gt;We recently demonstrated how to use field masks&lt;/a&gt; to limit the amount of data that comes back via response payloads from read (GET) calls to Google APIs. Today, we'll focus on a different use case for field masks: update requests. &lt;br /&gt;&lt;br /&gt;In this scenario, field masks serve a different, but similar purpose—they still filter, but function more like bitmasks by controlling which API fields to update. The following video walks through several examples of update field mask usage with both the Google Sheets and Slides APIs. Check it out. &lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;iframe allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/W421BNZA_74?list=PLOU2XLYxmsIJJFx_MVCQJ7eWF3gDxklgJ" width="560"&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;br /&gt;In the sample JSON payload below, note the request to set the cells’ bold attribute to true (per the &lt;code&gt;cell&lt;/code&gt; directive below), then notice that the field mask (&lt;code&gt;fields&lt;/code&gt;) practically mirrors the request:&lt;br /&gt;&lt;br /&gt;&lt;pre class="prettyprint"&gt;{&lt;br /&gt;    "repeatCell": {&lt;br /&gt;        "range": {&lt;br /&gt;            "endRowIndex": 1&lt;br /&gt;        },&lt;br /&gt;        "cell": {&lt;br /&gt;            "userEnteredFormat": {&lt;br /&gt;                "textFormat": {&lt;br /&gt;                    "bold": true&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;        },&lt;br /&gt;        "fields": "userEnteredFormat/textFormat/bold",&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Now, you might think, "is that redundant?" Above, we highlighted that it takes two parts: 1) the request provides the data for the desired changes, and 2) the field mask states what should be updated, such as the &lt;code&gt;userEnteredFormat/textFormat/bold&lt;/code&gt; attribute for all the cells in the first row. To more clearly illustrate this, let's add something else to the mask like italics so that it has both bold and italic fields: &lt;br /&gt;&lt;br /&gt;&lt;pre class="prettyprint"&gt;        "fields": "userEnteredFormat/textFormat(bold,italic)"&lt;br /&gt;&lt;/pre&gt;However, while both elements are in the field mask, we've only provided the update data for bold. There's no data for &lt;code&gt;italic&lt;/code&gt; setting specified in the request body. In this case, italics for all cells will be reset, meaning if the cells were originally italicized, those italics will be removed after this API request completes. And vice versa, if the cells were not italicized to begin with, they'll stay that way. This feature gives developers the ability to undo or reset any prior settings on affected range of cells. Check out the video for more examples and tips for using field masks for update requests. &lt;br /&gt;&lt;br /&gt;To learn more about using field masks for partial response in API payloads, &lt;a href="https://www.youtube.com/watch?v=T1FUDXRB7Ns"&gt;check out this video&lt;/a&gt; and &lt;a href="http://goo.gl/9kmAEf"&gt;t&lt;/a&gt;h&lt;a href="http://goo.gl/9kmAEf"&gt;e&lt;/a&gt; &lt;a href="http://goo.gl/9kmAEf"&gt;f&lt;/a&gt;i&lt;a href="http://goo.gl/9kmAEf"&gt;r&lt;/a&gt;s&lt;a href="http://goo.gl/9kmAEf"&gt;t&lt;/a&gt; &lt;a href="http://goo.gl/9kmAEf"&gt;post&lt;/a&gt; in this two-part series. For one of the most comprehensive write-ups on both (read and update) use cases, &lt;a href="https://developers.google.com/slides/how-tos/field-masks"&gt;see the guide&lt;/a&gt; in the Google Slides API documentation. Happy field-masking! &lt;img src="http://feeds.feedburner.com/~r/GDBcode/~4/MGYhiLsmzTk" height="1" width="1" alt=""/&gt;</content><link rel="replies" type="application/atom+xml" href="http://developers.googleblog.com/feeds/5107357364321335827/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://developers.googleblog.com/2017/04/using-field-masks-with-update-requests.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/5107357364321335827" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/5107357364321335827" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GDBcode/~3/MGYhiLsmzTk/using-field-masks-with-update-requests.html" title="Using field masks with update requests to Google APIs" /><author><name>Google Devs</name><uri>https://plus.google.com/116954523003757714329</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img1.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img.youtube.com/vi/W421BNZA_74/default.jpg" height="72" width="72" /><thr:total>0</thr:total><gd:extendedProperty name="commentSource" value="1" /><gd:extendedProperty name="commentModerationMode" value="FILTERED_POSTMOD" /><feedburner:origLink>http://developers.googleblog.com/2017/04/using-field-masks-with-update-requests.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-596098824972435195.post-5352553120123820857</id><published>2017-04-06T10:00:00.000-07:00</published><updated>2017-04-06T10:00:52.508-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="color" /><category scheme="http://www.blogger.com/atom/ns#" term="css" /><category scheme="http://www.blogger.com/atom/ns#" term="html" /><category scheme="http://www.blogger.com/atom/ns#" term="javascript" /><category scheme="http://www.blogger.com/atom/ns#" term="material design" /><category scheme="http://www.blogger.com/atom/ns#" term="palette" /><title type="text">Expand your color palette with new tools for Material Design </title><content type="html">&lt;i&gt;Posted By: Rachel Been, Creative Lead, Material Design &lt;/i&gt;&lt;br /&gt;&lt;br /&gt;The &lt;a href="http://material.io/guidelines"&gt;Material Design Guidelines&lt;/a&gt; are a living documentation of visual, interactive, and motion design guidance across platforms and devices. &lt;br /&gt;&lt;br /&gt;&lt;a href="https://design.google.com/articles/design-is-never-done/"&gt;Beyond guidance&lt;/a&gt;, Material Design is a also system that supports and strengthens communication and productivity with new tools and inspiration. With &lt;a href="https://material.io/guidelines/material-design/whats-new.html"&gt;today's update&lt;/a&gt;, Material is introducing a new way to learn about color. The new &lt;a href="http://material.io/color"&gt;color tool&lt;/a&gt; helps you create, share, and apply color palettes to a sample UI and through components in codepen. The tool also supports accessibility by evaluating the legibility of text for any color combination. Specific features include: &lt;br /&gt;&lt;dl&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://3.bp.blogspot.com/-u5JcZlIY0wY/WOZuCA7IBoI/AAAAAAAACh8/eXf8Hb7mtTYMBzDdgSSSeiYTe1fJ4O3owCLcB/s1600/image00.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="198" src="https://3.bp.blogspot.com/-u5JcZlIY0wY/WOZuCA7IBoI/AAAAAAAACh8/eXf8Hb7mtTYMBzDdgSSSeiYTe1fJ4O3owCLcB/s200/image00.png" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;dt&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/dt&gt;&lt;dt&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/dt&gt;&lt;dt&gt;&lt;br /&gt;&lt;/dt&gt;&lt;dt&gt;&lt;strong&gt;Create color schemes&lt;/strong&gt;&lt;/dt&gt;&lt;dl&gt;&lt;br /&gt;&lt;/dl&gt;Create color schemes that include darker and lighter variations of your primary and secondary colors. &lt;br /&gt;&lt;dl&gt;&lt;dt&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/dt&gt;&lt;dt&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/dt&gt;&lt;dt&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/dt&gt;&lt;dt&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/dt&gt;&lt;dt&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/dt&gt;&lt;dt&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/dt&gt;&lt;dt&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/dt&gt;&lt;dt&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/dt&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://1.bp.blogspot.com/-oup5WobTOuA/WOZuCMiOQjI/AAAAAAAACh4/_kfcXizw5QQ5pvnfwsU5Mk-E0V_tp3fhQCEw/s1600/image02.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="https://1.bp.blogspot.com/-oup5WobTOuA/WOZuCMiOQjI/AAAAAAAACh4/_kfcXizw5QQ5pvnfwsU5Mk-E0V_tp3fhQCEw/s200/image02.png" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;dt&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/dt&gt;&lt;dt&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/dt&gt;&lt;dt&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/dt&gt;&lt;dt&gt;&lt;strong&gt;Test accessibility&lt;/strong&gt;&lt;/dt&gt;&lt;dl&gt;&lt;br /&gt;&lt;/dl&gt;Check if text is accessible on different-colored backgrounds, as measured using the &lt;a href="https://www.w3.org/TR/UNDERSTANDING-WCAG20/visual-audio-contrast-contrast.html"&gt;Web Content Accessibility Guidelines&lt;/a&gt; legibility standards. &lt;br /&gt;&lt;dl&gt;&lt;dt&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/dt&gt;&lt;dt&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/dt&gt;&lt;dt&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/dt&gt;&lt;dt&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/dt&gt;&lt;dt&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/dt&gt;&lt;dt&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/dt&gt;&lt;dt&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/dt&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://4.bp.blogspot.com/-tCEdZhDOA0s/WOZuCC11tdI/AAAAAAAACiA/6SYIAznb3o0DCro_dL5dr6_Qux7H96AOgCEw/s1600/image01.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="198" src="https://4.bp.blogspot.com/-tCEdZhDOA0s/WOZuCC11tdI/AAAAAAAACiA/6SYIAznb3o0DCro_dL5dr6_Qux7H96AOgCEw/s200/image01.png" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;dt&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/dt&gt;&lt;dt&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/dt&gt;&lt;dt&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/dt&gt;&lt;dt&gt;&lt;strong&gt;Preview your UI in color&lt;/strong&gt;&lt;/dt&gt;&lt;dl&gt;&lt;br /&gt;&lt;/dl&gt;Preview the look of your color scheme across a range of &lt;a href="http://material.io/components"&gt;Material Design Components&lt;/a&gt;, with editable HTML, CSS, or JavaScript in Codepen. &lt;br /&gt;&lt;/dl&gt;&lt;dl&gt;&lt;br /&gt;&lt;/dl&gt;&lt;dl&gt;&lt;br /&gt;&lt;/dl&gt;&lt;dl&gt;&lt;br /&gt;&lt;/dl&gt;&lt;dl&gt;&lt;br /&gt;&lt;/dl&gt;&lt;dl&gt;With these new tools to dabble with color schemes, you'll be able to give you users a richer experience, so we can't wait to see what you come up with. To get the latest news and engage with us directly, please follow us on our new Twitter account (&lt;a href="https://twitter.com/materialdesign"&gt;@materialdesign&lt;/a&gt;) and visit &lt;a href="https://material.io/"&gt;https://material.io/&lt;/a&gt;. &lt;/dl&gt;&lt;/dl&gt;&lt;/dl&gt;&lt;img src="http://feeds.feedburner.com/~r/GDBcode/~4/C0nXUwfzJfo" height="1" width="1" alt=""/&gt;</content><link rel="replies" type="application/atom+xml" href="http://developers.googleblog.com/feeds/5352553120123820857/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://developers.googleblog.com/2017/04/expand-your-color-palette-with-new.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/5352553120123820857" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/5352553120123820857" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GDBcode/~3/C0nXUwfzJfo/expand-your-color-palette-with-new.html" title="Expand your color palette with new tools for Material Design " /><author><name>Google Devs</name><uri>https://plus.google.com/116954523003757714329</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img1.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://3.bp.blogspot.com/-u5JcZlIY0wY/WOZuCA7IBoI/AAAAAAAACh8/eXf8Hb7mtTYMBzDdgSSSeiYTe1fJ4O3owCLcB/s72-c/image00.png" height="72" width="72" /><thr:total>0</thr:total><gd:extendedProperty name="commentSource" value="1" /><gd:extendedProperty name="commentModerationMode" value="FILTERED_POSTMOD" /><feedburner:origLink>http://developers.googleblog.com/2017/04/expand-your-color-palette-with-new.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-596098824972435195.post-4883220278182902682</id><published>2017-04-05T10:06:00.000-07:00</published><updated>2017-04-05T10:06:51.726-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="developers" /><category scheme="http://www.blogger.com/atom/ns#" term="open source" /><category scheme="http://www.blogger.com/atom/ns#" term="Progressive Web App" /><category scheme="http://www.blogger.com/atom/ns#" term="PWA" /><category scheme="http://www.blogger.com/atom/ns#" term="Santa Tracker" /><title type="text">Santa Tracker, open-sourced and delivered</title><content type="html">&lt;i&gt;Posted by &lt;a href="https://plus.google.com/+SamThorogood" target="_blank"&gt;Sam Thorogood&lt;/a&gt;, Developer Programs Engineer&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Santa Tracker is a holiday tradition here at Google. Every year, you can celebrate the season with games, holiday experiences and educational content throughout December: not to mention watching Santa deliver presents on 24th. &lt;br /&gt;&lt;br /&gt;Today, we're continuing the season of giving by delivering the updated open-source versions of both the Web and Android versions that ran in December 2016. These are large, real-world apps that show off the latest and greatest from Google—using APIs and frameworks like Firebase and Polymer. &lt;br /&gt;&lt;br /&gt;&lt;div style="color: black; font-weight: normal;"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://3.bp.blogspot.com/-5p2FupIuC9A/WOQ2rG1_ayI/AAAAAAAAChI/ohLNoofXmdUffimjTofERgCJBQx2xJ1ewCLcB/s1600/Untitled_document0.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="274" src="https://3.bp.blogspot.com/-5p2FupIuC9A/WOQ2rG1_ayI/AAAAAAAAChI/ohLNoofXmdUffimjTofERgCJBQx2xJ1ewCLcB/s640/Untitled_document0.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;This year, Santa's elves added even more engaging, fun and educational experiences to Santa Tracker: all while making Santa and his reindeer leaner than ever before—across both Web and Android. &lt;br /&gt;&lt;br /&gt;On the Web, we built a reliable, offline-capable PWA-ified version of Santa Tracker that saved bandwidth and worked in environments with poor connectivity. For Android, we worked hard to save every precious byte by closely examining our visual assets and other libraries. &lt;br /&gt;&lt;br /&gt;To get started, you can check out the code on GitHub at &lt;a href="https://github.com/google/santa-tracker-web"&gt;google/santa-tracker-web&lt;/a&gt;and &lt;a href="https://github.com/google/santa-tracker-android"&gt;google/santa-tracker-android&lt;/a&gt;. Both Web and Android versions include detailed build instructions. &lt;br /&gt;&lt;h3&gt;&lt;strong&gt;On the Web&lt;/strong&gt;&lt;/h3&gt;If you'd like to read about how the elves build Santa Tracker as an offline Progressive Web App, check out our &lt;a href="https://developers.google.com/web/showcase/2017/santa"&gt;Case Study on Google Developers&lt;/a&gt;. To download the source, &lt;a href="https://github.com/google/santa-tracker-web"&gt;head over to GitHub&lt;/a&gt;. Here are some highlights of the release- &lt;br /&gt;&lt;ul&gt;&lt;li&gt;Santa is a Progressive Web App, sporting a responsive design for mobile, desktop and tablet, supporting Add to Home Screen and offline. &lt;ul&gt;&lt;li&gt;Rather than saving the entire site offline (about 100mb, including resources needed for different browsers), Santa's &lt;a href="https://developers.google.com/web/fundamentals/getting-started/primers/service-workers"&gt;Service Worker&lt;/a&gt; only saves the scenes you've visited at least once—icing over houses that aren't available offline. &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://1.bp.blogspot.com/-jfHqNBeJiAY/WOQ3MgfJrgI/AAAAAAAAChQ/JBEVJnZk2S4LFbQh_nmy8SRE_kSCQa2MQCLcB/s1600/Untitled_document1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="482" src="https://1.bp.blogspot.com/-jfHqNBeJiAY/WOQ3MgfJrgI/AAAAAAAAChQ/JBEVJnZk2S4LFbQh_nmy8SRE_kSCQa2MQCLcB/s640/Untitled_document1.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Santa Tracker used Polymer 1.7+, packing code into reusable components. Every &lt;a href="https://github.com/google/santa-tracker-web/tree/master/scenes"&gt;house&lt;/a&gt;in Santa's Village is a custom element, only loaded when needed, minimizing the startup cost of Santa Tracker.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;The Web Share API allowed users on mobile to quickly and natively showcase their creativity—it's a modern API for interfacing with a platform's native share intent, replacing the sea of share buttons normally presented to users.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Santa sported a new and improved Chromecast experience that scaled well across all Cast devices—from the original Chromecast device through to the high-end Chromecast Ultra and supported TVs.&lt;/li&gt;&lt;/ul&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://3.bp.blogspot.com/-yANEgr1Fd88/WOQ3Z6YO1TI/AAAAAAAAChU/wE08QEdLnagDGWavBKexTWrLUs2G_3yAQCLcB/s1600/Untitled_document2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="386" src="https://3.bp.blogspot.com/-yANEgr1Fd88/WOQ3Z6YO1TI/AAAAAAAAChU/wE08QEdLnagDGWavBKexTWrLUs2G_3yAQCLcB/s640/Untitled_document2.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Users were delighted by showing some &lt;a href="https://www.youtube.com/watch?v=IXmDOu-eSx4"&gt;great&lt;/a&gt; &lt;a href="https://www.youtube.com/watch?v=zE_D9Vd69aw"&gt;video&lt;/a&gt; &lt;a href="https://www.youtube.com/watch?v=_WdYujHlmHA"&gt;content&lt;/a&gt; from around Santa's Village, especially during Santa's long travel legs.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;The Android client also used this Chromecast experience, so Android users joined the fun watching Santa deliver presents on the 24th on their big screen TVs.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Santa's elves have created some amazing new educational experiences built for 2017—including Code a Snowflake, &lt;a href="https://developers.google.com/blockly/"&gt;written by the Google team behind Blockly&lt;/a&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;&lt;strong&gt;On Android&lt;/strong&gt;&lt;/h3&gt;In 2016, Santa went on a diet, and reduced his APK download size by over 10mb—while adding four new games and a visual refresh. To learn more about our work, check out &lt;a href="https://android-developers.googleblog.com/2017/03/getting-santa-tracker-into-shape.html"&gt;the in-depth analysis on Android Developers&lt;/a&gt;—or to try it yourself, &lt;a href="https://github.com/google/santa-tracker-android"&gt;head over to GitHub&lt;/a&gt;. Here are some highlights of this year's app- &lt;br /&gt;&lt;ul&gt;&lt;li&gt;Present Quest, a new AR game where players are encouraged to explore their real-world environment to collect presents and level up!&lt;/li&gt;&lt;/ul&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://1.bp.blogspot.com/-RnYad5IQAEE/WOQ3iHF8guI/AAAAAAAAChY/WbPCK4LUM-EyyXHrJYA7LRQLpRalFxvuACLcB/s1600/Untitled_document3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://1.bp.blogspot.com/-RnYad5IQAEE/WOQ3iHF8guI/AAAAAAAAChY/WbPCK4LUM-EyyXHrJYA7LRQLpRalFxvuACLcB/s640/Untitled_document3.png" width="366" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Santa is smaller and faster than ever before. The download size is down 10mb from the previous release, despite including multiple new games, Santa works better on memory-constrained devices, and various sources of jank have been found and removed.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;The app is built using split APKs - one per architecture (armv5, armv7, and x86), reducing download size. Each APK supports phones, tablets, Android TVs and provide custom watch faces on Android Wear. &lt;/li&gt;&lt;/ul&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://2.bp.blogspot.com/-BwzpTKnvyTM/WOQ3q6K88-I/AAAAAAAAChc/6J9HQDuCprgOX7IXGGoh-nC4mZpYTDImwCLcB/s1600/Untitled_document4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="470" src="https://2.bp.blogspot.com/-BwzpTKnvyTM/WOQ3q6K88-I/AAAAAAAAChc/6J9HQDuCprgOX7IXGGoh-nC4mZpYTDImwCLcB/s640/Untitled_document4.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Santa Tracker leverages Firebase features, including &lt;a href="https://firebase.google.com/docs/remote-config/api-overview"&gt;Remote Config&lt;/a&gt;, &lt;a href="https://firebase.google.com/docs/invites/"&gt;App Invites&lt;/a&gt;to invite your friends to play along, and &lt;a href="https://firebase.google.com/docs/analytics/"&gt;Firebase Analytics&lt;/a&gt; to help our elves better understand users of the app.&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;&lt;strong&gt;Ho Ho Ho!&lt;/strong&gt;&lt;/h3&gt;We hope you enjoy exploring Santa Tracker and its source code, and it inspires you to leverage the same approaches to make your own magical experiences! &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://feeds.feedburner.com/~r/GDBcode/~4/1ogyXGtCFoQ" height="1" width="1" alt=""/&gt;</content><link rel="replies" type="application/atom+xml" href="http://developers.googleblog.com/feeds/4883220278182902682/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://developers.googleblog.com/2017/04/santa-tracker-open-sourced-and-delivered.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/4883220278182902682" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/4883220278182902682" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GDBcode/~3/1ogyXGtCFoQ/santa-tracker-open-sourced-and-delivered.html" title="Santa Tracker, open-sourced and delivered" /><author><name>Google Devs</name><uri>https://plus.google.com/116954523003757714329</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img1.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://3.bp.blogspot.com/-5p2FupIuC9A/WOQ2rG1_ayI/AAAAAAAAChI/ohLNoofXmdUffimjTofERgCJBQx2xJ1ewCLcB/s72-c/Untitled_document0.png" height="72" width="72" /><thr:total>0</thr:total><gd:extendedProperty name="commentSource" value="1" /><gd:extendedProperty name="commentModerationMode" value="FILTERED_POSTMOD" /><feedburner:origLink>http://developers.googleblog.com/2017/04/santa-tracker-open-sourced-and-delivered.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-596098824972435195.post-846727844887170998</id><published>2017-04-05T06:00:00.000-07:00</published><updated>2017-04-05T06:00:33.330-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="G Suite" /><category scheme="http://www.blogger.com/atom/ns#" term="Gmail APIs" /><category scheme="http://www.blogger.com/atom/ns#" term="Google APIs" /><category scheme="http://www.blogger.com/atom/ns#" term="Google Drive SDK" /><category scheme="http://www.blogger.com/atom/ns#" term="Google Sheets API" /><title type="text">Using field masks with Google APIs for partial response</title><content type="html">&lt;i&gt;Originally posted on the &lt;a href="https://gsuite-developers.googleblog.com/2017/03/using-field-masks-with-google-apis-for_31.html" target="_blank"&gt;G Suite Developers Blog&lt;/a&gt; by &lt;a href="https://twitter.com/wescpy" target="_blank"&gt;Wesley Chun&lt;/a&gt;, Developer Advocate, G Suite&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;When you write applications using Google APIs (not just G Suite ones, but most Google APIs including YouTube or Google Cloud Platform APIs), it's important to be mindful of the data that’s returned in the response payloads from API calls. If you're not, your apps are likely getting back much more data than they need which can affect the performance of your apps whether on mobile or a server backend.  &lt;br /&gt;&lt;br /&gt;That's why most Google APIs allow you to only filter the data you need from response payloads with field masks. To get you comfortable with &lt;i&gt;field masks&lt;/i&gt;, we’ve put together a video to demonstrate their use with various Google APIs: &lt;iframe allowfullscreen="" frameborder="0" height="360" src="https://www.youtube.com/embed/T1FUDXRB7Ns" width="640"&gt;&lt;/iframe&gt;With field masks, you can specify exactly what fields an API should return in its response payload by providing a fields or part parameter in your calls. And once the API knows what you want, it will likely spend less time assembling your response too. Here’s an example Python call to fetch your sender addresses using the Gmail API (if &lt;i&gt;GMAIL&lt;/i&gt; is your service endpoint): &lt;br /&gt;&lt;pre&gt;&lt;code&gt;     addresses = GMAIL.users().settings().sendAs().list(&lt;br /&gt;             userId='me'&lt;br /&gt;     ).execute().get('sendAs')&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;Whether you’re using a &lt;a href="http://developers.google.com/discovery/libraries"&gt;Client Library&lt;/a&gt; (as our Python call) or using HTTP directly with GET https://www.googleapis.com/gmail/v1/users/userId/settings/sendAs, this is the payload you get back from the API: &lt;br /&gt;&lt;pre&gt;&lt;code&gt;     {&lt;br /&gt;       "sendAs": [{&lt;br /&gt;         "sendAsEmail": string,&lt;br /&gt;         "displayName": string,&lt;br /&gt;         "replyToAddress": string,&lt;br /&gt;         "signature": string,&lt;br /&gt;         "isPrimary": boolean,&lt;br /&gt;         "isDefault": boolean,&lt;br /&gt;         "treatAsAlias": boolean,&lt;br /&gt;         "smtpMsa": {&lt;br /&gt;           "host": string,&lt;br /&gt;           "port": integer,&lt;br /&gt;           "username": string,&lt;br /&gt;           "password": string,&lt;br /&gt;           "securityMode": string&lt;br /&gt;         },&lt;br /&gt;         "verificationStatus": string&lt;br /&gt;       }, ...]&lt;br /&gt;     }&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;The &lt;i&gt;sendAs&lt;/i&gt; array gives you everything you need to know about each of your sender addresses. Did you know you can &lt;a href="https://www.youtube.com/watch?list=PLOU2XLYxmsIJJFx_MVCQJ7eWF3gDxklgJ&amp;amp;v=kfeKF1zgwj0"&gt;change a user’s email signature using the Gmail API&lt;/a&gt; &lt;i&gt;without&lt;/i&gt; all of the data from above? You only need one field, or at most two: &lt;i&gt;sendAsEmail&lt;/i&gt; and perhaps the &lt;i&gt;isPrimary&lt;/i&gt; flag. By specifying a field mask with just those names from the &lt;i&gt;sendAs&lt;/i&gt; attribute, you can cut out all those unneeded fields. Check it out here in Python with the field mask bolded for emphasis (versus the sample code above that &lt;i&gt;doesn’t&lt;/i&gt; filter): &lt;br /&gt;&lt;pre&gt;&lt;code&gt;     addresses = GMAIL.users().settings().sendAs().list(&lt;br /&gt;             userId='me', &lt;b&gt;fields='sendAs(sendAsEmail,isPrimary)'&lt;/b&gt;&lt;br /&gt;     ).execute().get('sendAs')&lt;/code&gt;&lt;/pre&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://1.bp.blogspot.com/-VeeZ-c2EnLk/WN6huGrfE4I/AAAAAAAABjo/Urv4VW6RPIkBS3A_mmPi8E48cALoKiSaQCLcB/s1600/Field%2BMasks%2Bimage.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="400" src="https://1.bp.blogspot.com/-VeeZ-c2EnLk/WN6huGrfE4I/AAAAAAAABjo/Urv4VW6RPIkBS3A_mmPi8E48cALoKiSaQCLcB/s400/Field%2BMasks%2Bimage.png" width="200" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Field masks filter our unnecessary data from Google API call responses.&lt;span id="docs-internal-guid-45c8ed61-25a7-f8c7-bfbd-206e61a66307"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;span id="docs-internal-guid-45c8ed61-25a7-f8c7-bfbd-206e61a66307"&gt;&lt;span style="font-family: &amp;quot;roboto&amp;quot;; font-size: 10pt; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span id="docs-internal-guid-45c8ed61-25a7-f8c7-bfbd-206e61a66307"&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;In part two of this video series (coming soon), we’ll show you a different use case for field masks...for &lt;i&gt;update&lt;/i&gt; API calls. We’ll also provide some usage tips and demonstrate how field masks can be used in both read and update calls, how both types of calls are discrete, and how in some cases, you may use &lt;i&gt;both&lt;/i&gt; as part of a single API call. Stay tuned! &lt;br /&gt;&lt;br /&gt;To learn more about using field masks for partial response in API payloads, &lt;a href="https://developers.google.com/api-client-library/python/guide/performance#partial-response-fields-parameter"&gt;check out this section&lt;/a&gt; of the Client Library docs. For one of the most comprehensive write-ups on both (read and update) use cases, &lt;a href="https://developers.google.com/slides/how-tos/field-masks"&gt;see the guide&lt;/a&gt; in the Google Slides API documentation.  &lt;img src="http://feeds.feedburner.com/~r/GDBcode/~4/roz_HrWM9FY" height="1" width="1" alt=""/&gt;</content><link rel="replies" type="application/atom+xml" href="http://developers.googleblog.com/feeds/846727844887170998/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://developers.googleblog.com/2017/04/using-field-masks-with-google-apis-for.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/846727844887170998" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/846727844887170998" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GDBcode/~3/roz_HrWM9FY/using-field-masks-with-google-apis-for.html" title="Using field masks with Google APIs for partial response" /><author><name>Google Devs</name><uri>https://plus.google.com/116954523003757714329</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img1.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img.youtube.com/vi/T1FUDXRB7Ns/default.jpg" height="72" width="72" /><thr:total>0</thr:total><gd:extendedProperty name="commentSource" value="1" /><gd:extendedProperty name="commentModerationMode" value="FILTERED_POSTMOD" /><feedburner:origLink>http://developers.googleblog.com/2017/04/using-field-masks-with-google-apis-for.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-596098824972435195.post-1242322638688228037</id><published>2017-04-03T16:00:00.000-07:00</published><updated>2017-04-04T07:53:40.012-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="adobe" /><category scheme="http://www.blogger.com/atom/ns#" term="chinese" /><category scheme="http://www.blogger.com/atom/ns#" term="developers" /><category scheme="http://www.blogger.com/atom/ns#" term="font api" /><category scheme="http://www.blogger.com/atom/ns#" term="Google Noto fonts" /><category scheme="http://www.blogger.com/atom/ns#" term="japanese" /><category scheme="http://www.blogger.com/atom/ns#" term="korean" /><category scheme="http://www.blogger.com/atom/ns#" term="Noto Serif CJK" /><category scheme="http://www.blogger.com/atom/ns#" term="serif" /><category scheme="http://www.blogger.com/atom/ns#" term="web fonts" /><category scheme="http://www.blogger.com/atom/ns#" term="webfonts" /><title type="text">Noto Serif CJK is here!</title><content type="html">&lt;br /&gt;&lt;i&gt;Posted by&amp;nbsp;Xiangye Xiao and Jungshik Shin, Internationalization Engineering team&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Today, in collaboration with Adobe, we are responding to the call for Serif! We are pleased to announce Noto Serif CJK, the long-awaited companion to &lt;a href="https://developers.googleblog.com/2014/07/noto-cjk-font-that-is-complete.html"&gt;Noto Sans CJK released in 2014&lt;/a&gt;.  Like Noto Sans CJK, Noto Serif CJK supports Simplified Chinese, Traditional Chinese, Japanese, and Korean, all in one font.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://3.bp.blogspot.com/-OADrkMbTr24/WOKy7BNqh5I/AAAAAAAACgM/VO_qVdZ1xVk-K03RND2u0YQIg63KOClpQCLcB/s1600/image02.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="264" src="https://3.bp.blogspot.com/-OADrkMbTr24/WOKy7BNqh5I/AAAAAAAACgM/VO_qVdZ1xVk-K03RND2u0YQIg63KOClpQCLcB/s640/image02.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;A serif-style CJK font goes by many names: &lt;em&gt;Song&lt;/em&gt; (宋体) in Mainland China, &lt;em&gt;Ming&lt;/em&gt; (明體) in Hong Kong, Macao and Taiwan, &lt;em&gt;Minchō&lt;/em&gt; (明朝) in Japan, and &lt;em&gt;Myeongjo&lt;/em&gt; (명조) or &lt;em&gt;Batang&lt;/em&gt; (바탕) in Korea. The names and writing styles originated during the Song and Ming dynasties in China, when China's wood-block printing technique became popular. Characters were carved along the grain of the wood block. Horizontal strokes were easy to carve and vertical strokes were difficult; this resulted in thinner horizontal strokes and wider vertical ones. In addition, subtle triangular ornaments were added to the end of horizontal strokes to simulate Chinese Kai (楷体) calligraphy. This style continues today and has become a popular typeface style. &lt;br /&gt;&lt;br /&gt;Serif fonts, which are considered more traditional with calligraphic aesthetics, are often used for long paragraphs of text such as body text of web pages or ebooks. Sans-serif fonts are often used for user interfaces of websites/apps and headings because of their simplicity and modern feeling. &lt;br /&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://3.bp.blogspot.com/-oOV7jVerhmM/WOKzDEFowII/AAAAAAAACgU/SORBa8MVSe4l6uIkONaZ_eEMVOQmhs3tgCLcB/s1600/image01.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="173" src="https://3.bp.blogspot.com/-oOV7jVerhmM/WOKzDEFowII/AAAAAAAACgU/SORBa8MVSe4l6uIkONaZ_eEMVOQmhs3tgCLcB/s320/image01.png" width="320" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Design of '永' ('eternity') in Noto Serif and Sans CJK. This ideograph is famous for having the most important elements of calligraphic strokes. It is often used to evaluate calligraphy or typeface design.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;The Noto Serif CJK package offers the same features as Noto Sans CJK: &lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;It has comprehensive character coverage for the four languages. This includes the full coverage of CJK Ideographs with variation support for four regions, Kangxi radicals, Japanese Kana, Korean Hangul and other CJK symbols and letters in the Unicode Basic Multilingual Plane of Unicode. It also provides a limited coverage of CJK Ideographs in Plane 2 of Unicode, as necessary to support standards from China and Japan.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;span id="docs-internal-guid-a30510f9-358b-df99-8fdb-0c7e650d56ed"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div dir="ltr" style="margin-left: 0pt;"&gt;&lt;table style="border-collapse: collapse; border: none;"&gt;&lt;colgroup&gt;&lt;col width="113"&gt;&lt;/col&gt;&lt;col width="511"&gt;&lt;/col&gt;&lt;/colgroup&gt;&lt;tbody&gt;&lt;tr style="height: 0pt;"&gt;&lt;td style="border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"&gt;&lt;div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"&gt;&lt;span style="font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;Simplified Chinese&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"&gt;&lt;div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"&gt;&lt;span style="font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;Supports GB 18030 and China’s latest standard Table of General Chinese Characters (通用规范汉字表) published in 2013. &lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 0pt;"&gt;&lt;td style="border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"&gt;&lt;div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"&gt;&lt;span style="font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;Traditional Chinese&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"&gt;&lt;div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"&gt;&lt;span style="font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;Supports BIG5, and Traditional Chinese glyphs are compliant to glyph standard of Taiwan Ministry of Education &lt;/span&gt;&lt;span style="background-color: white; color: #333333; font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;(教育部國字標準字體)&lt;/span&gt;&lt;span style="font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;.&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 0pt;"&gt;&lt;td style="border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"&gt;&lt;div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"&gt;&lt;span style="font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;Japanese&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"&gt;&lt;div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"&gt;&lt;span style="font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;Supports all of the kanji in &amp;nbsp;JIS X 0208, JIS X 0213, and JIS X 0212 to include all kanji in Adobe-Japan1-6.&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 0pt;"&gt;&lt;td style="border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"&gt;&lt;div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"&gt;&lt;span style="font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;Korean&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"&gt;&lt;div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"&gt;&lt;span style="font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;The best font for typesetting classic Korean documents in Hangul and Hanja such as &lt;/span&gt;&lt;a href="http://www.unesco.org/new/en/communication-and-information/memory-of-the-world/register/full-list-of-registered-heritage/registered-heritage-page-8/the-hunmin-chongum-manuscript/" style="text-decoration: none;"&gt;&lt;span style="color: #1155cc; font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;"&gt;Humninjeongeum manuscript, a UNESCO World Heritage&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;.&lt;/span&gt;&lt;/div&gt;&lt;div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"&gt;&lt;span style="font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;Supports over 1.5 million archaic Hangul syllables and 11,172 modern syllables as well as all CJK ideographs in KS X 1001 and KS X 1002&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;span id="docs-internal-guid-a30510f9-358b-df99-8fdb-0c7e650d56ed"&gt;&lt;/span&gt;&lt;/div&gt;&lt;dl&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size: small;"&gt;Noto Serif CJK’s support of character and glyph set standards for the four languages&lt;/span&gt;&lt;/div&gt;&lt;span style="text-align: center;"&gt;&lt;ul&gt;&lt;li style="text-align: left;"&gt;It respects diversity of regional writing conventions for the same character. The example below shows the four glyphs of '述' (describe) in four languages that have subtle differences.&lt;/li&gt;&lt;/ul&gt;&lt;/span&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://3.bp.blogspot.com/-T34gHpTF0Sg/WOKz2WQ1J_I/AAAAAAAACgY/sasUt0_MROwwHk_oz5g-F36g7l6gL--QwCLcB/s1600/image03.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="103" src="https://3.bp.blogspot.com/-T34gHpTF0Sg/WOKz2WQ1J_I/AAAAAAAACgY/sasUt0_MROwwHk_oz5g-F36g7l6gL--QwCLcB/s400/image03.png" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;From left to right are glyphs of '述' in S. Chinese, T. Chinese, Japanese and Korean. This character means "describe".&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/dl&gt;&lt;div style="text-align: left;"&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;It is offered in seven weights: ExtraLight, Light, Regular, Medium, SemiBold, Bold, and Black. Noto Serif CJK supports 43,027 encoded characters and includes 65,535 glyphs (the maximum number of glyphs that can be included in a single font). The seven weights, when put together, have almost a half-million glyphs. The weights are compatible with Google's &lt;a href="https://design.google.com/"&gt;Material Design&lt;/a&gt; standard fonts, &lt;a href="https://github.com/google/roboto/releases"&gt;Roboto&lt;/a&gt;, &lt;a href="https://www.google.com/get/noto/#sans-lgc"&gt;Noto Sans&lt;/a&gt; and &lt;a href="https://www.google.com/get/noto/#serif-lgc"&gt;Noto Serif&lt;/a&gt;(Latin-Greek-Cyrillic fonts in the Noto family).&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://2.bp.blogspot.com/-ZMAkcny5iAM/WOK0LjleCGI/AAAAAAAACgc/Sx-OGRkJcmoVGJBhRms6y2Dj40bEDC-RgCEw/s1600/image04.png" imageanchor="1"&gt;&lt;img border="0" height="251" src="https://2.bp.blogspot.com/-ZMAkcny5iAM/WOK0LjleCGI/AAAAAAAACgc/Sx-OGRkJcmoVGJBhRms6y2Dj40bEDC-RgCEw/s400/image04.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: center;"&gt; &lt;dl style="text-align: center;"&gt;&lt;span style="font-size: 12.8px;"&gt;Seven weights of Noto Serif CJK&lt;/span&gt;&lt;/dl&gt;&lt;div style="text-align: left;"&gt;&lt;/div&gt;&lt;ul style="text-align: start;"&gt;&lt;/ul&gt;&lt;/div&gt;&lt;ul&gt;&lt;li style="text-align: left;"&gt;It supports vertical text layout and is compliant with the &lt;a href="http://www.unicode.org/reports/tr50/"&gt;Unicode vertical text layout standard&lt;/a&gt;. The shape, orientation, and position of particular characters (e.g., brackets and kana letters) are changed when the writing direction of the text is vertical.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://3.bp.blogspot.com/-WejzO7KmBt8/WOLJs3orRXI/AAAAAAAACgw/dhYcOp32hU4sTqx_bGe6PqWdb21aJp2kwCLcB/s1600/vertical-jp.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="289" src="https://3.bp.blogspot.com/-WejzO7KmBt8/WOLJs3orRXI/AAAAAAAACgw/dhYcOp32hU4sTqx_bGe6PqWdb21aJp2kwCLcB/s640/vertical-jp.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;The sheer size of this project also required regional expertise! Glyph design would not have been possible without leading East Asian type foundries Changzhou SinoType Technology,&lt;a href="http://www.iwatafont.com/en/"&gt; Iwata Corporation&lt;/a&gt;, and&lt;a href="http://sandoll.co.kr/"&gt; Sandoll Communications&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;Noto Serif CJK is open source under the &lt;a href="http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&amp;amp;id=OFL"&gt;SIL Open Font License, Version 1.1&lt;/a&gt;. We invite individual users to install and use these fonts in their favorite authoring apps; developers to bundle these fonts with your apps, and OEMs to embed them into their devices. The fonts are free for everyone to use! &lt;br /&gt;&lt;br /&gt;Noto Serif CJK font download:&lt;a href="https://www.google.com/get/noto"&gt;https://www.google.com/get/noto&lt;/a&gt;&lt;br /&gt;Noto Serif CJK on GitHub:&lt;a href="https://github.com/googlei18n/noto-cjk"&gt;https://github.com/googlei18n/noto-cjk&lt;/a&gt;&lt;br /&gt;Adobe's landing page for this release: &lt;a href="http://adobe.ly/SourceHanSerif"&gt;http://adobe.ly/SourceHanSerif&lt;/a&gt;&lt;br /&gt;Source Han Serif on GitHub: &lt;a href="https://github.com/adobe-fonts/source-han-serif/tree/release/"&gt;https://github.com/adobe-fonts/source-han-serif/tree/release/&lt;/a&gt; &lt;img src="http://feeds.feedburner.com/~r/GDBcode/~4/78JlybXFZvo" height="1" width="1" alt=""/&gt;</content><link rel="replies" type="application/atom+xml" href="http://developers.googleblog.com/feeds/1242322638688228037/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://developers.googleblog.com/2017/04/noto-serif-cjk-is-here.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/1242322638688228037" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/1242322638688228037" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GDBcode/~3/78JlybXFZvo/noto-serif-cjk-is-here.html" title="Noto Serif CJK is here!" /><author><name>Google Devs</name><uri>https://plus.google.com/116954523003757714329</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img1.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://3.bp.blogspot.com/-OADrkMbTr24/WOKy7BNqh5I/AAAAAAAACgM/VO_qVdZ1xVk-K03RND2u0YQIg63KOClpQCLcB/s72-c/image02.png" height="72" width="72" /><thr:total>0</thr:total><gd:extendedProperty name="commentSource" value="1" /><gd:extendedProperty name="commentModerationMode" value="FILTERED_POSTMOD" /><feedburner:origLink>http://developers.googleblog.com/2017/04/noto-serif-cjk-is-here.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-596098824972435195.post-7175901023574677411</id><published>2017-04-03T12:00:00.000-07:00</published><updated>2017-04-03T12:00:23.969-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="G Suite" /><category scheme="http://www.blogger.com/atom/ns#" term="Google APIs" /><category scheme="http://www.blogger.com/atom/ns#" term="oauth" /><category scheme="http://www.blogger.com/atom/ns#" term="OAuth2" /><category scheme="http://www.blogger.com/atom/ns#" term="security" /><title type="text">Updates to end user consent for 3rd-party apps and Single Sign-on providers</title><content type="html">&lt;i&gt;Originally Posted on &lt;a href="https://gsuite-developers.googleblog.com/2017/04/updates-to-end-user-consent-for-3rd.html" target="_blank"&gt;G Suite Developers Blog&lt;/a&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;Posted by Rodrigo Paiva, Product Manager &amp;amp; Nicholas Watson, Software Engineer, Identity, and &lt;a href="https://twitter.com/wescpy" target="_blank"&gt;Wesley Chun&lt;/a&gt;, Developer Advocate, G Suite&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;At Google, we're mindful of keeping our users' data and account information secure. So whether you're writing an app that requires &lt;a href="https://gsuite-developers.googleblog.com/2016/09/setting-expectations-for-accessing-user-data-via-oauth.html"&gt;access to user data&lt;/a&gt; or helping your users &lt;a href="https://gsuite-developers.googleblog.com/2016/09/increased-account-security-via-oauth-2-0-token-revocation.html"&gt;change their passwords&lt;/a&gt;, we'll keep you up-to-date on policy changes, and now today, when it comes to consent and 3rd-party applications. Starting &lt;strong&gt;April 5, 2017&lt;/strong&gt;, if you're an application developer or a 3rd-party Single Sign-On (SSO) provider, your G Suite users may encounter a redirect when they authenticate with your identity service to make it clear to users which account they're authenticating as well as the permissions they're granting to applications. &lt;br /&gt;&lt;br /&gt;These changes will occur on these platforms: &lt;br /&gt;&lt;ul&gt;&lt;li&gt;Google and 3rd-party applications on iOS &lt;/li&gt;&lt;li&gt;Mobile browsers on iOS and Android &lt;/li&gt;&lt;li&gt;Web browsers (Chrome, Firefox and other modern browsers)&lt;/li&gt;&lt;/ul&gt;Note that Android applications that use the standard authentication libraries are already prompting users to select appropriate account information, so they're not impacted by these changes. &lt;br /&gt;&lt;dl&gt;  &lt;h3&gt;&lt;strong&gt;More visibility with new permission requests for your application&lt;/strong&gt;&lt;span style="color: red; font-weight: bold;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/h3&gt;&lt;/dl&gt;It's important that your users are presented with account information and credential consent, and apps should make this process easy and clear. One new change that you may now see is that only  non-standard permission requests will be presented in the secondary consent screen in your application. &lt;br /&gt;&lt;br /&gt;Currently when an application requests permissions, all of them are displayed together. However, users should have greater visibility into permissions being requested beyond the standard "email address" and "profile" consent. By clicking to select their account, a user consents to these core permissions,. The secondary consent screen will appear only if additional permissions are requested by the application.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://4.bp.blogspot.com/-9WiB-zv1jv4/WOKSkJ8hvAI/AAAAAAAACfs/rk78gTZgpi0E-pWKqySNQeGK8UBJzKgVACEw/s1600/image05.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="https://4.bp.blogspot.com/-9WiB-zv1jv4/WOKSkJ8hvAI/AAAAAAAACfs/rk78gTZgpi0E-pWKqySNQeGK8UBJzKgVACEw/s320/image05.png" width="284" /&gt;&lt;/a&gt;&lt;a href="https://3.bp.blogspot.com/-AOrdQW6AxZA/WOKSmhWJBDI/AAAAAAAACf8/irnIx4fvyn0MJp87pcn97CWqr0F9jGCNgCEw/s1600/image03.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="https://3.bp.blogspot.com/-AOrdQW6AxZA/WOKSmhWJBDI/AAAAAAAACf8/irnIx4fvyn0MJp87pcn97CWqr0F9jGCNgCEw/s320/image03.png" width="234" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;/div&gt;&lt;center&gt;&lt;i&gt;&lt;span style="font-size: x-small;"&gt;Only non-standard permissions will be presented in the secondary consent screen that the user must approve.&lt;/span&gt;&lt;/i&gt;&lt;/center&gt;&lt;br /&gt;Along with these changes, your application name will be more visible to users, &lt;em&gt;and&lt;/em&gt; they can click-through to get your contact information. We recommend application developers use a public-facing email address so that users can quickly contact you for support or assistance. For more details, &lt;a href="https://developers.google.com/identity/sign-in/web/devconsole-project"&gt;check out this developer guide&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;If your application may also be used by G Suite customers that employ a 3rd-party Single Sign-On (SSO) service, we recommend that you utilize the &lt;code&gt;&lt;a href="https://developers.google.com/identity/protocols/OpenIDConnect#hd-param"&gt;hd and/or login_hint p&lt;/a&gt;&lt;/code&gt;arameters, if applicable. Even with the changes to the 3rd-party SSO auth flow, these parameters will be respected if provided. You can review the &lt;a href="https://developers.google.com/identity/protocols/OpenIDConnect"&gt;OpenID Connect page&lt;/a&gt; in the documentation for more information.  &lt;br /&gt;&lt;br /&gt;&lt;div style="color: red; font-weight: bold;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://4.bp.blogspot.com/-fWXbV19bZBc/WOKSmSLs9TI/AAAAAAAACf4/XACjpx-LZjkNoqNt9zkajNeM_dg7jQ4pgCEw/s1600/image01.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="https://4.bp.blogspot.com/-fWXbV19bZBc/WOKSmSLs9TI/AAAAAAAACf4/XACjpx-LZjkNoqNt9zkajNeM_dg7jQ4pgCEw/s320/image01.png" width="286" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;em&gt;&lt;span style="font-size: x-small;"&gt;An application that uses the &lt;strong&gt;hd&lt;/strong&gt; parameter to specify the domain name automatically&lt;/span&gt;&lt;/em&gt;&lt;/div&gt;&lt;dl&gt;  &lt;h3&gt;&lt;strong&gt;Changes coming for 3rd-party SSO redirection&lt;/strong&gt;&lt;/h3&gt;&lt;/dl&gt;G Suite users may also notice redirection when signing into 3rd-party SSO providers. If no accounts are signed in, the user must confirm the account after signing in to the 3rd-party SSO provider to ensure that they're signed in with the correct G Suite account:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://3.bp.blogspot.com/-6UAN-OM4gXk/WOKSmaAhdvI/AAAAAAAACf0/hFIOBnfo8-0Ho-qGlGf4aN7HIymXaHCcQCEw/s1600/image00.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="https://3.bp.blogspot.com/-6UAN-OM4gXk/WOKSmaAhdvI/AAAAAAAACf0/hFIOBnfo8-0Ho-qGlGf4aN7HIymXaHCcQCEw/s320/image00.png" width="286" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;em&gt;&lt;span style="font-size: x-small;"&gt;The end user who has just signed in with one Google account should select that account as confirmation.&lt;/span&gt;&lt;/em&gt;&lt;/div&gt;&lt;br /&gt;As mentioned, by clicking to the select their account, a user is opting into "email address" and "profile" consent.  Once the user consents to any additional non-standard permissions that may be requested, they will be redirected back to your application. &lt;br /&gt;&lt;br /&gt;If the user is already signed in to one or more accounts that match the &lt;code&gt;&lt;a href="https://developers.google.com/identity/protocols/OpenIDConnect#hd-param"&gt;hd&lt;/a&gt;&lt;/code&gt;hint, the Account Chooser will display all of the accounts and require the user to select the appropriate G Suite account before being redirected to the 3rd-party SSO provider then back to your application:  &lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://4.bp.blogspot.com/-HjchbNAZt6k/WOKSmpqNawI/AAAAAAAACgA/KCznEL9vIbIsn8Fj4SEoCBrR2yk-m3mZwCEw/s1600/image04.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="https://4.bp.blogspot.com/-HjchbNAZt6k/WOKSmpqNawI/AAAAAAAACgA/KCznEL9vIbIsn8Fj4SEoCBrR2yk-m3mZwCEw/s320/image04.png" width="287" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;em&gt;&lt;span style="font-size: x-small;"&gt;A user who is signed into several Google accounts will be required to choose the appropriate account.&lt;/span&gt;&lt;/em&gt;&lt;/div&gt;&lt;dl&gt;  &lt;h3&gt;&lt;strong&gt;See updates starting April 2017&lt;/strong&gt;&lt;/h3&gt;&lt;/dl&gt;These changes will help your users understand their permissions more clearly across all platforms, whether they're using Google or a 3rd-party SSO provider for authentication. We've started to roll out the new interstitial page on iOS devices, and changes for browsers will begin to roll out starting &lt;strong&gt;April 5, 2017&lt;/strong&gt;. &lt;br /&gt;&lt;br /&gt;&lt;img src="http://feeds.feedburner.com/~r/GDBcode/~4/k6yr4fW__CQ" height="1" width="1" alt=""/&gt;</content><link rel="replies" type="application/atom+xml" href="http://developers.googleblog.com/feeds/7175901023574677411/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://developers.googleblog.com/2017/04/updates-to-end-user-consent-for-3rd.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/7175901023574677411" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/7175901023574677411" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GDBcode/~3/k6yr4fW__CQ/updates-to-end-user-consent-for-3rd.html" title="Updates to end user consent for 3rd-party apps and Single Sign-on providers" /><author><name>Google Devs</name><uri>https://plus.google.com/116954523003757714329</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img1.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://4.bp.blogspot.com/-9WiB-zv1jv4/WOKSkJ8hvAI/AAAAAAAACfs/rk78gTZgpi0E-pWKqySNQeGK8UBJzKgVACEw/s72-c/image05.png" height="72" width="72" /><thr:total>0</thr:total><gd:extendedProperty name="commentSource" value="1" /><gd:extendedProperty name="commentModerationMode" value="FILTERED_POSTMOD" /><feedburner:origLink>http://developers.googleblog.com/2017/04/updates-to-end-user-consent-for-3rd.html</feedburner:origLink></entry></feed>
