CINXE.COM
Google I/O
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <link rel="icon" type="image/png" href="https://io.google/2022/app/images/favicon-16x16.png" sizes="16x16"> <link rel="icon" type="image/png" href="https://io.google/2022/app/images/favicon-32x32.png" sizes="32x32"> <link rel="icon" type="image/png" href="/app/favicon-96x96.png" sizes="96x96"> <link rel="icon" type="image/png" href="https://io.google/2022/app/images/favicon-android-chrome-192x192.png" sizes="192x192"> <link rel="icon" type="image/png" href="https://io.google/2022/app/images/favicon-android-chrome-512x512.png" sizes="512x512"> <link rel="icon" type="image/png" href="https://io.google/2022/app/images/favicon-apple-touch-icon-180x180.png" sizes="180x180"> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="description" content="Google I/O returns in May 2022. Join us live." /> <title>Google I/O</title> <meta property="og:title" content="Google I/O" /> <meta property="og:type" content="website" /> <meta property="og:url" content="https://io.google/2022/" /> <meta property="og:image" content="https://io.google/2022/app/images/og-image.jpg" /> <meta property="og:description" content="Google I/O returns in May 2022. Join us live." /> <style> /* Set sans-serif defaults */ body, html { background: white; color: #444; height: 100%; margin: 0; padding: 0; width: 100%; } body, html, h1, h2, h3, h4, h5, h6, p, div { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; font-family: 'Google Sans', Sans-Serif; } * { box-sizing: border-box; } </style> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin /> <link rel="preload" as="style" href="https://fonts.googleapis.com/icon?family=Google+Sans:400,500|Google+Sans+Display:400|Roboto:400,500|Roboto+Mono:400&display=swap" nonce="5fOvAG9g43A3fHVzxu1OUQ" /> <link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Google+Sans:400,500|Google+Sans+Display:400|Roboto:400,500|Roboto+Mono:400&display=swap" media="print" onload="this.media='all'" nonce="5fOvAG9g43A3fHVzxu1OUQ" /> <link rel="stylesheet" href="https://www.gstatic.com/external_hosted/io2022/app/iofe_tailwind.f6bc7b4ecf6b24c9aa233d96f26c48c0.css" nonce="5fOvAG9g43A3fHVzxu1OUQ" /> <link href="https://www.gstatic.com/external_hosted/io2022/app/iofe_bundle.5438b851ab6ccf40f1b0.css" rel="stylesheet" media="only x" onload="this.media='all'" nonce="5fOvAG9g43A3fHVzxu1OUQ" /> </head> <body data-phase="archive"> <script nonce="5fOvAG9g43A3fHVzxu1OUQ"> (function () { const mode = localStorage.getItem('gio::theme'); const systemSetToDarkMode = window.matchMedia('(prefers-color-scheme: dark)').matches === true; if (mode === "dark") { document.body.classList.add('dark'); } else if(!mode && systemSetToDarkMode) { document.body.classList.add('dark'); localStorage.setItem('gio::theme', 'dark'); } })(); </script> <div id="preact_root"></div> <div class="mount-test"></div> <header id="main-header" class="bg-white dark:bg-grey-900 border-black border-b-2 dark:border-white lg:border-b-0 lg:bg-white" > <div class="flex justify-end"> <div class="my-io-drawer hidden"> <div class="h-my-io-sections h-inherit"> <div data-focus-guard tabIndex="0" style="width: 1px; height: 0px; padding: 0px; overflow: hidden; position: fixed; top: 1px; left: 1px;"></div> <div data-focus-guard tabIndex="1" style="width: 1px; height: 0px; padding: 0px; overflow: hidden; position: fixed; top: 1px; left: 1px;"></div> <div class="flex flex-col h-inherit"> <div class="flex w-full justify-between p-1 border-b-2 border-grey-900 dark:border-grey-200 items-center py-4"> <div class="flex w-1/2 justify-between items-center"> <button class="block ml-3" aria-label> <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMAAAADACAYAAABS3GwHAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAIZSURBVHgB7dMBDcAwDMCw/Tp/VOXVj0dsKRDyzMweaNr3QJgBSDMAaQYgzQCkGYA0A5BmANIMQJoBSDMAaQYgzQCkGYA0A5BmANIMQJoBSDMAaQYgzQCkGYA0A5BmANIMQJoBSDMAaQYgzQCkGYA0A5BmANIMQJoBSDMAaQYgzQCkGYA0A5BmANIMQJoBSDMAaQYgzQCkGYA0A5BmANIMQJoBSDMAaQYgzQCkGYA0A5BmANIMQJoBSDMAaQYgzQCkGYA0A5BmANIMQJoBSDMAaQYgzQCkGYA0A5BmANIMQJoBSDMAaQYgzQCkGYA0A5BmANIMQJoBSDMAaQYgzQCkGYA0A5BmANIMQJoBSDMAaQYgzQCkGYA0A5BmANIMQJoBSDMAaQYgzQCkGYA0A5BmANIMQJoBSDMAaQYgzQCkGYA0A5BmANIMQJoBSDMAaQYgzQCkGYA0A5BmANIMQJoBSDMAaQYgzQCkGYA0A5BmANIMQJoBSDMAaQYgzQCkGYA0A5BmANIMQJoBSDMAaQYgzQCkGYA0A5BmANIMQJoBSDMAaQYgzQCkGYA0A5BmANIMQJoBSDMAaQYgzQCkGYA0A5BmANIMQJoBSDMAaQYgzQCkGYA0A5BmANIMQJoBSDMAaQYgzQCkGYA0A5BmANIMQJoBSDMAaQYgzQCkGYA0A5BmANIMQJoBSDMAaQYgzQCkGYC077YHmvYHLiMHyvgUKfUAAAAASUVORK5CYII=" class="rounded-full" width="32" height="32" aria-hidden="true" /> </button> <button class="flex items-center cursor-pointer sm:w-16 md:w-24 justify-center myio-btn"> <p class="font-medium sm:s-button-default dark:text-grey-200"></p> </button> <a href="https://developers.google.com/profile/u/me/settings" target="_blank" class="flex items-center" rel="noreferrer"> <img class="dark:hidden hcm-hidden" src="/2022/app/images/myio-settings.svg" role="img" aria-label /> <img class="hidden dark:block hcm-block" src="/2022/app/images/myio-settings-dark.svg" role="img" aria-label /> </a> </div> <button> <img class="dark:hidden hcm-dark-hidden" src="/2022/app/images/myio-close-icon.svg" role="img" aria-label /> <img class="hidden dark:block hcm-block" src="/2022/app/images/myio-close-icon-dark.svg" role="img" aria-label /> </button> </div> <div class="p-2 overflow-auto"> <div class="h-max"> <div class="p-4 "> <p class="sm:s-p1 text-grey-900 dark:text-grey-200"> Create a developer profile to earn badges, save sessions, and get recommended content. </p> <button class="mt-5 sm:s-button-default text-blue-600 dark:text-blue-dark font-medium link-blue"> Get started </button> </div> <div class="border-2 border-grey-900 dark:border-grey-200 rounded-lg mb-2 overflow-hidden"> <div class="bg-blue dark:bg-blue-dark h-24 flex flex-col justify-center pl-4 border-b-2 border-black dark:border-grey-200 py-4"> <h3 class="sm:l-h6 md:s-h4 font-medium text-grey-900 mb-1 ">Badges</h3> <span class="hidden underline-link"> <p>View all badges in your <a href="https://developers.google.com/profile/u/me">developer profile</a>.</p> </span> </div> <div class="flex relative justify-center"> <div class="flex flex-col items-center p-4"> <img class="mx-auto my-4" src="/2022/app/images/myIOBadges.svg" role="img" aria-hidden="true" /> <p class="text-center text-grey-900 dark:text-grey-200">Start earning badges by completing Learning Lab or product-related activities.</p> </div> <div class="flex overflow-auto myio-scrollbar hidden"></div> </div> </div> <div class="mb-2"> <div class="flex flex-col border-2 border-grey-900 dark:border-grey-200 rounded-lg h-full overflow-hidden"> <div class="bg-red dark:bg-red-dark h-24 flex flex-col justify-center pl-4 border-b-2 border-black dark:border-grey-200"> <h3 class="sm:l-h6 md:s-h4 font-medium text-grey-900 mb-1 " alt="[INVALID_KEY en/myio_a_badges_headline_badgesearnedalt]">Saved sessions</h3> <span class="hidden underline-link"> <p>Your saved sessions are automatically saved in your <a href="https://developers.google.com/profile/u/me">developer profile</a>.</p> </span> </div> <div class="flex flex-col p-4 justify-center h-full items-center"> <img class="mx-auto my-4" src="/2022/app/images/myIOSaved.svg" role="img" aria-hidden="true" loading="lazy" /> <p class=" text-center text-grey-900 dark:text-grey-200"> Keep track of the sessions you're interested in by saving them to your My I/O. </p> </div> <div class="flex flex-col overflow-auto max-h-112 myio-scrollbar hidden "> <div class> <img class="mx-auto my-4" src="/2022/app/images/myio-loading.svg" role="img" aria-hidden="true" loading="lazy" /> <img class="mx-auto my-4" src="/2022/app/images/myio-loading.svg" role="img" aria-hidden="true" loading="lazy" /> </div> <div></div> <button class="mt-5 sm:s-button-default text-blue-600 dark:text-blue-dark font-medium link-blue self-center hidden ">Load more</button> </div> </div> </div> <div class="mb-2"> <div class="flex flex-col border-2 border-grey-900 dark:border-grey-200 rounded-lg h-full overflow-hidden"> <div class="bg-green dark:bg-green-dark h-24 flex flex-col justify-center pl-4 border-b-2 border-black dark:border-grey-200"> <span class="sm:l-h6 md:s-h4 font-medium text-grey-900 mb-1 "> Recommended for you </span> <span class="hidden underline-link"> <p>These are based on your <a href="https://developers.google.com/profile/u/me">interests</a></p> </span> </div> <div class="flex flex-col p-4 justify-center h-full items-center"> <img class="mx-auto my-4" src="/2022/app/images/myIORecommended.svg" role="img" aria-hidden="true" loading="lazy" /> <p class="text-center text-grey-900 dark:text-grey-200"> Add interests in your developer profile to get content recommendations. </p> </div> <div class="flex flex-col overflow-auto max-h-112 myio-scrollbar hidden"> <div class> <img class="mx-auto my-4" src="/2022/app/images/myio-loading.svg" role="img" aria-hidden="true" loading="lazy" /> <img class="mx-auto my-4" src="/2022/app/images/myio-loading.svg" role="img" aria-hidden="true" loading="lazy" /> </div> <button class="mt-5 sm:s-button-default text-blue-600 dark:text-blue-dark font-medium link-blue self-center hidden ">Load more</button> </div> </div> </div> <div class="mb-2 hidden"> <div class="flex flex-col border-2 border-grey-900 dark:border-grey-200 rounded-lg h-full overflow-hidden "> <div class="bg-yellow dark:bg-yellow-dark h-24 flex flex-col justify-center pl-4 border-b-2 border-black dark:border-grey-200 "> <h3 class="sm:l-h6 md:s-h4 font-medium text-grey-900 mb-1">Saved resources</h3> <span class="hidden underline-link"> <p>Your saved resources are automatically saved in your <a href="https://developers.google.com/profile/u/me">developer profile</a>.</p> </span> </div> <div class="flex flex-col p-4 justify-center h-full items-center"> <img class="mx-auto my-4" src="/2022/app/images/myIOSaved.svg" role="img" aria-hidden="true" /> <p class=" text-center text-grey-900 dark:text-grey-200"> Keep track of the resources you're interested in by saving them to My I/O. </p> </div> <div class="flex flex-col overflow-auto max-h-112 myio-scrollbar hidden"> <div class> <img class="mx-auto my-4" src="/2022/app/images/myio-loading.svg" role="img" aria-hidden="true" /> <img class="mx-auto my-4" src="/2022/app/images/myio-loading.svg" role="img" aria-hidden="true" /> </div> <button class="mt-5 sm:s-button-default text-blue-600 dark:text-blue-dark font-medium link-blue self-center hidden ">Load more</button> </div> </div> </div> </div> </div> </div> <div data-focus-guard tabIndex="0" style="width: 1px; height: 0px; padding: 0px; overflow: hidden; position: fixed; top: 1px; left: 1px;"></div> </div> </div> <div class="my-io-drawer-mask hidden"></div> </div> <nav class="mx-auto md:px-8 relative header-nav py-3 flex items-center border-none" aria-label="Top" > <nav class="block lg:hidden"> <div class="ml-5 md:ml-0 flex"> <button id="hamburger" class="mobileHamburger" tab-index="0" aria-label="Toggle Navigation Bar" aria-controls="drawer-nav"> <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <rect width="24" height="24" fill="white" fill-opacity="0.01"/> <path id="hamburger-path" fill-rule="evenodd" clip-rule="evenodd" d="M3 18H21V16H3V18ZM3 13H21V11H3V13ZM3 6V8H21V6H3Z" fill="#121215" class="fill-grey-900 dark:fill-grey-200"/> <mask id="mask0_3949_5619" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="3" y="6" width="18" height="12"> <path fill-rule="evenodd" clip-rule="evenodd" d="M3 18H21V16H3V18ZM3 13H21V11H3V13ZM3 6V8H21V6H3Z" fill="white"/> </mask> <g mask="url(#mask0_3949_5619)"> </g> </svg> </button> </div> <div class="drawer-nav hidden" id="drawer-nav"> <div id="drawer-nav-a" class="flex justify-between"> <a href="/2022/"> <img id="normal-logo" src="/2022/app/images/Logo.svg" class="block dark:hidden logo" height="64" width="154" /> <img id="dark-logo" src="/2022/app/images/Logo-dark.svg" class="hidden dark:block dark-logo" height="64" width="154" /> <img id="onsite-logo" src="/2022/app/images/Logo-Onsite.svg" class="hidden onsite-logo" height="64" width="174" /> </a> </div> <div class="h-onsite-mobile-header w-full md:hidden"><div class="font-medium sm:l-cta2 flex flex-col py-6 bg-yellow dark:bg-yellow-dark border-grey-900 border-t-2 border-b-2 dark:border-grey-200 hidden"><button aria-controls="onsite-mobile-header" aria-expanded="false" class="flex justify-between w-full"><span class="ml-5 font-medium">Shoreline</span><svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg" class="rotate-0 transform mr-7"><mask id="mask0_2605_269227" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="2" y="5" width="12" height="7"><path d="M3.60602 5.06006L2.66602 6.00006L7.99935 11.3334L13.3327 6.00006L12.3927 5.06006L7.99935 9.44672" fill="white"></path></mask><g mask="url(#mask0_2605_269227)"><rect width="16" height="16" fill="#202124"></rect></g></svg></button><div id="onsite-mobile-sub-nav" class="hidden"><div class="flex flex-col mt-5"><a href="/inpersonfaq/" data-category="mobile-nav" data-action="Shoreline" data-label="Frequently Asked Questions" id="faqonsitelink" class="onsite-mobile-links"><span>Shoreline FAQ</span></a><a href="/health-safety/" data-category="mobile-nav" data-action="Shoreline" data-label="Health and Safety" id="healthsafetylink" class="onsite-mobile-links"><span>Health and Safety</span></a><a href="/travel/" data-category="mobile-nav" data-action="Shoreline" data-label="Travel & Accommodations" id="travellink" class="onsite-mobile-links"><span>Transportation and Logistics</span></a><a href="/schedule/" data-category="mobile-nav" data-action="Shoreline" data-label="Schedule" id="schedule" class="onsite-mobile-links"><span class="hidden">Schedule and Map</span><span class class>Schedule</span></a></div></div></div></div> <div class="flex justify-between items-center mt-4 pr-2"> <div class="h-program-link lg:mr-6 sm:l-cta2 lg:s-button-default inline-block flex-grow lg:flex-grow-0"><div><div class="flex flex-col lg:hidden text-grey-900 dark:text-grey-200"><button class="flex justify-between w-full pl-5 py-4 font-medium "><div><span data-active>Program</span></div><svg width="17" height="16" viewBox="0 0 17 16" fill="none" xmlns="http://www.w3.org/2000/svg" class="rotate-0 transform mr-5"><mask id="mask0_672_74360" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="3" y="5" width="12" height="7"><path d="M4.39666 5.05957L3.45667 5.99957L8.79 11.3329L14.1233 5.99957L13.1833 5.05957L8.79 9.44624" fill="white"></path></mask><g mask="url(#mask0_672_74360)"><rect x="0.790039" width="16" height="16" fill="#202124" class="fill-grey-900 dark:fill-grey-200"></rect></g></svg></button><div class="hidden"><div class="flex flex-col mt-2"><a href="/2022/program/" data-category="main-nav" data-action="Program" data-label="Overview" class="subnav-mobile-links sub-nav-links">Overview</a><a href="/2022/speakers/" data-category="main-nav" data-action="Program" data-label="Speakers" class="subnav-mobile-links sub-nav-links">Speakers</a></div></div></div><div class="hidden lg:block dark:text-grey-200"><div class="subnav__mask hidden z-100"></div><button class="relative w-auto flex justify-between items-center"><span data-active class="inline-block font-medium mr-2">Program</span><svg width="10" height="6" viewBox="0 0 10 6" fill="none" xmlns="http://www.w3.org/2000/svg" class="rotate-0 transform-none "><path fill-rule="evenodd" clip-rule="evenodd" d="M1.84754 0.22168L5.29004 3.65668L8.73254 0.22168L9.79004 1.27918L5.29004 5.77918L0.790039 1.27918L1.84754 0.22168Z" fill="#202124" class="fill-grey-900 dark:fill-grey-200"></path></svg><div class="flex flex-col text-left absolute border-2 border-grey-900 dark:border-grey-200 p-4 rounded-2xl z-50 bg-white dark:bg-grey-900 top-8 hidden"><a href="/2022/program/" class="sub-nav-links w-32 pb-2 mb-2 font-medium" data-category="main-nav" data-action="Program" data-label="Overview">Overview</a><a href="/2022/speakers/" class="sub-nav-links w-32 font-medium" data-category="main-nav" data-action="Program" data-label="Speakers">Speakers</a></div></button></div></div></div> </div> <div class="flex justify-between items-center ml-5 mt-4 pr-2"> <div class="h-products-link nav-links inline sm:l-cta2 lg:s-button-default"><div class="inline-block relative"><a href="/2022/products/" data-active class="inline" data-category="main-nav" data-action="Products" data-label="na">Products</a></div></div> </div> <div class="flex justify-between items-center ml-5 mt-7 pr-2"> <div class="nav-links inline sm:l-cta2 lg:s-button-default"> <div class="inline-block relative"> <a href="https://developers.google.com/community" target="_blank" rel="noopener noreferrer" langKey="global_community" data-category="main-nav" data-action="Community" data-label="na" > Community </a> </div> </div> </div> <div class="flex justify-between items-center ml-5 mt-7 pr-2"> <div class="nav-links inline sm:l-cta2 lg:s-button-default"> <div class="inline-block relative"> <a href="/2022/learning/" langKey="global_learninglab" data-category="main-nav" data-action="Learning Lab" data-label="na" > Learning Lab </a> </div> </div> </div> <div class="flex justify-between items-center mt-4 pr-2"> <div class="h-about-link sm:l-cta2 lg:s-button-default inline-block flex-grow lg:flex-grow-0"><div><div class="flex flex-col lg:hidden text-grey-900 dark:text-grey-200"><button aria-expanded="false" class="flex justify-between w-full pl-5 py-4 font-medium "><div><span data-active>About</span></div><svg width="17" height="16" viewBox="0 0 17 16" fill="none" xmlns="http://www.w3.org/2000/svg" class="rotate-0 transform mr-5"><mask id="mask0_672_74360" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="3" y="5" width="12" height="7"><path d="M4.39666 5.05957L3.45667 5.99957L8.79 11.3329L14.1233 5.99957L13.1833 5.05957L8.79 9.44624" fill="white"></path></mask><g mask="url(#mask0_672_74360)"><rect x="0.790039" width="16" height="16" fill="#202124" class="fill-grey-900 dark:fill-grey-200"></rect></g></svg></button><div class="hidden"><div class="flex flex-col mt-2"><a href="/2022/about/" data-category="main-nav" data-action="About" data-label="Overview" class="subnav-mobile-links sub-nav-links">Overview</a><a href="/2022/faq/" data-category="main-nav" data-action="About" data-label="FAQ" class="subnav-mobile-links sub-nav-links">FAQ</a></div></div></div><div class="hidden lg:block dark:text-grey-200"><div class="subnav__mask hidden z-100"></div><button class="relative w-auto flex justify-between items-center"><span data-active class="inline-block font-medium mr-2">About</span><svg width="10" height="6" viewBox="0 0 10 6" fill="none" xmlns="http://www.w3.org/2000/svg" class="rotate-0 transform-none "><path fill-rule="evenodd" clip-rule="evenodd" d="M1.84754 0.22168L5.29004 3.65668L8.73254 0.22168L9.79004 1.27918L5.29004 5.77918L0.790039 1.27918L1.84754 0.22168Z" fill="#202124" class="fill-grey-900 dark:fill-grey-200"></path></svg><div class="flex flex-col text-left absolute border-2 border-grey-900 dark:border-grey-200 p-4 rounded-2xl z-50 bg-white dark:bg-grey-900 top-8 hidden"><a href="/2022/about/" class="sub-nav-links w-32 pb-2 mb-2 font-medium" data-category="main-nav" data-action="About" data-label="Overview">Overview</a><a href="/2022/faq/" class="sub-nav-links w-32 font-medium" data-category="main-nav" data-action="About" data-label="FAQ">FAQ</a></div></button></div></div></div> </div> <div class="flex ml:hidden flex-col h-full justify-end m-5"> <div class="h-choose-language" data-in-footer=""> <select name="language-select" alt class="sm:l-cta2 ml:s-button-default font-medium language-select bg-white dark:bg-grey-900 text-grey-900 dark:text-white w-full border-none pl-0 ml:w-32 ml:ml-4 language-nav"> <option selected value="en"></option> <option value="es"></option> <option value="pt"></option> <option value="fr"></option> <option value="id"></option> <option value="ko"></option> <option value="zh"></option> <option value="ja"></option> </select> <div style="z-index: 10;" class="absolute invisible"> <div class="bg-white dark:bg-grey-900 dark:text-grey-200 border-2 border-grey-900 dark:border-grey-200 text-grey-900 sm:l-cta2 font-medium p-2 pr-6 w-full"> <span></span> <button type="button" class="absolute top-0 bottom-0" aria-label="Close"> <svg class="fill-current dark:fill-white text-grey-900 w-6 h-6 forced-white-color" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18"> <path d="m14.53 4.53-1.06-1.06L9 7.94 4.53 3.47 3.47 4.53 7.94 9l-4.47 4.47 1.06 1.06L9 10.06l4.47 4.47 1.06-1.06L10.06 9z"></path> </svg> </button> </div> <svg width="32" height="20" viewBox="-2 -2 37 28" fill="none" xmlns="http://www.w3.org/2000/svg" style="bottom: -18px; transform: scale(1, -1); right: 80px;" aria-hidden="true" class="absolute block dark:hidden hcm-hidden"> <g id="Polygon 1"> <path d="M0.138981 4.44226C0.0834319 1.0678 3.97439 -0.854559 6.62079 1.23988L35.9246 24.4317C37.4112 25.6083 36.5792 28 34.6834 28L2.49412 28C1.40238 28 0.512363 27.1245 0.494394 26.0329L0.138981 4.44226Z" fill="currentColor" stroke="#202124" stroke-width="2.5" mask="url(#path-1-inside-1_0_1)" class="arrow-white"></path> </g> </svg> <svg width="32" height="20" viewBox="-2 -2 37 28" fill="none" xmlns="http://www.w3.org/2000/svg" style="bottom: -18px; transform: scale(1, -1); right: 80px;" aria-hidden="true" class="absolute hidden dark:block hcm-block"> <g id="Polygon 1"> <path d="M0.138981 4.44226C0.0834319 1.0678 3.97439 -0.854559 6.62079 1.23988L35.9246 24.4317C37.4112 25.6083 36.5792 28 34.6834 28L2.49412 28C1.40238 28 0.512363 27.1245 0.494394 26.0329L0.138981 4.44226Z" fill="currentColor" stroke="#E8EAED" stroke-width="2.5" mask="url(#path-1-inside-1_0_1)" class="arrow-white"></path> </g> </svg> </div> </div> </div> </div> <div id="nav-mask" class="drawer-mask hidden"></div> </nav> <script defer nonce="5fOvAG9g43A3fHVzxu1OUQ"> document.addEventListener("DOMContentLoaded", function () { const drawer = document.getElementById("drawer-nav"); const mask = document.getElementById("nav-mask"); const hamburger = document.getElementById("hamburger"); // set hamburger button initially. toggleAriaExpandedAttribute(false); hamburger.addEventListener('click', handleNavToggle); mask.addEventListener("click", handleNavToggle); function toggleAriaExpandedAttribute(boolean) { hamburger.setAttribute("aria-expanded", boolean); } function handleNavToggle() { if (drawer.classList.contains("hidden")) { document.body.style.position = 'fixed'; mask.classList.remove("hidden"); toggleAriaExpandedAttribute(true); return drawer.classList.remove("hidden"); } else { document.body.style.position = ''; mask.classList.add("hidden"); toggleAriaExpandedAttribute(false); return drawer.classList.add("hidden"); } } }); </script> <a href="/2022/" class="mr-12" data-category="main-nav" data-action="Home" data-label="na" aria-label="Google I/0 2022" > <img id="medium-main-logo" src="/2022/app/images/Logo.svg" class="block dark:hidden logo" height="64" width="154" aria-hidden="true" /> <img id="medium-dark-logo" src="/2022/app/images/Logo-dark.svg" class="hidden dark:block dark-logo" height="64" width="154" aria-hidden="true" /> <img id="medium-onsite-logo" src="/2022/app/images/Logo-Onsite.svg" class="hidden onsite-logo dark:hidden" height="64" width="174" aria-hidden="true" /> </a> <div class="hidden lg:flex items-center flex-nowrap"> <div> <div class="h-program-link lg:mr-6 sm:l-cta2 lg:s-button-default inline-block flex-grow lg:flex-grow-0"><div><div class="flex flex-col lg:hidden text-grey-900 dark:text-grey-200"><button class="flex justify-between w-full pl-5 py-4 font-medium "><div><span data-active>Program</span></div><svg width="17" height="16" viewBox="0 0 17 16" fill="none" xmlns="http://www.w3.org/2000/svg" class="rotate-0 transform mr-5"><mask id="mask0_672_74360" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="3" y="5" width="12" height="7"><path d="M4.39666 5.05957L3.45667 5.99957L8.79 11.3329L14.1233 5.99957L13.1833 5.05957L8.79 9.44624" fill="white"></path></mask><g mask="url(#mask0_672_74360)"><rect x="0.790039" width="16" height="16" fill="#202124" class="fill-grey-900 dark:fill-grey-200"></rect></g></svg></button><div class="hidden"><div class="flex flex-col mt-2"><a href="/2022/program/" data-category="main-nav" data-action="Program" data-label="Overview" class="subnav-mobile-links sub-nav-links">Overview</a><a href="/2022/speakers/" data-category="main-nav" data-action="Program" data-label="Speakers" class="subnav-mobile-links sub-nav-links">Speakers</a></div></div></div><div class="hidden lg:block dark:text-grey-200"><div class="subnav__mask hidden z-100"></div><button class="relative w-auto flex justify-between items-center"><span data-active class="inline-block font-medium mr-2">Program</span><svg width="10" height="6" viewBox="0 0 10 6" fill="none" xmlns="http://www.w3.org/2000/svg" class="rotate-0 transform-none "><path fill-rule="evenodd" clip-rule="evenodd" d="M1.84754 0.22168L5.29004 3.65668L8.73254 0.22168L9.79004 1.27918L5.29004 5.77918L0.790039 1.27918L1.84754 0.22168Z" fill="#202124" class="fill-grey-900 dark:fill-grey-200"></path></svg><div class="flex flex-col text-left absolute border-2 border-grey-900 dark:border-grey-200 p-4 rounded-2xl z-50 bg-white dark:bg-grey-900 top-8 hidden"><a href="/2022/program/" class="sub-nav-links w-32 pb-2 mb-2 font-medium" data-category="main-nav" data-action="Program" data-label="Overview">Overview</a><a href="/2022/speakers/" class="sub-nav-links w-32 font-medium" data-category="main-nav" data-action="Program" data-label="Speakers">Speakers</a></div></button></div></div></div> <div class="h-products-link nav-links inline sm:l-cta2 lg:s-button-default"><div class="inline-block relative"><a href="/2022/products/" data-active class="inline" data-category="main-nav" data-action="Products" data-label="na">Products</a></div></div> <div class="nav-links inline sm:l-cta2 lg:s-button-default"> <a href="https://developers.google.com/community" target="_blank" rel="noopener noreferrer" langKey="global_community" data-category="main-nav" data-action="Community" data-label="na" > Community </a> </div> <div class="nav-links inline sm:l-cta2 lg:s-button-default"> <a href="/2022/learning/" langKey="global_learninglab" data-category="main-nav" data-action="Learning Lab" data-label="na" > Learning Lab </a> </div> <div class="h-about-link sm:l-cta2 lg:s-button-default inline-block flex-grow lg:flex-grow-0"><div><div class="flex flex-col lg:hidden text-grey-900 dark:text-grey-200"><button aria-expanded="false" class="flex justify-between w-full pl-5 py-4 font-medium "><div><span data-active>About</span></div><svg width="17" height="16" viewBox="0 0 17 16" fill="none" xmlns="http://www.w3.org/2000/svg" class="rotate-0 transform mr-5"><mask id="mask0_672_74360" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="3" y="5" width="12" height="7"><path d="M4.39666 5.05957L3.45667 5.99957L8.79 11.3329L14.1233 5.99957L13.1833 5.05957L8.79 9.44624" fill="white"></path></mask><g mask="url(#mask0_672_74360)"><rect x="0.790039" width="16" height="16" fill="#202124" class="fill-grey-900 dark:fill-grey-200"></rect></g></svg></button><div class="hidden"><div class="flex flex-col mt-2"><a href="/2022/about/" data-category="main-nav" data-action="About" data-label="Overview" class="subnav-mobile-links sub-nav-links">Overview</a><a href="/2022/faq/" data-category="main-nav" data-action="About" data-label="FAQ" class="subnav-mobile-links sub-nav-links">FAQ</a></div></div></div><div class="hidden lg:block dark:text-grey-200"><div class="subnav__mask hidden z-100"></div><button class="relative w-auto flex justify-between items-center"><span data-active class="inline-block font-medium mr-2">About</span><svg width="10" height="6" viewBox="0 0 10 6" fill="none" xmlns="http://www.w3.org/2000/svg" class="rotate-0 transform-none "><path fill-rule="evenodd" clip-rule="evenodd" d="M1.84754 0.22168L5.29004 3.65668L8.73254 0.22168L9.79004 1.27918L5.29004 5.77918L0.790039 1.27918L1.84754 0.22168Z" fill="#202124" class="fill-grey-900 dark:fill-grey-200"></path></svg><div class="flex flex-col text-left absolute border-2 border-grey-900 dark:border-grey-200 p-4 rounded-2xl z-50 bg-white dark:bg-grey-900 top-8 hidden"><a href="/2022/about/" class="sub-nav-links w-32 pb-2 mb-2 font-medium" data-category="main-nav" data-action="About" data-label="Overview">Overview</a><a href="/2022/faq/" class="sub-nav-links w-32 font-medium" data-category="main-nav" data-action="About" data-label="FAQ">FAQ</a></div></button></div></div></div> </div> </div> <div class="flex ml-auto gap-3"> <div class="h-onsite-header self-center"><div class="hidden"><div class="block hidden absolute right-6 top-10"><span>Shoreline</span><svg width="16" height="9" viewBox="0 0 16 9" fill="none" xmlns="http://www.w3.org/2000/svg" style="top: 41px; position: absolute;" class="w-full block dark:hidden visible hover:visible"><path d="M7.99777 3L14.3495 9H1.68695L7.99777 3Z" fill="#ffffff"></path><path fill-rule="evenodd" clip-rule="evenodd" d="M0 7H1.0205L8.01822 0L15.0159 7H16V9H14.3495L7.99777 3L1.68695 9H0V7Z" fill="#202124"></path></svg><svg width="16" height="9" viewBox="0 0 16 9" fill="none" xmlns="http://www.w3.org/2000/svg" style="top: 41px; position: absolute;" class="w-full hidden dark:block visible hover:visible"><path d="M7.99777 3L14.3495 9H1.68695L7.99777 3Z" fill="#202124"></path><path fill-rule="evenodd" clip-rule="evenodd" d="M0 7H1.0205L8.01822 0L15.0159 7H16V9H14.3495L7.99777 3L1.68695 9H0V7Z" fill="#E8EAED"></path></svg></div><div><a href="/inpersonfaq/" aria-label="Shoreline event information" class="hidden md:block relative z-10"><div class="inline-block text-grey-900 bg-yellow dark:bg-yellow-dark nav-button rounded-xl"><span>Shoreline</span></div></a><div class="onsite-tooltip mt-6 hidden"><div class="bg-yellow rounded-xl text-left sm:text-center dark:bg-yellow-dark justify-between border-2 border-grey-900 dark:border-grey-200 text-grey-900 px-2 sm:py-4 text-sm font-medium flex sm:block"><span class="m-3 sm:m-0">Join I/O live from Shoreline and online May 11-12, 2022.</span><button type="button" class="block sm:absolute sm:right-4 onsite-modal-close" aria-label="Close"><svg class="fill-current text-grey-700 w-6 h-6" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18"><path d="m14.53 4.53-1.06-1.06L9 7.94 4.53 3.47 3.47 4.53 7.94 9l-4.47 4.47 1.06 1.06L9 10.06l4.47 4.47 1.06-1.06L10.06 9z"></path></svg></button></div></div><div class="gap-8 border-t-2 border-b-2 bg-yellow dark:bg-yellow-dark border-grey-900 dark:border-grey-200 absolute left-0 w-screen p-6 justify-center lg:justify-start lg:pl-60 hidden" style="top: 74px;"><a href="/inpersonfaq/" class="onsite-nav-links relative" data-category="main-nav" data-action="Shoreline" data-label="Frequently Asked Questions"><span>Shoreline FAQ</span><svg width="16" height="9" viewBox="0 0 16 9" fill="none" xmlns="http://www.w3.org/2000/svg" style="top: 41px; position: absolute;" class="w-full block dark:hidden invisible hover:visible"><path d="M7.99777 3L14.3495 9H1.68695L7.99777 3Z" fill="#ffffff"></path><path fill-rule="evenodd" clip-rule="evenodd" d="M0 7H1.0205L8.01822 0L15.0159 7H16V9H14.3495L7.99777 3L1.68695 9H0V7Z" fill="#202124"></path></svg><svg width="16" height="9" viewBox="0 0 16 9" fill="none" xmlns="http://www.w3.org/2000/svg" style="top: 41px; position: absolute;" class="w-full hidden dark:block invisible hover:visible"><path d="M7.99777 3L14.3495 9H1.68695L7.99777 3Z" fill="#202124"></path><path fill-rule="evenodd" clip-rule="evenodd" d="M0 7H1.0205L8.01822 0L15.0159 7H16V9H14.3495L7.99777 3L1.68695 9H0V7Z" fill="#E8EAED"></path></svg></a><a href="/health-safety/" class="onsite-nav-links relative" data-category="main-nav" data-action="Shoreline" data-label="Health and Safety"><span>Health and Safety</span><svg width="16" height="9" viewBox="0 0 16 9" fill="none" xmlns="http://www.w3.org/2000/svg" style="top: 41px; position: absolute;" class="w-full block dark:hidden invisible hover:visible"><path d="M7.99777 3L14.3495 9H1.68695L7.99777 3Z" fill="#ffffff"></path><path fill-rule="evenodd" clip-rule="evenodd" d="M0 7H1.0205L8.01822 0L15.0159 7H16V9H14.3495L7.99777 3L1.68695 9H0V7Z" fill="#202124"></path></svg><svg width="16" height="9" viewBox="0 0 16 9" fill="none" xmlns="http://www.w3.org/2000/svg" style="top: 41px; position: absolute;" class="w-full hidden dark:block invisible hover:visible"><path d="M7.99777 3L14.3495 9H1.68695L7.99777 3Z" fill="#202124"></path><path fill-rule="evenodd" clip-rule="evenodd" d="M0 7H1.0205L8.01822 0L15.0159 7H16V9H14.3495L7.99777 3L1.68695 9H0V7Z" fill="#E8EAED"></path></svg></a><a href="/travel/" class="onsite-nav-links relative" data-category="main-nav" data-action="Shoreline" data-label="Travel & Accommodations"><span>Transportation and Logistics</span><svg width="16" height="9" viewBox="0 0 16 9" fill="none" xmlns="http://www.w3.org/2000/svg" style="top: 41px; position: absolute;" class="w-full block dark:hidden invisible hover:visible"><path d="M7.99777 3L14.3495 9H1.68695L7.99777 3Z" fill="#ffffff"></path><path fill-rule="evenodd" clip-rule="evenodd" d="M0 7H1.0205L8.01822 0L15.0159 7H16V9H14.3495L7.99777 3L1.68695 9H0V7Z" fill="#202124"></path></svg><svg width="16" height="9" viewBox="0 0 16 9" fill="none" xmlns="http://www.w3.org/2000/svg" style="top: 41px; position: absolute;" class="w-full hidden dark:block invisible hover:visible"><path d="M7.99777 3L14.3495 9H1.68695L7.99777 3Z" fill="#202124"></path><path fill-rule="evenodd" clip-rule="evenodd" d="M0 7H1.0205L8.01822 0L15.0159 7H16V9H14.3495L7.99777 3L1.68695 9H0V7Z" fill="#E8EAED"></path></svg></a><a href="/schedule/" class="onsite-nav-links relative" data-category="main-nav" data-action="Shoreline" data-label="Schedule"><span class="hidden">Schedule and Map</span><span class class>Schedule</span><svg width="16" height="9" viewBox="0 0 16 9" fill="none" xmlns="http://www.w3.org/2000/svg" style="top: 41px; position: absolute;" class="w-full block dark:hidden invisible hover:visible"><path d="M7.99777 3L14.3495 9H1.68695L7.99777 3Z" fill="#ffffff"></path><path fill-rule="evenodd" clip-rule="evenodd" d="M0 7H1.0205L8.01822 0L15.0159 7H16V9H14.3495L7.99777 3L1.68695 9H0V7Z" fill="#202124"></path></svg><svg width="16" height="9" viewBox="0 0 16 9" fill="none" xmlns="http://www.w3.org/2000/svg" style="top: 41px; position: absolute;" class="w-full hidden dark:block invisible hover:visible"><path d="M7.99777 3L14.3495 9H1.68695L7.99777 3Z" fill="#202124"></path><path fill-rule="evenodd" clip-rule="evenodd" d="M0 7H1.0205L8.01822 0L15.0159 7H16V9H14.3495L7.99777 3L1.68695 9H0V7Z" fill="#E8EAED"></path></svg></a></div></div></div></div> <div class="hidden ml:block"> <div class="h-choose-language" data-in-footer=""> <select name="language-select" alt class="sm:l-cta2 ml:s-button-default font-medium language-select bg-white dark:bg-grey-900 text-grey-900 dark:text-white w-full border-none pl-0 ml:w-32 ml:ml-4 language-nav"> <option selected value="en"></option> <option value="es"></option> <option value="pt"></option> <option value="fr"></option> <option value="id"></option> <option value="ko"></option> <option value="zh"></option> <option value="ja"></option> </select> <div style="z-index: 10;" class="absolute invisible"> <div class="bg-white dark:bg-grey-900 dark:text-grey-200 border-2 border-grey-900 dark:border-grey-200 text-grey-900 sm:l-cta2 font-medium p-2 pr-6 w-full"> <span></span> <button type="button" class="absolute top-0 bottom-0" aria-label="Close"> <svg class="fill-current dark:fill-white text-grey-900 w-6 h-6 forced-white-color" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18"> <path d="m14.53 4.53-1.06-1.06L9 7.94 4.53 3.47 3.47 4.53 7.94 9l-4.47 4.47 1.06 1.06L9 10.06l4.47 4.47 1.06-1.06L10.06 9z"></path> </svg> </button> </div> <svg width="32" height="20" viewBox="-2 -2 37 28" fill="none" xmlns="http://www.w3.org/2000/svg" style="bottom: -18px; transform: scale(1, -1); right: 80px;" aria-hidden="true" class="absolute block dark:hidden hcm-hidden"> <g id="Polygon 1"> <path d="M0.138981 4.44226C0.0834319 1.0678 3.97439 -0.854559 6.62079 1.23988L35.9246 24.4317C37.4112 25.6083 36.5792 28 34.6834 28L2.49412 28C1.40238 28 0.512363 27.1245 0.494394 26.0329L0.138981 4.44226Z" fill="currentColor" stroke="#202124" stroke-width="2.5" mask="url(#path-1-inside-1_0_1)" class="arrow-white"></path> </g> </svg> <svg width="32" height="20" viewBox="-2 -2 37 28" fill="none" xmlns="http://www.w3.org/2000/svg" style="bottom: -18px; transform: scale(1, -1); right: 80px;" aria-hidden="true" class="absolute hidden dark:block hcm-block"> <g id="Polygon 1"> <path d="M0.138981 4.44226C0.0834319 1.0678 3.97439 -0.854559 6.62079 1.23988L35.9246 24.4317C37.4112 25.6083 36.5792 28 34.6834 28L2.49412 28C1.40238 28 0.512363 27.1245 0.494394 26.0329L0.138981 4.44226Z" fill="currentColor" stroke="#E8EAED" stroke-width="2.5" mask="url(#path-1-inside-1_0_1)" class="arrow-white"></path> </g> </svg> </div> </div> </div> </div> </nav> <script defer nonce="5fOvAG9g43A3fHVzxu1OUQ"> const activePage = window.location.pathname; if (!isHome()) { highlightActivePageLink(); } else { highlightClickableLinks(); } function highlightClickableLinks() { document.querySelectorAll("[data-active]").forEach((link) => { link.classList.add("active"); }); } function highlightActivePageLink() { //TO-DO: Need to work out a more modular implementation of this highlightClickableLinks(); document .querySelectorAll(".nav-links, .sub-nav-links, .active-helper") .forEach((link) => { //Adding underline to About nav item when a subnav item is active if ( typeof link.href !== "undefined" && link.href.includes(`${activePage}`) ) { if ( link.href.includes("/2022/about/") || link.href.includes("/faq/") || link.href.includes("/community/") ) { document.querySelectorAll("[data-active]").forEach((link) => { link.innerHTML.includes("About") ? link.classList.add("active-underline") : null; }); } link.classList.add("active-underline"); } }); } function isHome() { if (activePage === "//") { return true; } const es = new RegExp(/^\/intl\/es\/$/); const fr = new RegExp(/^\/intl\/fr\/$/); const pt = new RegExp(/^\/intl\/pt\/$/); const id = new RegExp(/^\/intl\/id\/$/); const ko = new RegExp(/^\/intl\/ko\/$/); const zh = new RegExp(/^\/intl\/zh\/$/); const ja = new RegExp(/^\/intl\/ja\/$/); switch (true) { case es.test(activePage): return true; case fr.test(activePage): return true; case pt.test(activePage): return true; case id.test(activePage): return true; case ko.test(activePage): return true; case zh.test(activePage): return true; case ja.test(activePage): return true; default: return false; } } </script> </header> <div class="dark:bg-grey-900 flex-1"> <link rel="stylesheet" href="https://www.gstatic.com/external_hosted/io2022/app/css/program-page.css" nonce="5fOvAG9g43A3fHVzxu1OUQ" /> <link rel="stylesheet" href="https://www.gstatic.com/external_hosted/io2022/app/css/sessionmacros.css" nonce="5fOvAG9g43A3fHVzxu1OUQ" /> <link rel="stylesheet" href="https://www.gstatic.com/external_hosted/io2022/app/css/filter-box.css" nonce="5fOvAG9g43A3fHVzxu1OUQ" /> <div> <div class="flex items-center justify-center"> <div class="header-wrapper flex flex-col"> <div id="callout-alert" class="bg-white dark:bg-grey-900 w-full mt-4 mx-auto"> <div aria-role="alert" class="relative border-2 border-solid border-grey-900 dark:border-grey-200 rounded-xl bg-yellow dark:bg-dark-yellow px-2 py-4 sm:py-4 text-center"> <p class="text-grey-900 text-sm font-medium">Tip: You can find bookmarked sessions in your <a href="https://developers.google.com/profile/u/me" target="_blank" class="underline">Developer Profile</a>.</p> <button type="button" id="callout-close" class="absolute right-4 top-0 bottom-0 flex items-center" aria-label="Close"><svg class="fill-current text-grey-700 w-6 h-6" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18"><path d="m14.53 4.53-1.06-1.06L9 7.94 4.53 3.47 3.47 4.53 7.94 9l-4.47 4.47 1.06 1.06L9 10.06l4.47 4.47 1.06-1.06L10.06 9z"></path></svg></button> </div> </div> <script nonce="5fOvAG9g43A3fHVzxu1OUQ"> (() => { const closeBtn = document.getElementById('callout-close'); const calloutAlert = document.getElementById('callout-alert'); closeBtn.addEventListener('click', () => { calloutAlert?.classList.add("hidden"); }); })(); </script> <div class="program-hero bg-red dark:bg-red-dark border-2 border-solid border-grey-900 rounded-2xl md:h-407px mt-4"> <div class="program-hero__content"> <h1 class="sm:s-h1 md:l-h1">Program</h1> <p class="sm:s-p1 md:l-p1 mt-4">Catch up on keynotes, product announcements, technical sessions, and more on-demand. If you bookmarked content during I/O, you can find it in your Developer profile.</p> </div> <div class="program-hero__image relative"> <div class="absolute right-4 top-4 hidden md:block"> <button class="global-lottie-pause focus-ring"> <svg id="global-lottie-pause__img" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <mask id="mask0_2820_92651" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="6" y="5" width="12" height="14"> <path fill-rule="evenodd" clip-rule="evenodd" d="M13.8923 18.6212H17.6758V5.37885H13.8923V18.6212ZM6.3252 18.6213H10.1087V5.37893H6.3252V18.6213Z" fill="white"/> </mask> <g mask="url(#mask0_2820_92651)"> <rect x="0.649414" y="0.649414" width="22.7012" height="22.7012" fill="#202124"/> </g> </svg> <svg id="global-lottie-play__img" class="lottie-play hidden" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" class="icon__AS2Le"> <path d="M0 0h24v24H0z" fill="none"></path> <path d="M8 5v14l11-7z"></path> </svg> </button> </div> <div class="program-header-lottie hidden md:block"></div> <img class="program-header__image block md:hidden" src="/2022/app/images/program-laptop.svg" aria-label="hidden"/> </div> </div> </div> </div> <main class="program-content page-wrapper"> <div class="program-content__left"> <div class="filter-box rounded-xl"> <div class="filter-box__header bg-yellow dark:bg-yellow-dark"> <h2 id="topic-filters" class="filter-box__title">Topic</h2> <button class="filter-box__chevron" aria-expanded="true" aria-label="Topic filter" > <img class="hcm-dark-hidden" src="/2022/app/images/chevron-up.svg" aria-hidden="true" /> <img class="hidden hcm-block" src="/2022/app/images/chevron-up-white.svg" aria-hidden="true" /> </button> </div> <div class="filter-box__items" role="list" aria-labelledby="topic-filters"> <div role="listitem"> <label class="filter-box__item" for="4f7a4e03-99c1-4f0d-9652-9dae6ab6c921"> <input type="checkbox" id="4f7a4e03-99c1-4f0d-9652-9dae6ab6c921" name="4f7a4e03-99c1-4f0d-9652-9dae6ab6c921" data-classification="topic" data-label="Accessibility"/> <span class="filter-box__option-text"> <div class="h-translated-category" data-name="Accessibility"> <span></span> </div> </span> </label> </div> <div role="listitem"> <label class="filter-box__item" for="a31f0e69-9707-41d4-9a1d-6bda74f7d9c9"> <input type="checkbox" id="a31f0e69-9707-41d4-9a1d-6bda74f7d9c9" name="a31f0e69-9707-41d4-9a1d-6bda74f7d9c9" data-classification="topic" data-label="Ads"/> <span class="filter-box__option-text"> <div class="h-translated-category" data-name="Ads"> <span></span> </div> </span> </label> </div> <div role="listitem"> <label class="filter-box__item" for="5afad11a-da0a-4106-8b43-64356b68fa47"> <input type="checkbox" id="5afad11a-da0a-4106-8b43-64356b68fa47" name="5afad11a-da0a-4106-8b43-64356b68fa47" data-classification="topic" data-label="AI / Machine Learning"/> <span class="filter-box__option-text"> <div class="h-translated-category" data-name="AI / Machine Learning"> <span></span> </div> </span> </label> </div> <div role="listitem"> <label class="filter-box__item" for="96a8382e-68d1-40b1-8fe8-c32eafe45327"> <input type="checkbox" id="96a8382e-68d1-40b1-8fe8-c32eafe45327" name="96a8382e-68d1-40b1-8fe8-c32eafe45327" data-classification="topic" data-label="Android"/> <span class="filter-box__option-text"> <div class="h-translated-category" data-name="Android"> <span></span> </div> </span> </label> </div> <div role="listitem"> <label class="filter-box__item" for="df1496a2-7f79-4179-a2ee-598511075c94"> <input type="checkbox" id="df1496a2-7f79-4179-a2ee-598511075c94" name="df1496a2-7f79-4179-a2ee-598511075c94" data-classification="topic" data-label="Augmented Reality"/> <span class="filter-box__option-text"> <div class="h-translated-category" data-name="Augmented Reality"> <span></span> </div> </span> </label> </div> <div role="listitem"> <label class="filter-box__item" for="5e8f505e-5ce1-428d-ac5f-f7deafd0dbae"> <input type="checkbox" id="5e8f505e-5ce1-428d-ac5f-f7deafd0dbae" name="5e8f505e-5ce1-428d-ac5f-f7deafd0dbae" data-classification="topic" data-label="Chrome OS"/> <span class="filter-box__option-text"> <div class="h-translated-category" data-name="Chrome OS"> <span></span> </div> </span> </label> </div> <div role="listitem"> <label class="filter-box__item" for="7e71258b-2ba6-4981-bcb9-6abfe678a99e"> <input type="checkbox" id="7e71258b-2ba6-4981-bcb9-6abfe678a99e" name="7e71258b-2ba6-4981-bcb9-6abfe678a99e" data-classification="topic" data-label="Cloud"/> <span class="filter-box__option-text"> <div class="h-translated-category" data-name="Cloud"> <span></span> </div> </span> </label> </div> <div role="listitem"> <label class="filter-box__item" for="60ed9001-f01b-45d0-8983-6fb865378f70"> <input type="checkbox" id="60ed9001-f01b-45d0-8983-6fb865378f70" name="60ed9001-f01b-45d0-8983-6fb865378f70" data-classification="topic" data-label="Design"/> <span class="filter-box__option-text"> <div class="h-translated-category" data-name="Design"> <span></span> </div> </span> </label> </div> <div role="listitem"> <label class="filter-box__item" for="e7c8b34e-7169-44c1-a43e-0cf66f9c4a14"> <input type="checkbox" id="e7c8b34e-7169-44c1-a43e-0cf66f9c4a14" name="e7c8b34e-7169-44c1-a43e-0cf66f9c4a14" data-classification="topic" data-label="Firebase"/> <span class="filter-box__option-text"> <div class="h-translated-category" data-name="Firebase"> <span></span> </div> </span> </label> </div> <div role="listitem"> <label class="filter-box__item" for="4a3ba017-12d3-4226-b363-6e1138e92a7d"> <input type="checkbox" id="4a3ba017-12d3-4226-b363-6e1138e92a7d" name="4a3ba017-12d3-4226-b363-6e1138e92a7d" data-classification="topic" data-label="Flutter"/> <span class="filter-box__option-text"> <div class="h-translated-category" data-name="Flutter"> <span></span> </div> </span> </label> </div> <div role="listitem"> <label class="filter-box__item" for="d140520d-5889-491b-bce7-32db0a33147e"> <input type="checkbox" id="d140520d-5889-491b-bce7-32db0a33147e" name="d140520d-5889-491b-bce7-32db0a33147e" data-classification="topic" data-label="Gaming"/> <span class="filter-box__option-text"> <div class="h-translated-category" data-name="Gaming"> <span></span> </div> </span> </label> </div> <div role="listitem"> <label class="filter-box__item" for="8f5bce97-22f3-4130-902f-ccdede6d2047"> <input type="checkbox" id="8f5bce97-22f3-4130-902f-ccdede6d2047" name="8f5bce97-22f3-4130-902f-ccdede6d2047" data-classification="topic" data-label="Google Assistant"/> <span class="filter-box__option-text"> <div class="h-translated-category" data-name="Google Assistant"> <span></span> </div> </span> </label> </div> <div role="listitem"> <label class="filter-box__item" for="aba087d1-36bd-432b-8151-1965e66f9adc"> <input type="checkbox" id="aba087d1-36bd-432b-8151-1965e66f9adc" name="aba087d1-36bd-432b-8151-1965e66f9adc" data-classification="topic" data-label="Google Play"/> <span class="filter-box__option-text"> <div class="h-translated-category" data-name="Google Play"> <span></span> </div> </span> </label> </div> <div role="listitem"> <label class="filter-box__item" for="539010b0-4b1b-475b-a752-48a5ffc49458"> <input type="checkbox" id="539010b0-4b1b-475b-a752-48a5ffc49458" name="539010b0-4b1b-475b-a752-48a5ffc49458" data-classification="topic" data-label="Growth"/> <span class="filter-box__option-text"> <div class="h-translated-category" data-name="Growth"> <span></span> </div> </span> </label> </div> <div role="listitem"> <label class="filter-box__item" for="3519e67b-2c34-48e6-95e5-1b526005a314"> <input type="checkbox" id="3519e67b-2c34-48e6-95e5-1b526005a314" name="3519e67b-2c34-48e6-95e5-1b526005a314" data-classification="topic" data-label="Internet of Things (IoT)"/> <span class="filter-box__option-text"> <div class="h-translated-category" data-name="Internet of Things (IoT)"> <span></span> </div> </span> </label> </div> <div role="listitem"> <label class="filter-box__item" for="8674160c-cb44-46f7-be94-b5a7360e3079"> <input type="checkbox" id="8674160c-cb44-46f7-be94-b5a7360e3079" name="8674160c-cb44-46f7-be94-b5a7360e3079" data-classification="topic" data-label="iOS"/> <span class="filter-box__option-text"> <div class="h-translated-category" data-name="iOS"> <span></span> </div> </span> </label> </div> <div role="listitem"> <label class="filter-box__item" for="3f8f07f0-158d-423a-82cf-4a3d6f5ef970"> <input type="checkbox" id="3f8f07f0-158d-423a-82cf-4a3d6f5ef970" name="3f8f07f0-158d-423a-82cf-4a3d6f5ef970" data-classification="topic" data-label="Location/Maps"/> <span class="filter-box__option-text"> <div class="h-translated-category" data-name="Location/Maps"> <span></span> </div> </span> </label> </div> <div role="listitem"> <label class="filter-box__item" for="340083e1-e7e2-4ffb-80a8-c4550775a884"> <input type="checkbox" id="340083e1-e7e2-4ffb-80a8-c4550775a884" name="340083e1-e7e2-4ffb-80a8-c4550775a884" data-classification="topic" data-label="Mobile"/> <span class="filter-box__option-text"> <div class="h-translated-category" data-name="Mobile"> <span></span> </div> </span> </label> </div> <div role="listitem"> <label class="filter-box__item" for="363d2624-03ed-4f53-b26f-a0954a422164"> <input type="checkbox" id="363d2624-03ed-4f53-b26f-a0954a422164" name="363d2624-03ed-4f53-b26f-a0954a422164" data-classification="topic" data-label="Open Source"/> <span class="filter-box__option-text"> <div class="h-translated-category" data-name="Open Source"> <span></span> </div> </span> </label> </div> <div role="listitem"> <label class="filter-box__item" for="12181a93-dba8-42f6-a357-072f4e2da10d"> <input type="checkbox" id="12181a93-dba8-42f6-a357-072f4e2da10d" name="12181a93-dba8-42f6-a357-072f4e2da10d" data-classification="topic" data-label="Payments"/> <span class="filter-box__option-text"> <div class="h-translated-category" data-name="Payments"> <span></span> </div> </span> </label> </div> <div role="listitem"> <label class="filter-box__item" for="7fe5dbfe-13d5-4386-9af7-3fd87beb7219"> <input type="checkbox" id="7fe5dbfe-13d5-4386-9af7-3fd87beb7219" name="7fe5dbfe-13d5-4386-9af7-3fd87beb7219" data-classification="topic" data-label="Search"/> <span class="filter-box__option-text"> <div class="h-translated-category" data-name="Search"> <span></span> </div> </span> </label> </div> <div role="listitem"> <label class="filter-box__item" for="ad07cc5e-42b4-4636-9118-80fa9f797093"> <input type="checkbox" id="ad07cc5e-42b4-4636-9118-80fa9f797093" name="ad07cc5e-42b4-4636-9118-80fa9f797093" data-classification="topic" data-label="Smart Home"/> <span class="filter-box__option-text"> <div class="h-translated-category" data-name="Smart Home"> <span></span> </div> </span> </label> </div> <div role="listitem"> <label class="filter-box__item" for="9d3b7d5c-d26e-4016-b863-ead7dabfcae4"> <input type="checkbox" id="9d3b7d5c-d26e-4016-b863-ead7dabfcae4" name="9d3b7d5c-d26e-4016-b863-ead7dabfcae4" data-classification="topic" data-label="Wear OS"/> <span class="filter-box__option-text"> <div class="h-translated-category" data-name="Wear OS"> <span></span> </div> </span> </label> </div> <div role="listitem"> <label class="filter-box__item" for="1cf58852-f96e-4549-92c4-f02f47b941d7"> <input type="checkbox" id="1cf58852-f96e-4549-92c4-f02f47b941d7" name="1cf58852-f96e-4549-92c4-f02f47b941d7" data-classification="topic" data-label="Web"/> <span class="filter-box__option-text"> <div class="h-translated-category" data-name="Web"> <span></span> </div> </span> </label> </div> </div> </div> <div class="filter-box rounded-xl"> <div class="filter-box__header bg-yellow dark:bg-yellow-dark"> <h2 id="level-filters" class="filter-box__title">Level</h2> <button class="filter-box__chevron" aria-expanded="true" aria-label="Level filter" > <img class="hcm-dark-hidden" src="/2022/app/images/chevron-up.svg" aria-hidden="true" /> <img class="hidden hcm-block" src="/2022/app/images/chevron-up-white.svg" aria-hidden="true" /> </button> </div> <div class="filter-box__items" role="list" aria-labelledby="level-filters"> <div role="listitem"> <label class="filter-box__item" for="cf5c58e2-e753-4154-a232-1070156d40ef"> <input type="checkbox" id="cf5c58e2-e753-4154-a232-1070156d40ef" name="cf5c58e2-e753-4154-a232-1070156d40ef" data-classification="level" data-label="Beginner"/> <span class="filter-box__option-text"> <span>Beginner</span> </span> </label> </div> <div role="listitem"> <label class="filter-box__item" for="adf1de38-22c0-468c-b9d6-13f77b33ea94"> <input type="checkbox" id="adf1de38-22c0-468c-b9d6-13f77b33ea94" name="adf1de38-22c0-468c-b9d6-13f77b33ea94" data-classification="level" data-label="Intermediate"/> <span class="filter-box__option-text"> <span>Intermediate</span> </span> </label> </div> <div role="listitem"> <label class="filter-box__item" for="b4014b37-565f-475e-b5f4-8cfeee4f3586"> <input type="checkbox" id="b4014b37-565f-475e-b5f4-8cfeee4f3586" name="b4014b37-565f-475e-b5f4-8cfeee4f3586" data-classification="level" data-label="Advanced"/> <span class="filter-box__option-text"> <span>Advanced</span> </span> </label> </div> </div> </div> <div class="filter-box rounded-xl"> <div class="filter-box__header bg-yellow dark:bg-yellow-dark"> <h2 id="type-filters" class="filter-box__title">Type</h2> <button class="filter-box__chevron" aria-expanded="true" aria-label="Type filter" > <img class="hcm-dark-hidden" src="/2022/app/images/chevron-up.svg" aria-hidden="true" /> <img class="hidden hcm-block" src="/2022/app/images/chevron-up-white.svg" aria-hidden="true" /> </button> </div> <div class="filter-box__items" role="list" aria-labelledby="type-filters"> <div role="listitem"><label class="filter-box__item" for="keynote-filter"> <input type="checkbox" id="keynote-filter" name="keynote-filter" data-classification="type" data-label="Keynote"/> <span class="filter-box__option-text"> <span>Keynote</span> </span> </label></div> <div role="listitem"><label class="filter-box__item" for="b3e6963b-c3de-4283-beb1-eadbf0542db0"> <input type="checkbox" id="b3e6963b-c3de-4283-beb1-eadbf0542db0" name="b3e6963b-c3de-4283-beb1-eadbf0542db0" data-classification="type" data-label="Workshop"/> <span class="filter-box__option-text"> <span>Workshop</span> </span> </label></div> <div role="listitem"><label class="filter-box__item" for="590ed748-cc8b-4b16-b872-2b632222a575"> <input type="checkbox" id="590ed748-cc8b-4b16-b872-2b632222a575" name="590ed748-cc8b-4b16-b872-2b632222a575" data-classification="type" data-label="Technical Session"/> <span class="filter-box__option-text"> <span>Technical session</span> </span> </label></div> </div> </div> </div> <div class="program-content__right px-2 md:px-2"> <div class="h-pill-board"> <div class="pb-8 flex w-full h-auto md:hidden"> <div class="block md:hidden"> <button id="filter-burger" class="flex h-full items-center mr-4" aria-expanded="false" aria-label> <img aria-label class="dark:hidden" src="/2022/app/images/filter-icon.svg" /> <img aria-label class="hidden dark:block" src="/2022/app/images/filter-icon-white.svg" /> </button> </div> <div class="w-full overflow-x-auto flex gap-1 p-2 md:flex-wrap items-center"> <button class="hidden" data-clear-all="data-clear-all" aria-label></button> </div> </div> </div> <div role="list" class="w-full grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-2"> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="8e80903f-955f-4a5b-9118-b0ce4acdb0e6" data-topic="[]" data-level="[]" data-type="["keynote-filter"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/8e80903f-955f-4a5b-9118-b0ce4acdb0e6/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/8e80903f-955f-4a5b-9118-b0ce4acdb0e6.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> Google I/O keynote </h3> <p class="my-2 sm:s-p1 md:l-p2">Tune in to find out how we're furthering our mission to organize the world's information and make it universally acce...</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Keynote</span> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="0209f281-0b0e-4339-9e7a-a501e36f03c7" data-topic="[]" data-level="[]" data-type="["keynote-filter"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/0209f281-0b0e-4339-9e7a-a501e36f03c7/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/0209f281-0b0e-4339-9e7a-a501e36f03c7.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> Developer keynote </h3> <p class="my-2 sm:s-p1 md:l-p2">Learn about the latest updates to our developer products and platforms from Google Developers.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Keynote</span> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="4e81975b-46a2-4966-98d8-19fb4fb66f78" data-topic="["96a8382e-68d1-40b1-8fe8-c32eafe45327"]" data-level="["cf5c58e2-e753-4154-a232-1070156d40ef"]" data-type="["keynote-filter"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/4e81975b-46a2-4966-98d8-19fb4fb66f78/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/4e81975b-46a2-4966-98d8-19fb4fb66f78.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> What's new in Android </h3> <p class="my-2 sm:s-p1 md:l-p2">Hear the latest news on everything happening in the world of Android development: Android 13, Jetpack, tooling, perfo...</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Beginner</span> <div class="h-translated-category" data-name="Android"> <span></span> </div> <span>Keynote</span> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="3af70a34-1be2-4040-b873-7549ba4e7b48" data-topic="["7e71258b-2ba6-4981-bcb9-6abfe678a99e"]" data-level="["adf1de38-22c0-468c-b9d6-13f77b33ea94"]" data-type="["keynote-filter"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/3af70a34-1be2-4040-b873-7549ba4e7b48/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/3af70a34-1be2-4040-b873-7549ba4e7b48.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> The cloud built for developers </h3> <p class="my-2 sm:s-p1 md:l-p2">Learn how Google Cloud and Workspace teams are building cloud services to help developers and technologists create tr...</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Intermediate</span> <div class="h-translated-category" data-name="Cloud"> <span></span> </div> <span>Keynote</span> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="4b4d658d-9682-4573-9ebe-0a48e7ff75df" data-topic="["e7c8b34e-7169-44c1-a43e-0cf66f9c4a14"]" data-level="["cf5c58e2-e753-4154-a232-1070156d40ef"]" data-type="["keynote-filter"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/4b4d658d-9682-4573-9ebe-0a48e7ff75df/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/4b4d658d-9682-4573-9ebe-0a48e7ff75df.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> What's new in Firebase </h3> <p class="my-2 sm:s-p1 md:l-p2">Learn how to build and run apps users love with Firebase, a platform designed to help throughout your business’ journey.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Beginner</span> <div class="h-translated-category" data-name="Firebase"> <span></span> </div> <span>Keynote</span> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="a2114fc4-10f7-4071-a065-69dc727aeaa5" data-topic="["4a3ba017-12d3-4226-b363-6e1138e92a7d"]" data-level="["cf5c58e2-e753-4154-a232-1070156d40ef"]" data-type="["keynote-filter"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/a2114fc4-10f7-4071-a065-69dc727aeaa5/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/a2114fc4-10f7-4071-a065-69dc727aeaa5.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> What's new in Flutter </h3> <p class="my-2 sm:s-p1 md:l-p2">Learn the latest from Flutter including how to build beautiful native apps for six platforms from a single codebase.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Beginner</span> <div class="h-translated-category" data-name="Flutter"> <span></span> </div> <span>Keynote</span> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="a38c0018-9259-4444-b0bb-b77e1f7672c2" data-topic="["5afad11a-da0a-4106-8b43-64356b68fa47"]" data-level="["cf5c58e2-e753-4154-a232-1070156d40ef"]" data-type="["keynote-filter"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/a38c0018-9259-4444-b0bb-b77e1f7672c2/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/a38c0018-9259-4444-b0bb-b77e1f7672c2.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> AI and machine learning for developers </h3> <p class="my-2 sm:s-p1 md:l-p2">Learn what Google is doing in the AI and machine learning space, from developer APIs to state of the art research.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Beginner</span> <span>Keynote</span> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="3c60e411-5340-4c54-a037-3aceb2825b16" data-topic="["1cf58852-f96e-4549-92c4-f02f47b941d7"]" data-level="["cf5c58e2-e753-4154-a232-1070156d40ef"]" data-type="["keynote-filter"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/3c60e411-5340-4c54-a037-3aceb2825b16/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/3c60e411-5340-4c54-a037-3aceb2825b16.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> What's new for the web platform </h3> <p class="my-2 sm:s-p1 md:l-p2">Learn how Google is investing in the web platform.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Beginner</span> <div class="h-translated-category" data-name="Web"> <span></span> </div> <span>Keynote</span> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="aee2922d-26df-4f58-8759-8ed41c375506" data-topic="["3f8f07f0-158d-423a-82cf-4a3d6f5ef970", "df1496a2-7f79-4179-a2ee-598511075c94", "5afad11a-da0a-4106-8b43-64356b68fa47"]" data-level="["cf5c58e2-e753-4154-a232-1070156d40ef"]" data-type="["keynote-filter"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/aee2922d-26df-4f58-8759-8ed41c375506/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/aee2922d-26df-4f58-8759-8ed41c375506.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> What's new in AR </h3> <p class="my-2 sm:s-p1 md:l-p2">Get the latest on our AR developer tools, including the new ARCore Geospatial API.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Beginner</span> <div class="h-translated-category" data-name="Location/Maps"> <span></span> </div> <span>Keynote</span> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="b3818558-6f41-4ee9-b586-c8f1111a10ec" data-topic="["4f7a4e03-99c1-4f0d-9652-9dae6ab6c921"]" data-level="["cf5c58e2-e753-4154-a232-1070156d40ef"]" data-type="["keynote-filter"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/b3818558-6f41-4ee9-b586-c8f1111a10ec/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/b3818558-6f41-4ee9-b586-c8f1111a10ec.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> What's new in Accessibility for developers </h3> <p class="my-2 sm:s-p1 md:l-p2">Learn how to develop more accessible apps with new Accessibility APIs and improvements in Compose and Android Studio.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Beginner</span> <div class="h-translated-category" data-name="Accessibility"> <span></span> </div> <span>Keynote</span> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="e1fe8007-7338-4e33-814b-ecbfcb706c5e" data-topic="["aba087d1-36bd-432b-8151-1965e66f9adc", "96a8382e-68d1-40b1-8fe8-c32eafe45327"]" data-level="["cf5c58e2-e753-4154-a232-1070156d40ef"]" data-type="["keynote-filter"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/e1fe8007-7338-4e33-814b-ecbfcb706c5e/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/e1fe8007-7338-4e33-814b-ecbfcb706c5e.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> What's new in Google Play </h3> <p class="my-2 sm:s-p1 md:l-p2">Discover new features designed to help you optimize acquisition, engagement, and monetization, and build safer apps.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Beginner</span> <div class="h-translated-category" data-name="Google Play"> <span></span> </div> <span> + 2 more </span> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="1238357f-b165-465d-a265-a0fccc5c1e84" data-topic="["5e8f505e-5ce1-428d-ac5f-f7deafd0dbae"]" data-level="["cf5c58e2-e753-4154-a232-1070156d40ef"]" data-type="["keynote-filter"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/1238357f-b165-465d-a265-a0fccc5c1e84/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/1238357f-b165-465d-a265-a0fccc5c1e84.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> What’s new in Chrome OS </h3> <p class="my-2 sm:s-p1 md:l-p2">Learn how Google is supporting innovation with Chrome OS and enabling developer success with tools and guidance. </p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Beginner</span> <div class="h-translated-category" data-name="Chrome OS"> <span></span> </div> <span>Keynote</span> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="4720435a-34d2-4b1b-9bb3-085485140405" data-topic="["3519e67b-2c34-48e6-95e5-1b526005a314", "ad07cc5e-42b4-4636-9118-80fa9f797093"]" data-level="["cf5c58e2-e753-4154-a232-1070156d40ef"]" data-type="["keynote-filter"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/4720435a-34d2-4b1b-9bb3-085485140405/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/4720435a-34d2-4b1b-9bb3-085485140405.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> What’s new in Google Home </h3> <p class="my-2 sm:s-p1 md:l-p2">Discover a new era for Google Home — the best platform for smart home developers to build and innovate.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Beginner</span> <div class="h-translated-category" data-name="Smart Home"> <span></span> </div> <span>Keynote</span> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="3edf4369-6257-4c17-a42d-6ff2be7b8826" data-topic="["12181a93-dba8-42f6-a357-072f4e2da10d", "96a8382e-68d1-40b1-8fe8-c32eafe45327", "1cf58852-f96e-4549-92c4-f02f47b941d7"]" data-level="["cf5c58e2-e753-4154-a232-1070156d40ef"]" data-type="["keynote-filter"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/3edf4369-6257-4c17-a42d-6ff2be7b8826/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/3edf4369-6257-4c17-a42d-6ff2be7b8826.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> What’s new in Google Pay </h3> <p class="my-2 sm:s-p1 md:l-p2">Payments are constantly evolving and so is Google Pay. Join this session to learn more about what's new in Google Pay.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Beginner</span> <div class="h-translated-category" data-name="Payments"> <span></span> </div> <span> + 3 more </span> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="c7710536-a86d-42a6-b43e-e69ae76dbb34" data-topic="["96a8382e-68d1-40b1-8fe8-c32eafe45327"]" data-level="["adf1de38-22c0-468c-b9d6-13f77b33ea94"]" data-type="["keynote-filter"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/c7710536-a86d-42a6-b43e-e69ae76dbb34/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/c7710536-a86d-42a6-b43e-e69ae76dbb34.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> What's new in Jetpack </h3> <p class="my-2 sm:s-p1 md:l-p2">Learn about the latest Android Jetpack news, including recent changes to popular libraries and best practices.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Intermediate</span> <div class="h-translated-category" data-name="Android"> <span></span> </div> <span>Keynote</span> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="02e77298-9eb9-4ee8-b82d-f3f02e19ac09" data-topic="["12181a93-dba8-42f6-a357-072f4e2da10d", "96a8382e-68d1-40b1-8fe8-c32eafe45327"]" data-level="["cf5c58e2-e753-4154-a232-1070156d40ef"]" data-type="["keynote-filter"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/02e77298-9eb9-4ee8-b82d-f3f02e19ac09/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/02e77298-9eb9-4ee8-b82d-f3f02e19ac09.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> Introducing Google Wallet and developer API features </h3> <p class="my-2 sm:s-p1 md:l-p2">Google is investing in building a premier, secure digital wallet for Android and Chrome users. Join to learn more.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Beginner</span> <div class="h-translated-category" data-name="Payments"> <span></span> </div> <span> + 2 more </span> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="923f7015-03ea-48b0-a57f-4ef533ee0fe2" data-topic="["e7c8b34e-7169-44c1-a43e-0cf66f9c4a14"]" data-level="["cf5c58e2-e753-4154-a232-1070156d40ef"]" data-type="["keynote-filter"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/923f7015-03ea-48b0-a57f-4ef533ee0fe2/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/923f7015-03ea-48b0-a57f-4ef533ee0fe2.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> Secure your Firebase app from the start </h3> <p class="my-2 sm:s-p1 md:l-p2">Create secure Firebase applications from day one with Authentication, App Check, and Security Rules.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Beginner</span> <div class="h-translated-category" data-name="Firebase"> <span></span> </div> <span>Keynote</span> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="4c5e04a5-d63d-445e-aabe-2b5242851038" data-topic="["12181a93-dba8-42f6-a357-072f4e2da10d", "96a8382e-68d1-40b1-8fe8-c32eafe45327"]" data-level="["adf1de38-22c0-468c-b9d6-13f77b33ea94"]" data-type="["b3e6963b-c3de-4283-beb1-eadbf0542db0"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/4c5e04a5-d63d-445e-aabe-2b5242851038/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/4c5e04a5-d63d-445e-aabe-2b5242851038.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> Digitize any wallet object with the Google Wallet API </h3> <p class="my-2 sm:s-p1 md:l-p2">Join this workshop to follow step-by-step instructions to digitize any wallet object using the Google Wallet API.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Intermediate</span> <div class="h-translated-category" data-name="Payments"> <span></span> </div> <span> + 2 more </span> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="3d49f700-4e86-4a50-9f8a-1a2742bc4c22" data-topic="["1cf58852-f96e-4549-92c4-f02f47b941d7"]" data-level="["b4014b37-565f-475e-b5f4-8cfeee4f3586"]" data-type="["590ed748-cc8b-4b16-b872-2b632222a575"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/3d49f700-4e86-4a50-9f8a-1a2742bc4c22/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/3d49f700-4e86-4a50-9f8a-1a2742bc4c22.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> A deep dive into optimizing LCP </h3> <p class="my-2 sm:s-p1 md:l-p2">LCP is a complex metric, but if you break down into smaller parts, it becomes much easier to understand and optimize.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Advanced</span> <div class="h-translated-category" data-name="Web"> <span></span> </div> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="e3bb37a4-2723-4d72-a5b3-1a23abb94ac0" data-topic="["1cf58852-f96e-4549-92c4-f02f47b941d7"]" data-level="["b4014b37-565f-475e-b5f4-8cfeee4f3586"]" data-type="["590ed748-cc8b-4b16-b872-2b632222a575"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/e3bb37a4-2723-4d72-a5b3-1a23abb94ac0/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/e3bb37a4-2723-4d72-a5b3-1a23abb94ac0.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> A path to a world without passwords </h3> <p class="my-2 sm:s-p1 md:l-p2">Learn your options towards a world without passwords.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Advanced</span> <div class="h-translated-category" data-name="Web"> <span></span> </div> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="b96f4352-63ae-4a12-b7fc-03d31ed68e10" data-topic="["5afad11a-da0a-4106-8b43-64356b68fa47", "7e71258b-2ba6-4981-bcb9-6abfe678a99e", "96a8382e-68d1-40b1-8fe8-c32eafe45327", "340083e1-e7e2-4ffb-80a8-c4550775a884", "1cf58852-f96e-4549-92c4-f02f47b941d7"]" data-level="["cf5c58e2-e753-4154-a232-1070156d40ef"]" data-type="["590ed748-cc8b-4b16-b872-2b632222a575"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/b96f4352-63ae-4a12-b7fc-03d31ed68e10/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/b96f4352-63ae-4a12-b7fc-03d31ed68e10.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> Adding machine learning to your developer toolbox </h3> <p class="my-2 sm:s-p1 md:l-p2">Mobile, web, and backend developers: Adding machine learning to your app is easier then you'd expect!</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Beginner</span> <div class="h-translated-category" data-name="Cloud"> <span></span> </div> <span> + 4 more </span> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="95ba2f94-1814-4a94-a4bb-90334beeb282" data-topic="["539010b0-4b1b-475b-a752-48a5ffc49458", "4f7a4e03-99c1-4f0d-9652-9dae6ab6c921", "1cf58852-f96e-4549-92c4-f02f47b941d7"]" data-level="["cf5c58e2-e753-4154-a232-1070156d40ef"]" data-type="["590ed748-cc8b-4b16-b872-2b632222a575"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/95ba2f94-1814-4a94-a4bb-90334beeb282/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/95ba2f94-1814-4a94-a4bb-90334beeb282.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> Africa’s booming developer ecosystem </h3> <p class="my-2 sm:s-p1 md:l-p2">Learn how developers in Africa have grown locally and globally, with new data, growth trends, case studies, and more.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Beginner</span> <div class="h-translated-category" data-name="Growth"> <span></span> </div> <span> + 2 more </span> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="8f7765f2-2357-4829-8c87-e54d81e999a0" data-topic="["5afad11a-da0a-4106-8b43-64356b68fa47", "7e71258b-2ba6-4981-bcb9-6abfe678a99e", "1cf58852-f96e-4549-92c4-f02f47b941d7"]" data-level="["adf1de38-22c0-468c-b9d6-13f77b33ea94"]" data-type="["590ed748-cc8b-4b16-b872-2b632222a575"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/8f7765f2-2357-4829-8c87-e54d81e999a0/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/8f7765f2-2357-4829-8c87-e54d81e999a0.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> An introduction to MLOps with TFX </h3> <p class="my-2 sm:s-p1 md:l-p2">Learn why MLOps is important for any product, and how TFX helps make it real</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Intermediate</span> <div class="h-translated-category" data-name="Cloud"> <span></span> </div> <div class="h-translated-category" data-name="Web"> <span></span> </div> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="f3f034f8-38c7-4758-8626-f995addeeb3c" data-topic="["3519e67b-2c34-48e6-95e5-1b526005a314", "ad07cc5e-42b4-4636-9118-80fa9f797093"]" data-level="["adf1de38-22c0-468c-b9d6-13f77b33ea94"]" data-type="["590ed748-cc8b-4b16-b872-2b632222a575"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/f3f034f8-38c7-4758-8626-f995addeeb3c/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/f3f034f8-38c7-4758-8626-f995addeeb3c.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> Analytics and tools for Google Home projects </h3> <p class="my-2 sm:s-p1 md:l-p2">Set of tools and best practices to step up your Smart Home integration quality</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Intermediate</span> <div class="h-translated-category" data-name="Smart Home"> <span></span> </div> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="c4be021c-53ec-493e-a3c1-7db7a168317e" data-topic="["96a8382e-68d1-40b1-8fe8-c32eafe45327"]" data-level="["adf1de38-22c0-468c-b9d6-13f77b33ea94"]" data-type="["590ed748-cc8b-4b16-b872-2b632222a575"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/c4be021c-53ec-493e-a3c1-7db7a168317e/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/c4be021c-53ec-493e-a3c1-7db7a168317e.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> Android solutions for seamless sign-in across devices </h3> <p class="my-2 sm:s-p1 md:l-p2">Learn about Android solutions that enable seamless, secure login experiences so users can enjoy your app across devices.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Intermediate</span> <div class="h-translated-category" data-name="Android"> <span></span> </div> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="4d2987b9-4a84-4e4f-8203-93867d925737" data-topic="["aba087d1-36bd-432b-8151-1965e66f9adc", "96a8382e-68d1-40b1-8fe8-c32eafe45327"]" data-level="["adf1de38-22c0-468c-b9d6-13f77b33ea94"]" data-type="["590ed748-cc8b-4b16-b872-2b632222a575"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/4d2987b9-4a84-4e4f-8203-93867d925737/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/4d2987b9-4a84-4e4f-8203-93867d925737.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> App quality on Google Play: New features and developer success stories </h3> <p class="my-2 sm:s-p1 md:l-p2">Learn about new tools in Play Console that help increase technical quality, developer productivity, and ROI.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Intermediate</span> <div class="h-translated-category" data-name="Google Play"> <span></span> </div> <div class="h-translated-category" data-name="Android"> <span></span> </div> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="3ba97157-38c3-4ad3-88bb-5236eb655727" data-topic="["7e71258b-2ba6-4981-bcb9-6abfe678a99e"]" data-level="["adf1de38-22c0-468c-b9d6-13f77b33ea94"]" data-type="["590ed748-cc8b-4b16-b872-2b632222a575"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/3ba97157-38c3-4ad3-88bb-5236eb655727/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/3ba97157-38c3-4ad3-88bb-5236eb655727.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> Asynchronous operations in your UI using Workflows and Firestore </h3> <p class="my-2 sm:s-p1 md:l-p2">Combine Workflows and Firestore for reliably running and tracking your asynchronous and long-running operations.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Intermediate</span> <div class="h-translated-category" data-name="Cloud"> <span></span> </div> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="7c1b4d23-3a1c-4c8c-8e5e-4386598bb874" data-topic="["e7c8b34e-7169-44c1-a43e-0cf66f9c4a14", "7e71258b-2ba6-4981-bcb9-6abfe678a99e"]" data-level="["adf1de38-22c0-468c-b9d6-13f77b33ea94"]" data-type="["590ed748-cc8b-4b16-b872-2b632222a575"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/7c1b4d23-3a1c-4c8c-8e5e-4386598bb874/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/7c1b4d23-3a1c-4c8c-8e5e-4386598bb874.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> Auto alerts for Firebase users with Functions, Logging, and BigQuery </h3> <p class="my-2 sm:s-p1 md:l-p2">Firebase users can leverage Cloud Logging, Cloud Functions, and BigQuery to create automated alerts for elevated erro...</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Intermediate</span> <div class="h-translated-category" data-name="Firebase"> <span></span> </div> <div class="h-translated-category" data-name="Cloud"> <span></span> </div> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="5c6a8dbb-7ac2-4c31-a707-0a16e8424970" data-topic="["96a8382e-68d1-40b1-8fe8-c32eafe45327"]" data-level="["adf1de38-22c0-468c-b9d6-13f77b33ea94"]" data-type="["590ed748-cc8b-4b16-b872-2b632222a575"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/5c6a8dbb-7ac2-4c31-a707-0a16e8424970/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/5c6a8dbb-7ac2-4c31-a707-0a16e8424970.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> Back to the basics of System Back </h3> <p class="my-2 sm:s-p1 md:l-p2">Discover how the future of Android will help you create predictive back navigation along with satisfying animations.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Intermediate</span> <div class="h-translated-category" data-name="Android"> <span></span> </div> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="6c749c36-e85f-470f-a981-49b1ddbe9d20" data-topic="["1cf58852-f96e-4549-92c4-f02f47b941d7"]" data-level="["adf1de38-22c0-468c-b9d6-13f77b33ea94"]" data-type="["590ed748-cc8b-4b16-b872-2b632222a575"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/6c749c36-e85f-470f-a981-49b1ddbe9d20/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/6c749c36-e85f-470f-a981-49b1ddbe9d20.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> Bridging the gap: Making it easier to build for the web </h3> <p class="my-2 sm:s-p1 md:l-p2">Learn about how browsers are working together to make it easier to develop for the web.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Intermediate</span> <div class="h-translated-category" data-name="Web"> <span></span> </div> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="b235121c-8e48-4cfb-89a6-1481c220fce1" data-topic="["1cf58852-f96e-4549-92c4-f02f47b941d7", "5e8f505e-5ce1-428d-ac5f-f7deafd0dbae"]" data-level="["b4014b37-565f-475e-b5f4-8cfeee4f3586"]" data-type="["590ed748-cc8b-4b16-b872-2b632222a575"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/b235121c-8e48-4cfb-89a6-1481c220fce1/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/b235121c-8e48-4cfb-89a6-1481c220fce1.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> Bringing Adobe's Creative Cloud to the web: Starting with Photoshop </h3> <p class="my-2 sm:s-p1 md:l-p2">Steps the Adobe and the Chrome teams took to bring Creative Cloud to the Web, starting with Photoshop and Illustrator.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Advanced</span> <div class="h-translated-category" data-name="Web"> <span></span> </div> <div class="h-translated-category" data-name="Chrome OS"> <span></span> </div> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="81ed353d-20e4-4e9a-9b4d-d65b103cfc71" data-topic="["1cf58852-f96e-4549-92c4-f02f47b941d7"]" data-level="["b4014b37-565f-475e-b5f4-8cfeee4f3586"]" data-type="["590ed748-cc8b-4b16-b872-2b632222a575"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/81ed353d-20e4-4e9a-9b4d-d65b103cfc71/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/81ed353d-20e4-4e9a-9b4d-d65b103cfc71.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> Bringing page transitions to the web </h3> <p class="my-2 sm:s-p1 md:l-p2">Introducing a new API to create transitions between page states, building on CSS and web animations</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Advanced</span> <div class="h-translated-category" data-name="Web"> <span></span> </div> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="0975b483-80b4-48b6-8154-d9e0400fdac3" data-topic="["e7c8b34e-7169-44c1-a43e-0cf66f9c4a14"]" data-level="["adf1de38-22c0-468c-b9d6-13f77b33ea94"]" data-type="["590ed748-cc8b-4b16-b872-2b632222a575"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/0975b483-80b4-48b6-8154-d9e0400fdac3/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/0975b483-80b4-48b6-8154-d9e0400fdac3.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> Build production-ready apps with Extensions, Functions, and GCP </h3> <p class="my-2 sm:s-p1 md:l-p2">Combine Extensions, Cloud Functions for Firebase, and Google Cloud Platform to create sophisticated production-ready apps.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Intermediate</span> <div class="h-translated-category" data-name="Firebase"> <span></span> </div> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="4cfc0eea-84e4-4005-aaa8-7951f46ab09e" data-topic="["539010b0-4b1b-475b-a752-48a5ffc49458", "3f8f07f0-158d-423a-82cf-4a3d6f5ef970", "5afad11a-da0a-4106-8b43-64356b68fa47", "4f7a4e03-99c1-4f0d-9652-9dae6ab6c921", "1cf58852-f96e-4549-92c4-f02f47b941d7"]" data-level="["cf5c58e2-e753-4154-a232-1070156d40ef"]" data-type="["590ed748-cc8b-4b16-b872-2b632222a575"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/4cfc0eea-84e4-4005-aaa8-7951f46ab09e/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/4cfc0eea-84e4-4005-aaa8-7951f46ab09e.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> Building for everyone: The importance of representative data </h3> <p class="my-2 sm:s-p1 md:l-p2">Learn how developers are using crowdsourcing tools like Task Mate (beta) to address data quality and representation bias</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Beginner</span> <div class="h-translated-category" data-name="Growth"> <span></span> </div> <span> + 4 more </span> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="920ad991-4f14-4010-9eda-7266fecb73d7" data-topic="["3519e67b-2c34-48e6-95e5-1b526005a314", "ad07cc5e-42b4-4636-9118-80fa9f797093"]" data-level="["adf1de38-22c0-468c-b9d6-13f77b33ea94"]" data-type="["590ed748-cc8b-4b16-b872-2b632222a575"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/920ad991-4f14-4010-9eda-7266fecb73d7/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/920ad991-4f14-4010-9eda-7266fecb73d7.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> Building smart home apps with the Google Home mobile SDK </h3> <p class="my-2 sm:s-p1 md:l-p2">The Google Home mobile SDK lets you build Android Matter apps with great setup, device sharing, and control experiences.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Intermediate</span> <div class="h-translated-category" data-name="Smart Home"> <span></span> </div> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="e0fff0e5-2554-4ca7-84ea-d62f9c3e2a4a" data-topic="["96a8382e-68d1-40b1-8fe8-c32eafe45327", "340083e1-e7e2-4ffb-80a8-c4550775a884", "1cf58852-f96e-4549-92c4-f02f47b941d7", "5e8f505e-5ce1-428d-ac5f-f7deafd0dbae"]" data-level="["adf1de38-22c0-468c-b9d6-13f77b33ea94"]" data-type="["590ed748-cc8b-4b16-b872-2b632222a575"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/e0fff0e5-2554-4ca7-84ea-d62f9c3e2a4a/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/e0fff0e5-2554-4ca7-84ea-d62f9c3e2a4a.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> Building the Privacy Sandbox </h3> <p class="my-2 sm:s-p1 md:l-p2">Join the Privacy Sandbox team as they answer popular questions that span across the Chrome and Android initiatives.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Intermediate</span> <div class="h-translated-category" data-name="Android"> <span></span> </div> <span> + 3 more </span> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="8548d99b-081f-4d60-94fd-541ad9d8564e" data-topic="["3519e67b-2c34-48e6-95e5-1b526005a314", "ad07cc5e-42b4-4636-9118-80fa9f797093"]" data-level="["adf1de38-22c0-468c-b9d6-13f77b33ea94"]" data-type="["590ed748-cc8b-4b16-b872-2b632222a575"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/8548d99b-081f-4d60-94fd-541ad9d8564e/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/8548d99b-081f-4d60-94fd-541ad9d8564e.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> Building, testing, and deploying smart home devices for Google Home </h3> <p class="my-2 sm:s-p1 md:l-p2">Build Matter devices easily and with high quality with the Google Home SDK and tools to integrate with Google.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Intermediate</span> <div class="h-translated-category" data-name="Smart Home"> <span></span> </div> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="089c863e-b885-4f86-a20a-79a1f8702fd5" data-topic="["96a8382e-68d1-40b1-8fe8-c32eafe45327", "8f5bce97-22f3-4130-902f-ccdede6d2047"]" data-level="["adf1de38-22c0-468c-b9d6-13f77b33ea94"]" data-type="["590ed748-cc8b-4b16-b872-2b632222a575"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/089c863e-b885-4f86-a20a-79a1f8702fd5/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/089c863e-b885-4f86-a20a-79a1f8702fd5.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> Car talk: Assistant and Android for cars </h3> <p class="my-2 sm:s-p1 md:l-p2">Take a closer look at how to add voice functionality to Android Auto apps.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Intermediate</span> <div class="h-translated-category" data-name="Android"> <span></span> </div> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="213421b6-9873-464f-9b36-38eeb232a854" data-topic="["96a8382e-68d1-40b1-8fe8-c32eafe45327"]" data-level="["adf1de38-22c0-468c-b9d6-13f77b33ea94"]" data-type="["590ed748-cc8b-4b16-b872-2b632222a575"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/213421b6-9873-464f-9b36-38eeb232a854/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/213421b6-9873-464f-9b36-38eeb232a854.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> Common performance gotchas in Jetpack Compose </h3> <p class="my-2 sm:s-p1 md:l-p2">Jetpack Compose can feel like magic, but what do you do when the magic isn’t as performant as you want?</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Intermediate</span> <div class="h-translated-category" data-name="Android"> <span></span> </div> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="58bd4677-803b-4d3a-b322-d5b6c7759aee" data-topic="["7fe5dbfe-13d5-4386-9af7-3fd87beb7219", "7e71258b-2ba6-4981-bcb9-6abfe678a99e", "96a8382e-68d1-40b1-8fe8-c32eafe45327"]" data-level="["adf1de38-22c0-468c-b9d6-13f77b33ea94"]" data-type="["590ed748-cc8b-4b16-b872-2b632222a575"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/58bd4677-803b-4d3a-b322-d5b6c7759aee/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/58bd4677-803b-4d3a-b322-d5b6c7759aee.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> Conversational AI for business messaging </h3> <p class="my-2 sm:s-p1 md:l-p2">Create messaging experiences for consumers on Google Search and Maps using Google's Business Messages.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Intermediate</span> <div class="h-translated-category" data-name="Search"> <span></span> </div> <span> + 2 more </span> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="7cb6e1ad-504b-42d8-9ab6-105c48a65b80" data-topic="["1cf58852-f96e-4549-92c4-f02f47b941d7"]" data-level="["adf1de38-22c0-468c-b9d6-13f77b33ea94"]" data-type="["590ed748-cc8b-4b16-b872-2b632222a575"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/7cb6e1ad-504b-42d8-9ab6-105c48a65b80/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/7cb6e1ad-504b-42d8-9ab6-105c48a65b80.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> Core Web Vitals in the real world </h3> <p class="my-2 sm:s-p1 md:l-p2">Learn about how websites around the world are improving their experience with a focus on Core Web Vitals.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Intermediate</span> <div class="h-translated-category" data-name="Web"> <span></span> </div> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="06aeeb23-3f65-4a7b-9947-c80aa35a6c07" data-topic="["60ed9001-f01b-45d0-8983-6fb865378f70"]" data-level="["cf5c58e2-e753-4154-a232-1070156d40ef"]" data-type="["590ed748-cc8b-4b16-b872-2b632222a575"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/06aeeb23-3f65-4a7b-9947-c80aa35a6c07/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/06aeeb23-3f65-4a7b-9947-c80aa35a6c07.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> Create expressive and readable typography with variable fonts </h3> <p class="my-2 sm:s-p1 md:l-p2">Learn how variable font technology can be used for typography and now for icons, with our launch of Material Symbols.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Beginner</span> <div class="h-translated-category" data-name="Design"> <span></span> </div> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="7f0f4d16-b260-414d-9f2d-bd2e18ea469b" data-topic="["96a8382e-68d1-40b1-8fe8-c32eafe45327", "9d3b7d5c-d26e-4016-b863-ead7dabfcae4"]" data-level="["adf1de38-22c0-468c-b9d6-13f77b33ea94"]" data-type="["590ed748-cc8b-4b16-b872-2b632222a575"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/7f0f4d16-b260-414d-9f2d-bd2e18ea469b/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/7f0f4d16-b260-414d-9f2d-bd2e18ea469b.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> Creating beautiful, power-efficient apps for Wear OS </h3> <p class="my-2 sm:s-p1 md:l-p2">Discover modern, power-efficient Wear OS development with Compose for Wear OS (Beta) and Health Services.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Intermediate</span> <div class="h-translated-category" data-name="Android"> <span></span> </div> <div class="h-translated-category" data-name="Wear OS"> <span></span> </div> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="84bda4d4-bdd9-418f-aa85-f6adbc9f50d8" data-topic="["4f7a4e03-99c1-4f0d-9652-9dae6ab6c921", "1cf58852-f96e-4549-92c4-f02f47b941d7", "5e8f505e-5ce1-428d-ac5f-f7deafd0dbae"]" data-level="["cf5c58e2-e753-4154-a232-1070156d40ef"]" data-type="["590ed748-cc8b-4b16-b872-2b632222a575"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/84bda4d4-bdd9-418f-aa85-f6adbc9f50d8/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/84bda4d4-bdd9-418f-aa85-f6adbc9f50d8.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> Debugging accessibility with Chrome DevTools </h3> <p class="my-2 sm:s-p1 md:l-p2">Learn how new features in Chrome DevTools help you understand how accessibility works (or doesn't work!) in a web app.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Beginner</span> <div class="h-translated-category" data-name="Accessibility"> <span></span> </div> <span> + 2 more </span> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="47842a1a-513c-4aa2-b785-5e071a1b6d4e" data-topic="["3519e67b-2c34-48e6-95e5-1b526005a314", "5afad11a-da0a-4106-8b43-64356b68fa47", "96a8382e-68d1-40b1-8fe8-c32eafe45327", "340083e1-e7e2-4ffb-80a8-c4550775a884"]" data-level="["adf1de38-22c0-468c-b9d6-13f77b33ea94"]" data-type="["590ed748-cc8b-4b16-b872-2b632222a575"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/47842a1a-513c-4aa2-b785-5e071a1b6d4e/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/47842a1a-513c-4aa2-b785-5e071a1b6d4e.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> Deploy a custom ML model to mobile </h3> <p class="my-2 sm:s-p1 md:l-p2">Learn how to author, optimize, and deploy a custom TensorFlow Lite model in your Android and iOS apps.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Intermediate</span> <div class="h-translated-category" data-name="Android"> <span></span> </div> <div class="h-translated-category" data-name="Mobile"> <span></span> </div> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="222bf914-24e3-4478-be37-9d8162d6460e" data-topic="["60ed9001-f01b-45d0-8983-6fb865378f70", "96a8382e-68d1-40b1-8fe8-c32eafe45327", "340083e1-e7e2-4ffb-80a8-c4550775a884", "5e8f505e-5ce1-428d-ac5f-f7deafd0dbae"]" data-level="["cf5c58e2-e753-4154-a232-1070156d40ef"]" data-type="["590ed748-cc8b-4b16-b872-2b632222a575"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/222bf914-24e3-4478-be37-9d8162d6460e/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/222bf914-24e3-4478-be37-9d8162d6460e.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> Designing apps for large screens </h3> <p class="my-2 sm:s-p1 md:l-p2">Learn about key optimizations for adapting apps to large screen devices, such as tablets and foldables.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Beginner</span> <div class="h-translated-category" data-name="Design"> <span></span> </div> <span> + 3 more </span> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="6213f6fd-c940-4e80-b011-beec59d610f8" data-topic="["1cf58852-f96e-4549-92c4-f02f47b941d7"]" data-level="["cf5c58e2-e753-4154-a232-1070156d40ef"]" data-type="["590ed748-cc8b-4b16-b872-2b632222a575"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/6213f6fd-c940-4e80-b011-beec59d610f8/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/6213f6fd-c940-4e80-b011-beec59d610f8.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> DevTools: State of the Union 2022 </h3> <p class="my-2 sm:s-p1 md:l-p2">See a demo tour of new DevTools features that will allow web developers to get site performance insights and more.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Beginner</span> <div class="h-translated-category" data-name="Web"> <span></span> </div> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="369473b2-e162-4b7a-b57d-b47676384d27" data-topic="["7e71258b-2ba6-4981-bcb9-6abfe678a99e"]" data-level="["cf5c58e2-e753-4154-a232-1070156d40ef"]" data-type="["590ed748-cc8b-4b16-b872-2b632222a575"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/369473b2-e162-4b7a-b57d-b47676384d27/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/369473b2-e162-4b7a-b57d-b47676384d27.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> Develop for Google Cloud Platform faster with Cloud Code </h3> <p class="my-2 sm:s-p1 md:l-p2">Learn how the Cloud Code IDE extensions can help you write, test, and deploy your app to Google Cloud Platform faster.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Beginner</span> <div class="h-translated-category" data-name="Cloud"> <span></span> </div> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="a8c32882-0e17-4b10-a186-a236fb68d6f2" data-topic="["5e8f505e-5ce1-428d-ac5f-f7deafd0dbae"]" data-level="["cf5c58e2-e753-4154-a232-1070156d40ef"]" data-type="["590ed748-cc8b-4b16-b872-2b632222a575"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/a8c32882-0e17-4b10-a186-a236fb68d6f2/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/a8c32882-0e17-4b10-a186-a236fb68d6f2.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> Developing for 50 million Chromebooks in the classroom </h3> <p class="my-2 sm:s-p1 md:l-p2">Learn about the exciting recent growth of computing in schools and how to build for Chromebooks in the classroom.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Beginner</span> <div class="h-translated-category" data-name="Chrome OS"> <span></span> </div> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="b1812a3f-fa67-423e-85fa-4edb0bf54d30" data-topic="["96a8382e-68d1-40b1-8fe8-c32eafe45327", "340083e1-e7e2-4ffb-80a8-c4550775a884"]" data-level="["adf1de38-22c0-468c-b9d6-13f77b33ea94"]" data-type="["590ed748-cc8b-4b16-b872-2b632222a575"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/b1812a3f-fa67-423e-85fa-4edb0bf54d30/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/b1812a3f-fa67-423e-85fa-4edb0bf54d30.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> Developing privacy user-centric apps </h3> <p class="my-2 sm:s-p1 md:l-p2">This session will provide developers best practices on building apps that respect user’s privacy.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Intermediate</span> <div class="h-translated-category" data-name="Android"> <span></span> </div> <div class="h-translated-category" data-name="Mobile"> <span></span> </div> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="149d8583-1a73-4b3c-85be-500468c71bcd" data-topic="["4a3ba017-12d3-4226-b363-6e1138e92a7d"]" data-level="["adf1de38-22c0-468c-b9d6-13f77b33ea94"]" data-type="["590ed748-cc8b-4b16-b872-2b632222a575"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/149d8583-1a73-4b3c-85be-500468c71bcd/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/149d8583-1a73-4b3c-85be-500468c71bcd.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> Diving into Flutter desktop </h3> <p class="my-2 sm:s-p1 md:l-p2">Learn how to nail the details when building Flutter applications for desktop platforms.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Intermediate</span> <div class="h-translated-category" data-name="Flutter"> <span></span> </div> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="8fb6178c-bd1e-482a-b17c-17cbefa41c1e" data-topic="["5afad11a-da0a-4106-8b43-64356b68fa47", "363d2624-03ed-4f53-b26f-a0954a422164"]" data-level="["cf5c58e2-e753-4154-a232-1070156d40ef"]" data-type="["590ed748-cc8b-4b16-b872-2b632222a575"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/8fb6178c-bd1e-482a-b17c-17cbefa41c1e/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/8fb6178c-bd1e-482a-b17c-17cbefa41c1e.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> Easier data preprocessing with Keras </h3> <p class="my-2 sm:s-p1 md:l-p2">Join us for a dive into what's new with Keras, the human-friendly ML library.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Beginner</span> <div class="h-translated-category" data-name="Open Source"> <span></span> </div> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="72eb0324-dc4f-48b3-8916-9f6f45550e20" data-topic="["d140520d-5889-491b-bce7-32db0a33147e", "5e8f505e-5ce1-428d-ac5f-f7deafd0dbae"]" data-level="["adf1de38-22c0-468c-b9d6-13f77b33ea94"]" data-type="["590ed748-cc8b-4b16-b872-2b632222a575"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/72eb0324-dc4f-48b3-8916-9f6f45550e20/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/72eb0324-dc4f-48b3-8916-9f6f45550e20.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> Expand your game with Chrome OS </h3> <p class="my-2 sm:s-p1 md:l-p2">Learn about gaming on Chrome OS and how to bring your Android, Steam, and PC games to the platform. </p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Intermediate</span> <div class="h-translated-category" data-name="Gaming"> <span></span> </div> <div class="h-translated-category" data-name="Chrome OS"> <span></span> </div> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="a08b37d3-5b5b-4fd4-8c9b-12311e29ca6b" data-topic="["7e71258b-2ba6-4981-bcb9-6abfe678a99e"]" data-level="["adf1de38-22c0-468c-b9d6-13f77b33ea94"]" data-type="["590ed748-cc8b-4b16-b872-2b632222a575"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/a08b37d3-5b5b-4fd4-8c9b-12311e29ca6b/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/a08b37d3-5b5b-4fd4-8c9b-12311e29ca6b.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> Extending Google Workspace with AppSheet’s no-code platform and Apps Script </h3> <p class="my-2 sm:s-p1 md:l-p2">Learn how to configure the new Apps Script Connector in your AppSheet apps.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Intermediate</span> <div class="h-translated-category" data-name="Cloud"> <span></span> </div> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="5b1811d3-3bcb-4d30-b2a1-a098225029a7" data-topic="["4a3ba017-12d3-4226-b363-6e1138e92a7d", "8674160c-cb44-46f7-be94-b5a7360e3079"]" data-level="["b4014b37-565f-475e-b5f4-8cfeee4f3586"]" data-type="["590ed748-cc8b-4b16-b872-2b632222a575"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/5b1811d3-3bcb-4d30-b2a1-a098225029a7/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/5b1811d3-3bcb-4d30-b2a1-a098225029a7.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> Flutter Concurrency: When, why, and how to multithread in Flutter </h3> <p class="my-2 sm:s-p1 md:l-p2">Learn about Dart's event loop and isolates, then see how using them can bust jank and improve performance in Flutter.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Advanced</span> <div class="h-translated-category" data-name="Flutter"> <span></span> </div> <div class="h-translated-category" data-name="iOS"> <span></span> </div> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="c9085b18-4e8e-4183-b303-1d1716b0c070" data-topic="["96a8382e-68d1-40b1-8fe8-c32eafe45327"]" data-level="["adf1de38-22c0-468c-b9d6-13f77b33ea94"]" data-type="["590ed748-cc8b-4b16-b872-2b632222a575"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/c9085b18-4e8e-4183-b303-1d1716b0c070/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/c9085b18-4e8e-4183-b303-1d1716b0c070.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> Fragments: The good (non-deprecated) parts </h3> <p class="my-2 sm:s-p1 md:l-p2">Learn about the changes in Fragments including new APIs, the use cases they serve, and the APIs they are replacing.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Intermediate</span> <div class="h-translated-category" data-name="Android"> <span></span> </div> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="9a759b60-9a9b-4744-bd22-6e21a4a864cd" data-topic="["5afad11a-da0a-4106-8b43-64356b68fa47", "7e71258b-2ba6-4981-bcb9-6abfe678a99e"]" data-level="["adf1de38-22c0-468c-b9d6-13f77b33ea94"]" data-type="["590ed748-cc8b-4b16-b872-2b632222a575"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/9a759b60-9a9b-4744-bd22-6e21a4a864cd/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/9a759b60-9a9b-4744-bd22-6e21a4a864cd.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> Fraudfinder: A comprehensive solution for real data science problems </h3> <p class="my-2 sm:s-p1 md:l-p2">Get a practical overview of Vertex AI capabilities by building a fraud detection system app.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Intermediate</span> <div class="h-translated-category" data-name="Cloud"> <span></span> </div> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="e9707f5d-dcce-488c-a582-99e8072d6e55" data-topic="["5afad11a-da0a-4106-8b43-64356b68fa47", "7e71258b-2ba6-4981-bcb9-6abfe678a99e"]" data-level="["adf1de38-22c0-468c-b9d6-13f77b33ea94"]" data-type="["590ed748-cc8b-4b16-b872-2b632222a575"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/e9707f5d-dcce-488c-a582-99e8072d6e55/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/e9707f5d-dcce-488c-a582-99e8072d6e55.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> From colab to Cloud in five steps </h3> <p class="my-2 sm:s-p1 md:l-p2">Learn how to become a Google Cloud machine learning developer in five steps.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Intermediate</span> <div class="h-translated-category" data-name="Cloud"> <span></span> </div> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="53308e9f-5bc2-4caf-ac12-e29afee80d9e" data-topic="["e7c8b34e-7169-44c1-a43e-0cf66f9c4a14"]" data-level="["cf5c58e2-e753-4154-a232-1070156d40ef"]" data-type="["590ed748-cc8b-4b16-b872-2b632222a575"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/53308e9f-5bc2-4caf-ac12-e29afee80d9e/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/53308e9f-5bc2-4caf-ac12-e29afee80d9e.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> From testing to production: How to ship stable features with Firebase </h3> <p class="my-2 sm:s-p1 md:l-p2">Use Firebase Remote Config, App Distribution, and Crashlytics to ship stable features and keep your customers satisfied.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Beginner</span> <div class="h-translated-category" data-name="Firebase"> <span></span> </div> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="8bff5858-9391-457b-be9c-81f47f5ef40b" data-topic="["3519e67b-2c34-48e6-95e5-1b526005a314", "5afad11a-da0a-4106-8b43-64356b68fa47"]" data-level="["cf5c58e2-e753-4154-a232-1070156d40ef"]" data-type="["590ed748-cc8b-4b16-b872-2b632222a575"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/8bff5858-9391-457b-be9c-81f47f5ef40b/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/8bff5858-9391-457b-be9c-81f47f5ef40b.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> Further on the edge with Coral Dev Board Micro </h3> <p class="my-2 sm:s-p1 md:l-p2">Hear the latest updates from Google Coral for developing AI/ML solutions at the edge.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Beginner</span> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="8a683847-f670-4b03-852a-b7e544600bcd" data-topic="["4f7a4e03-99c1-4f0d-9652-9dae6ab6c921", "1cf58852-f96e-4549-92c4-f02f47b941d7"]" data-level="["cf5c58e2-e753-4154-a232-1070156d40ef"]" data-type="["590ed748-cc8b-4b16-b872-2b632222a575"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/8a683847-f670-4b03-852a-b7e544600bcd/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/8a683847-f670-4b03-852a-b7e544600bcd.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> Getting started with accessibility and product inclusion </h3> <p class="my-2 sm:s-p1 md:l-p2">Learn the basics of accessibility, product inclusion, and how to integrate both into your product development process.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Beginner</span> <div class="h-translated-category" data-name="Accessibility"> <span></span> </div> <div class="h-translated-category" data-name="Web"> <span></span> </div> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="12cb5274-2781-4f3e-95b8-e21eaed2aa67" data-topic="["96a8382e-68d1-40b1-8fe8-c32eafe45327", "340083e1-e7e2-4ffb-80a8-c4550775a884", "8f5bce97-22f3-4130-902f-ccdede6d2047"]" data-level="["cf5c58e2-e753-4154-a232-1070156d40ef"]" data-type="["590ed748-cc8b-4b16-b872-2b632222a575"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/12cb5274-2781-4f3e-95b8-e21eaed2aa67/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/12cb5274-2781-4f3e-95b8-e21eaed2aa67.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> Google Assistant functionality across Android devices </h3> <p class="my-2 sm:s-p1 md:l-p2">Assistant has integration paths on many Android devices. Learn how you can add voice features to your app.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Beginner</span> <div class="h-translated-category" data-name="Android"> <span></span> </div> <div class="h-translated-category" data-name="Mobile"> <span></span> </div> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="23a82db5-cbd2-45f0-bc9e-2aa1cec254c5" data-topic="["96a8382e-68d1-40b1-8fe8-c32eafe45327", "8f5bce97-22f3-4130-902f-ccdede6d2047"]" data-level="["adf1de38-22c0-468c-b9d6-13f77b33ea94"]" data-type="["590ed748-cc8b-4b16-b872-2b632222a575"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/23a82db5-cbd2-45f0-bc9e-2aa1cec254c5/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/23a82db5-cbd2-45f0-bc9e-2aa1cec254c5.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> How Google Assistant’s architecture powers voice features in your apps </h3> <p class="my-2 sm:s-p1 md:l-p2">Get a technical deep dive on Assistant’s architecture and how you add voice to your apps with a few lines of code.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Intermediate</span> <div class="h-translated-category" data-name="Android"> <span></span> </div> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="1351e983-465f-4b32-99e0-de0647240352" data-topic="["96a8382e-68d1-40b1-8fe8-c32eafe45327"]" data-level="["cf5c58e2-e753-4154-a232-1070156d40ef"]" data-type="["590ed748-cc8b-4b16-b872-2b632222a575"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/1351e983-465f-4b32-99e0-de0647240352/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/1351e983-465f-4b32-99e0-de0647240352.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> Implementing Android apps for all screen sizes </h3> <p class="my-2 sm:s-p1 md:l-p2">Building an app with Jetpack Compose for all screen sizes with navigation, state and testing.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Beginner</span> <div class="h-translated-category" data-name="Android"> <span></span> </div> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="a55aec14-5bda-47e0-b259-7a1f7bb366b8" data-topic="["96a8382e-68d1-40b1-8fe8-c32eafe45327", "5e8f505e-5ce1-428d-ac5f-f7deafd0dbae"]" data-level="["adf1de38-22c0-468c-b9d6-13f77b33ea94"]" data-type="["590ed748-cc8b-4b16-b872-2b632222a575"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/a55aec14-5bda-47e0-b259-7a1f7bb366b8/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/a55aec14-5bda-47e0-b259-7a1f7bb366b8.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> Input for all screens </h3> <p class="my-2 sm:s-p1 md:l-p2">Uncover best practices that allow users across phones, foldables, tablets, and ChromeOS to interact with your app.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Intermediate</span> <div class="h-translated-category" data-name="Android"> <span></span> </div> <div class="h-translated-category" data-name="Chrome OS"> <span></span> </div> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="8ce65f83-01b3-4fcb-aa84-12dbcc0cc708" data-topic="["e7c8b34e-7169-44c1-a43e-0cf66f9c4a14"]" data-level="["adf1de38-22c0-468c-b9d6-13f77b33ea94"]" data-type="["590ed748-cc8b-4b16-b872-2b632222a575"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/8ce65f83-01b3-4fcb-aa84-12dbcc0cc708/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/8ce65f83-01b3-4fcb-aa84-12dbcc0cc708.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> Integrate Firebase into your team's development workflow </h3> <p class="my-2 sm:s-p1 md:l-p2">Use Firebase tooling with Github Actions to ensure everyone on your team can take an idea from prototype to production.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Intermediate</span> <div class="h-translated-category" data-name="Firebase"> <span></span> </div> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="0a894aa7-755b-478d-9553-e9c828deb885" data-topic="["7e71258b-2ba6-4981-bcb9-6abfe678a99e"]" data-level="["adf1de38-22c0-468c-b9d6-13f77b33ea94"]" data-type="["590ed748-cc8b-4b16-b872-2b632222a575"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/0a894aa7-755b-478d-9553-e9c828deb885/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/0a894aa7-755b-478d-9553-e9c828deb885.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> Introducing AlloyDB, a PostgreSQL-compatible cloud database service </h3> <p class="my-2 sm:s-p1 md:l-p2">Learn more about AlloyDB, the new and powerful relational database service from Google Cloud.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Intermediate</span> <div class="h-translated-category" data-name="Cloud"> <span></span> </div> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="33ca1afa-36ba-4f50-b016-0e5c3a3bf063" data-topic="["4f7a4e03-99c1-4f0d-9652-9dae6ab6c921", "1cf58852-f96e-4549-92c4-f02f47b941d7"]" data-level="["adf1de38-22c0-468c-b9d6-13f77b33ea94"]" data-type="["590ed748-cc8b-4b16-b872-2b632222a575"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/33ca1afa-36ba-4f50-b016-0e5c3a3bf063/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/33ca1afa-36ba-4f50-b016-0e5c3a3bf063.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> Introducing Google's Accessible Design Framework </h3> <p class="my-2 sm:s-p1 md:l-p2">Check out Google's new framework for baking accessibility into design and development. Learn UX design and semantics.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Intermediate</span> <div class="h-translated-category" data-name="Accessibility"> <span></span> </div> <div class="h-translated-category" data-name="Web"> <span></span> </div> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="cae72ae9-2516-4e89-b1a2-852f8e653046" data-topic="["96a8382e-68d1-40b1-8fe8-c32eafe45327", "340083e1-e7e2-4ffb-80a8-c4550775a884"]" data-level="["adf1de38-22c0-468c-b9d6-13f77b33ea94"]" data-type="["590ed748-cc8b-4b16-b872-2b632222a575"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/cae72ae9-2516-4e89-b1a2-852f8e653046/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/cae72ae9-2516-4e89-b1a2-852f8e653046.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> Introducing Health Connect by Android, new APIs for health and fitness </h3> <p class="my-2 sm:s-p1 md:l-p2">Find out about Health Connect, a new set of APIs designed to help you reach more Android users with less work.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Intermediate</span> <div class="h-translated-category" data-name="Android"> <span></span> </div> <div class="h-translated-category" data-name="Mobile"> <span></span> </div> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="d7b6d22e-59a4-4e6b-a49d-3116ee57dcc3" data-topic="["aba087d1-36bd-432b-8151-1965e66f9adc", "96a8382e-68d1-40b1-8fe8-c32eafe45327", "5e8f505e-5ce1-428d-ac5f-f7deafd0dbae"]" data-level="["cf5c58e2-e753-4154-a232-1070156d40ef"]" data-type="["590ed748-cc8b-4b16-b872-2b632222a575"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/d7b6d22e-59a4-4e6b-a49d-3116ee57dcc3/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/d7b6d22e-59a4-4e6b-a49d-3116ee57dcc3.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> Introduction to counter-abuse technology at Google </h3> <p class="my-2 sm:s-p1 md:l-p2">Learn how Google approaches the problem of abuse and develops state-of-the-art protections to help users stay safe.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Beginner</span> <div class="h-translated-category" data-name="Google Play"> <span></span> </div> <span> + 2 more </span> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="14bb63ef-2dd1-460a-9871-5f51ec1afec9" data-topic="["96a8382e-68d1-40b1-8fe8-c32eafe45327"]" data-level="["adf1de38-22c0-468c-b9d6-13f77b33ea94"]" data-type="["590ed748-cc8b-4b16-b872-2b632222a575"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/14bb63ef-2dd1-460a-9871-5f51ec1afec9/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/14bb63ef-2dd1-460a-9871-5f51ec1afec9.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> Lazy layouts in Compose </h3> <p class="my-2 sm:s-p1 md:l-p2">A simple and performant way of creating scrolling lists in Compose: Add content on demand with fewer lines of code. </p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Intermediate</span> <div class="h-translated-category" data-name="Android"> <span></span> </div> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="5b2df2ff-fc08-4a61-89e7-88731938b010" data-topic="["7e71258b-2ba6-4981-bcb9-6abfe678a99e", "96a8382e-68d1-40b1-8fe8-c32eafe45327", "1cf58852-f96e-4549-92c4-f02f47b941d7"]" data-level="["adf1de38-22c0-468c-b9d6-13f77b33ea94"]" data-type="["590ed748-cc8b-4b16-b872-2b632222a575"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/5b2df2ff-fc08-4a61-89e7-88731938b010/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/5b2df2ff-fc08-4a61-89e7-88731938b010.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> Learn how to enable shared experiences across platforms </h3> <p class="my-2 sm:s-p1 md:l-p2">Explore how to enable shared experiences across platforms (Android, iOS, web).</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Intermediate</span> <div class="h-translated-category" data-name="Cloud"> <span></span> </div> <span> + 2 more </span> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="37d23599-8646-4d01-be80-4f4ea381e716" data-topic="["7e71258b-2ba6-4981-bcb9-6abfe678a99e"]" data-level="["adf1de38-22c0-468c-b9d6-13f77b33ea94"]" data-type="["590ed748-cc8b-4b16-b872-2b632222a575"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/37d23599-8646-4d01-be80-4f4ea381e716/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/37d23599-8646-4d01-be80-4f4ea381e716.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> Learn to refactor Cloud applications in Go 1.18 with Generics </h3> <p class="my-2 sm:s-p1 md:l-p2">Generics are the most significant change to Go since the release of Go 1. Learn when and how to use generics in Go 1.18.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Intermediate</span> <div class="h-translated-category" data-name="Cloud"> <span></span> </div> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="38c804de-d8dc-4ea3-b73e-f6bf21672c0c" data-topic="["60ed9001-f01b-45d0-8983-6fb865378f70", "4f7a4e03-99c1-4f0d-9652-9dae6ab6c921"]" data-level="["cf5c58e2-e753-4154-a232-1070156d40ef"]" data-type="["590ed748-cc8b-4b16-b872-2b632222a575"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/38c804de-d8dc-4ea3-b73e-f6bf21672c0c/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/38c804de-d8dc-4ea3-b73e-f6bf21672c0c.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> Let’s get personal: Designing accessibility for individuals </h3> <p class="my-2 sm:s-p1 md:l-p2">Learn how and why Material Design’s latest features enable personalized approaches for accessible design.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Beginner</span> <div class="h-translated-category" data-name="Design"> <span></span> </div> <div class="h-translated-category" data-name="Accessibility"> <span></span> </div> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="9ab90ba7-43df-4b67-af65-046a21ba3647" data-topic="["5afad11a-da0a-4106-8b43-64356b68fa47"]" data-level="["b4014b37-565f-475e-b5f4-8cfeee4f3586"]" data-type="["590ed748-cc8b-4b16-b872-2b632222a575"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/9ab90ba7-43df-4b67-af65-046a21ba3647/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/9ab90ba7-43df-4b67-af65-046a21ba3647.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> Machine learning for developers in a hurry </h3> <p class="my-2 sm:s-p1 md:l-p2">Would you like add ML to your app in a hurry? Learn about the fastest, easiest-to-use ML tools and how to use them.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Advanced</span> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="61b7f2f1-7e0c-4284-a3f6-2acdc996c32a" data-topic="["3519e67b-2c34-48e6-95e5-1b526005a314", "5afad11a-da0a-4106-8b43-64356b68fa47"]" data-level="["cf5c58e2-e753-4154-a232-1070156d40ef"]" data-type="["590ed748-cc8b-4b16-b872-2b632222a575"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/61b7f2f1-7e0c-4284-a3f6-2acdc996c32a/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/61b7f2f1-7e0c-4284-a3f6-2acdc996c32a.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> Making smart IoT devices with TensorFlow Lite and Raspberry Pi </h3> <p class="my-2 sm:s-p1 md:l-p2">AI & ML on a Raspberry PI. Get hands on with object detection and sound classification with standard and custom models.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Beginner</span> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="a8a9892b-ae1d-4078-a818-2ff0b674a12b" data-topic="["1cf58852-f96e-4549-92c4-f02f47b941d7", "5e8f505e-5ce1-428d-ac5f-f7deafd0dbae"]" data-level="["adf1de38-22c0-468c-b9d6-13f77b33ea94"]" data-type="["590ed748-cc8b-4b16-b872-2b632222a575"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/a8a9892b-ae1d-4078-a818-2ff0b674a12b/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/a8a9892b-ae1d-4078-a818-2ff0b674a12b.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> Making the most of PWA install </h3> <p class="my-2 sm:s-p1 md:l-p2">This talk walks you through the existing tools in PWAs to create enhanced experiences after installation.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Intermediate</span> <div class="h-translated-category" data-name="Web"> <span></span> </div> <div class="h-translated-category" data-name="Chrome OS"> <span></span> </div> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="477adf14-7c6d-4710-9f19-b127421a396c" data-topic="["96a8382e-68d1-40b1-8fe8-c32eafe45327"]" data-level="["adf1de38-22c0-468c-b9d6-13f77b33ea94"]" data-type="["590ed748-cc8b-4b16-b872-2b632222a575"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/477adf14-7c6d-4710-9f19-b127421a396c/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/477adf14-7c6d-4710-9f19-b127421a396c.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> Managing background work on Android </h3> <p class="my-2 sm:s-p1 md:l-p2">Learn about changes to Android background work and discover best practices for managing it.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Intermediate</span> <div class="h-translated-category" data-name="Android"> <span></span> </div> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="e7246617-cb14-4ca5-bdd3-20d974e5703c" data-topic="["a31f0e69-9707-41d4-9a1d-6bda74f7d9c9"]" data-level="["adf1de38-22c0-468c-b9d6-13f77b33ea94"]" data-type="["590ed748-cc8b-4b16-b872-2b632222a575"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/e7246617-cb14-4ca5-bdd3-20d974e5703c/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/e7246617-cb14-4ca5-bdd3-20d974e5703c.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> Meet your business objectives with automation in Google Analytics 4 </h3> <p class="my-2 sm:s-p1 md:l-p2">Meet your business objectives with automation in Google Analytics 4.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Intermediate</span> <div class="h-translated-category" data-name="Ads"> <span></span> </div> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="1982be06-2df2-4b42-959a-2cb419398480" data-topic="["7e71258b-2ba6-4981-bcb9-6abfe678a99e", "363d2624-03ed-4f53-b26f-a0954a422164", "1cf58852-f96e-4549-92c4-f02f47b941d7"]" data-level="["adf1de38-22c0-468c-b9d6-13f77b33ea94"]" data-type="["590ed748-cc8b-4b16-b872-2b632222a575"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/1982be06-2df2-4b42-959a-2cb419398480/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/1982be06-2df2-4b42-959a-2cb419398480.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> Modern Angular deployment with Google Cloud </h3> <p class="my-2 sm:s-p1 md:l-p2">Deploy your Angular applications with server-side and hybrid rendering to Google Cloud Platform.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Intermediate</span> <div class="h-translated-category" data-name="Cloud"> <span></span> </div> <span> + 2 more </span> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="4b4e3ec7-9de0-468f-82f0-0603e11c0a14" data-topic="["e7c8b34e-7169-44c1-a43e-0cf66f9c4a14", "4a3ba017-12d3-4226-b363-6e1138e92a7d"]" data-level="["cf5c58e2-e753-4154-a232-1070156d40ef"]" data-type="["590ed748-cc8b-4b16-b872-2b632222a575"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/4b4e3ec7-9de0-468f-82f0-0603e11c0a14/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/4b4e3ec7-9de0-468f-82f0-0603e11c0a14.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> Monitoring your Flutter app's stability with Firebase Crashlytics </h3> <p class="my-2 sm:s-p1 md:l-p2">Learn how Crashlytics helps you uncover and solve stability issues impacting your Flutter app.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Beginner</span> <div class="h-translated-category" data-name="Firebase"> <span></span> </div> <div class="h-translated-category" data-name="Flutter"> <span></span> </div> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="2d35bc51-fef8-4f4f-830f-0dba6d30e592" data-topic="["96a8382e-68d1-40b1-8fe8-c32eafe45327"]" data-level="["adf1de38-22c0-468c-b9d6-13f77b33ea94"]" data-type="["590ed748-cc8b-4b16-b872-2b632222a575"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/2d35bc51-fef8-4f4f-830f-0dba6d30e592/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/2d35bc51-fef8-4f4f-830f-0dba6d30e592.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> Multi-device development </h3> <p class="my-2 sm:s-p1 md:l-p2">Build your own multi-device experiences with tools from Google.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Intermediate</span> <div class="h-translated-category" data-name="Android"> <span></span> </div> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="9a1a9572-9472-4ac9-9c57-0bc4810b8966" data-topic="["e7c8b34e-7169-44c1-a43e-0cf66f9c4a14"]" data-level="["cf5c58e2-e753-4154-a232-1070156d40ef"]" data-type="["590ed748-cc8b-4b16-b872-2b632222a575"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/9a1a9572-9472-4ac9-9c57-0bc4810b8966/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/9a1a9572-9472-4ac9-9c57-0bc4810b8966.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> Optimize app health with Firebase performance monitoring & Crashlytics </h3> <p class="my-2 sm:s-p1 md:l-p2">Together, Firebase Performance Monitoring and Crashlytics can monitor app performance and recover from crashes faster.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Beginner</span> <div class="h-translated-category" data-name="Firebase"> <span></span> </div> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="3b5391ef-d824-4480-a619-30ee923dd0ce" data-topic="["96a8382e-68d1-40b1-8fe8-c32eafe45327"]" data-level="["adf1de38-22c0-468c-b9d6-13f77b33ea94"]" data-type="["590ed748-cc8b-4b16-b872-2b632222a575"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/3b5391ef-d824-4480-a619-30ee923dd0ce/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/3b5391ef-d824-4480-a619-30ee923dd0ce.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> Overview of the Privacy Sandbox on Android </h3> <p class="my-2 sm:s-p1 md:l-p2">Get an overview of the Privacy Sandbox on Android including the SDK Runtime and Privacy Preserving APIs.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Intermediate</span> <div class="h-translated-category" data-name="Android"> <span></span> </div> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="4d1c8656-e20d-489b-8434-99e9a94fb743" data-topic="["e7c8b34e-7169-44c1-a43e-0cf66f9c4a14"]" data-level="["adf1de38-22c0-468c-b9d6-13f77b33ea94"]" data-type="["590ed748-cc8b-4b16-b872-2b632222a575"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/4d1c8656-e20d-489b-8434-99e9a94fb743/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/4d1c8656-e20d-489b-8434-99e9a94fb743.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> Personalize apps to create better user experiences and drive revenue </h3> <p class="my-2 sm:s-p1 md:l-p2">Learn how personalizing apps for better user experiences can generate more app revenue using Google AdMob and Firebase.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Intermediate</span> <div class="h-translated-category" data-name="Firebase"> <span></span> </div> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="87d1e16b-09ff-4f48-ad4e-eae333f78513" data-topic="["aba087d1-36bd-432b-8151-1965e66f9adc", "96a8382e-68d1-40b1-8fe8-c32eafe45327"]" data-level="["adf1de38-22c0-468c-b9d6-13f77b33ea94"]" data-type="["590ed748-cc8b-4b16-b872-2b632222a575"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/87d1e16b-09ff-4f48-ad4e-eae333f78513/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/87d1e16b-09ff-4f48-ad4e-eae333f78513.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> Power your success with new acquisition, engagement and monetization tools </h3> <p class="my-2 sm:s-p1 md:l-p2">Learn about the latest opportunities to engage users and boost your revenue potential.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Intermediate</span> <div class="h-translated-category" data-name="Google Play"> <span></span> </div> <div class="h-translated-category" data-name="Android"> <span></span> </div> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="fd566197-8194-4989-91dc-6fd0173faa7e" data-topic="["1cf58852-f96e-4549-92c4-f02f47b941d7"]" data-level="["adf1de38-22c0-468c-b9d6-13f77b33ea94"]" data-type="["590ed748-cc8b-4b16-b872-2b632222a575"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/fd566197-8194-4989-91dc-6fd0173faa7e/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/fd566197-8194-4989-91dc-6fd0173faa7e.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> Privacy Sandbox for the web </h3> <p class="my-2 sm:s-p1 md:l-p2">Progress on the Privacy Sandbox mission to phase out third-party cookies and land new APIs without cross-site tracking.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Intermediate</span> <div class="h-translated-category" data-name="Web"> <span></span> </div> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="d5b1af75-eab5-4cf6-9f9d-01b83d9f4054" data-topic="["4a3ba017-12d3-4226-b363-6e1138e92a7d", "8674160c-cb44-46f7-be94-b5a7360e3079"]" data-level="["b4014b37-565f-475e-b5f4-8cfeee4f3586"]" data-type="["590ed748-cc8b-4b16-b872-2b632222a575"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/d5b1af75-eab5-4cf6-9f9d-01b83d9f4054/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/d5b1af75-eab5-4cf6-9f9d-01b83d9f4054.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> Real-world Flutter lessons for federated plugin development </h3> <p class="my-2 sm:s-p1 md:l-p2">Get ready for Flutter desktop with battle-tested lessons on federated plugins.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Advanced</span> <div class="h-translated-category" data-name="Flutter"> <span></span> </div> <div class="h-translated-category" data-name="iOS"> <span></span> </div> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="08c90d15-7627-4b7d-ac63-7a2c83fcb88d" data-topic="["5afad11a-da0a-4106-8b43-64356b68fa47"]" data-level="["adf1de38-22c0-468c-b9d6-13f77b33ea94"]" data-type="["590ed748-cc8b-4b16-b872-2b632222a575"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/08c90d15-7627-4b7d-ac63-7a2c83fcb88d/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/08c90d15-7627-4b7d-ac63-7a2c83fcb88d.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> Responsible AI review processes: From a developer’s point of view </h3> <p class="my-2 sm:s-p1 md:l-p2">Lessons learned, resources, and tools from Google’s ethics review teams who support developers building AI applications.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Intermediate</span> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="678cbce2-eef1-4401-9265-d2e42e5a599c" data-topic="["e7c8b34e-7169-44c1-a43e-0cf66f9c4a14", "7e71258b-2ba6-4981-bcb9-6abfe678a99e", "1cf58852-f96e-4549-92c4-f02f47b941d7"]" data-level="["adf1de38-22c0-468c-b9d6-13f77b33ea94"]" data-type="["590ed748-cc8b-4b16-b872-2b632222a575"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/678cbce2-eef1-4401-9265-d2e42e5a599c/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/678cbce2-eef1-4401-9265-d2e42e5a599c.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> Run your jobs on serverless </h3> <p class="my-2 sm:s-p1 md:l-p2">Utilize Cloud Run to deploy your code in any language alongside Firebase Hosting and learn about the new "job" feature.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Intermediate</span> <div class="h-translated-category" data-name="Firebase"> <span></span> </div> <span> + 2 more </span> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="3fe42b9f-fcd8-4299-aca1-f4ff661009a8" data-topic="["a31f0e69-9707-41d4-9a1d-6bda74f7d9c9"]" data-level="["adf1de38-22c0-468c-b9d6-13f77b33ea94"]" data-type="["590ed748-cc8b-4b16-b872-2b632222a575"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/3fe42b9f-fcd8-4299-aca1-f4ff661009a8/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/3fe42b9f-fcd8-4299-aca1-f4ff661009a8.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> Solutions for privacy-focused app growth </h3> <p class="my-2 sm:s-p1 md:l-p2">Discover effective, privacy-preserving measurement on iOS.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Intermediate</span> <div class="h-translated-category" data-name="Ads"> <span></span> </div> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="a982ccae-c976-4c06-b9dc-64153958cc2b" data-topic="["7fe5dbfe-13d5-4386-9af7-3fd87beb7219", "1cf58852-f96e-4549-92c4-f02f47b941d7"]" data-level="["adf1de38-22c0-468c-b9d6-13f77b33ea94"]" data-type="["590ed748-cc8b-4b16-b872-2b632222a575"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/a982ccae-c976-4c06-b9dc-64153958cc2b/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/a982ccae-c976-4c06-b9dc-64153958cc2b.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> Speeding up LCP with cross-site prefetching </h3> <p class="my-2 sm:s-p1 md:l-p2">Learn how to improve website performance by enabling pages to be prefetched from referring sites like Google Search.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Intermediate</span> <div class="h-translated-category" data-name="Search"> <span></span> </div> <div class="h-translated-category" data-name="Web"> <span></span> </div> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="97e4d347-ca9b-441c-83dd-58d30d6505d2" data-topic="["1cf58852-f96e-4549-92c4-f02f47b941d7"]" data-level="["cf5c58e2-e753-4154-a232-1070156d40ef"]" data-type="["590ed748-cc8b-4b16-b872-2b632222a575"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/97e4d347-ca9b-441c-83dd-58d30d6505d2/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/97e4d347-ca9b-441c-83dd-58d30d6505d2.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> State of Angular </h3> <p class="my-2 sm:s-p1 md:l-p2">Learn about Angular's API simplification strategy and developer productivity improvements coming to the platform.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Beginner</span> <div class="h-translated-category" data-name="Web"> <span></span> </div> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="9f58d739-87b1-42f0-b715-32584508a69b" data-topic="["1cf58852-f96e-4549-92c4-f02f47b941d7"]" data-level="["adf1de38-22c0-468c-b9d6-13f77b33ea94"]" data-type="["590ed748-cc8b-4b16-b872-2b632222a575"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/9f58d739-87b1-42f0-b715-32584508a69b/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/9f58d739-87b1-42f0-b715-32584508a69b.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> State of CSS </h3> <p class="my-2 sm:s-p1 md:l-p2">Explore new styling APIs available today and tomorrow: container queries, subgrid, color functions, and more.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Intermediate</span> <div class="h-translated-category" data-name="Web"> <span></span> </div> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="15ce0820-2262-44c8-b547-c547730d02e4" data-topic="["5afad11a-da0a-4106-8b43-64356b68fa47", "363d2624-03ed-4f53-b26f-a0954a422164", "1cf58852-f96e-4549-92c4-f02f47b941d7"]" data-level="["cf5c58e2-e753-4154-a232-1070156d40ef"]" data-type="["590ed748-cc8b-4b16-b872-2b632222a575"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/15ce0820-2262-44c8-b547-c547730d02e4/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/15ce0820-2262-44c8-b547-c547730d02e4.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> TensorFlow.js: From prototype to production, what's new in 2022? </h3> <p class="my-2 sm:s-p1 md:l-p2">Get a tour of what's new for web developers with TensorFlow.js – from new models to improved tooling!</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Beginner</span> <div class="h-translated-category" data-name="Open Source"> <span></span> </div> <div class="h-translated-category" data-name="Web"> <span></span> </div> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="11620d62-1ec4-4863-b7e8-3fa9839e205f" data-topic="["7fe5dbfe-13d5-4386-9af7-3fd87beb7219", "1cf58852-f96e-4549-92c4-f02f47b941d7"]" data-level="["cf5c58e2-e753-4154-a232-1070156d40ef"]" data-type="["590ed748-cc8b-4b16-b872-2b632222a575"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/11620d62-1ec4-4863-b7e8-3fa9839e205f/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/11620d62-1ec4-4863-b7e8-3fa9839e205f.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> The latest on Google Search for site owners </h3> <p class="my-2 sm:s-p1 md:l-p2">Dive into what's new and important across Google Search for website, CMS, and hosting platform developers.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Beginner</span> <div class="h-translated-category" data-name="Search"> <span></span> </div> <div class="h-translated-category" data-name="Web"> <span></span> </div> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="62e33209-bd18-48c5-801f-d6d1cc442e4b" data-topic="["1cf58852-f96e-4549-92c4-f02f47b941d7"]" data-level="["b4014b37-565f-475e-b5f4-8cfeee4f3586"]" data-type="["590ed748-cc8b-4b16-b872-2b632222a575"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/62e33209-bd18-48c5-801f-d6d1cc442e4b/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/62e33209-bd18-48c5-801f-d6d1cc442e4b.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> The state of responsiveness on the web </h3> <p class="my-2 sm:s-p1 md:l-p2">Learn about how responsive the web feels to users interacting with it today, according to our latest metrics.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Advanced</span> <div class="h-translated-category" data-name="Web"> <span></span> </div> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="d89119a3-e6da-49c8-a764-e9d5b0eedf6e" data-topic="["5afad11a-da0a-4106-8b43-64356b68fa47"]" data-level="["b4014b37-565f-475e-b5f4-8cfeee4f3586"]" data-type="["590ed748-cc8b-4b16-b872-2b632222a575"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/d89119a3-e6da-49c8-a764-e9d5b0eedf6e/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/d89119a3-e6da-49c8-a764-e9d5b0eedf6e.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> Tips and tricks for distributed large model training </h3> <p class="my-2 sm:s-p1 md:l-p2">Understand patterns and practices for distributed training and data for large-scale models.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Advanced</span> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="eb6e6fb3-b24d-4baf-a1d9-f176198fc595" data-topic="["96a8382e-68d1-40b1-8fe8-c32eafe45327", "5e8f505e-5ce1-428d-ac5f-f7deafd0dbae"]" data-level="["adf1de38-22c0-468c-b9d6-13f77b33ea94"]" data-type="["590ed748-cc8b-4b16-b872-2b632222a575"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/eb6e6fb3-b24d-4baf-a1d9-f176198fc595/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/eb6e6fb3-b24d-4baf-a1d9-f176198fc595.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> Update your app for the larger screen </h3> <p class="my-2 sm:s-p1 md:l-p2">Learn several ways to build optimized large screen experiences without starting from scratch.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Intermediate</span> <div class="h-translated-category" data-name="Android"> <span></span> </div> <div class="h-translated-category" data-name="Chrome OS"> <span></span> </div> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="fc42307b-3b0f-4925-bfea-99499ba08088" data-topic="["3f8f07f0-158d-423a-82cf-4a3d6f5ef970", "df1496a2-7f79-4179-a2ee-598511075c94"]" data-level="["adf1de38-22c0-468c-b9d6-13f77b33ea94"]" data-type="["590ed748-cc8b-4b16-b872-2b632222a575"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/fc42307b-3b0f-4925-bfea-99499ba08088/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/fc42307b-3b0f-4925-bfea-99499ba08088.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> VPS and the ARCore Geospatial API </h3> <p class="my-2 sm:s-p1 md:l-p2">Learn how to build location-based AR experiences at world scale with VPS and the new ARCore Geospatial API.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Intermediate</span> <div class="h-translated-category" data-name="Location/Maps"> <span></span> </div> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="0ff4783f-5a6c-403f-9fb4-e1c1d8e451be" data-topic="["4a3ba017-12d3-4226-b363-6e1138e92a7d"]" data-level="["adf1de38-22c0-468c-b9d6-13f77b33ea94"]" data-type="["590ed748-cc8b-4b16-b872-2b632222a575"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/0ff4783f-5a6c-403f-9fb4-e1c1d8e451be/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/0ff4783f-5a6c-403f-9fb4-e1c1d8e451be.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> Watching a Flutter App Crash </h3> <p class="my-2 sm:s-p1 md:l-p2">Learn how to gain insights into how Flutter apps in production behave.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Intermediate</span> <div class="h-translated-category" data-name="Flutter"> <span></span> </div> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="8d2af92f-0fab-4c42-8036-a9a964552f71" data-topic="["4a3ba017-12d3-4226-b363-6e1138e92a7d", "1cf58852-f96e-4549-92c4-f02f47b941d7"]" data-level="["adf1de38-22c0-468c-b9d6-13f77b33ea94"]" data-type="["590ed748-cc8b-4b16-b872-2b632222a575"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/8d2af92f-0fab-4c42-8036-a9a964552f71/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/8d2af92f-0fab-4c42-8036-a9a964552f71.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> Web apps with Flutter: A love letter to modern browsers </h3> <p class="my-2 sm:s-p1 md:l-p2">Take a deep dive into how modern browser standards power Flutter on the web.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Intermediate</span> <div class="h-translated-category" data-name="Flutter"> <span></span> </div> <div class="h-translated-category" data-name="Web"> <span></span> </div> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="8f756d73-0607-4246-b932-526398f991e1" data-topic="["539010b0-4b1b-475b-a752-48a5ffc49458", "60ed9001-f01b-45d0-8983-6fb865378f70", "4f7a4e03-99c1-4f0d-9652-9dae6ab6c921", "1cf58852-f96e-4549-92c4-f02f47b941d7"]" data-level="["cf5c58e2-e753-4154-a232-1070156d40ef"]" data-type="["590ed748-cc8b-4b16-b872-2b632222a575"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/8f756d73-0607-4246-b932-526398f991e1/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/8f756d73-0607-4246-b932-526398f991e1.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> What we can learn from the internet’s newest users </h3> <p class="my-2 sm:s-p1 md:l-p2">Learn how Novice Internet Users experience the web and how to evaluate your product to make their experience better.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Beginner</span> <div class="h-translated-category" data-name="Growth"> <span></span> </div> <span> + 3 more </span> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="f4726bbd-d230-4574-abc6-211baa6aec35" data-topic="["96a8382e-68d1-40b1-8fe8-c32eafe45327"]" data-level="["cf5c58e2-e753-4154-a232-1070156d40ef"]" data-type="["590ed748-cc8b-4b16-b872-2b632222a575"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/f4726bbd-d230-4574-abc6-211baa6aec35/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/f4726bbd-d230-4574-abc6-211baa6aec35.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> What's new in Android Camera </h3> <p class="my-2 sm:s-p1 md:l-p2">Get the latest updates from Android Camera. You'll also learn about encouraging trends through some key metrics.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Beginner</span> <div class="h-translated-category" data-name="Android"> <span></span> </div> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="aedbd452-b886-4ad9-af88-48f2bc01091b" data-topic="["5afad11a-da0a-4106-8b43-64356b68fa47", "4f7a4e03-99c1-4f0d-9652-9dae6ab6c921", "96a8382e-68d1-40b1-8fe8-c32eafe45327"]" data-level="["cf5c58e2-e753-4154-a232-1070156d40ef"]" data-type="["590ed748-cc8b-4b16-b872-2b632222a575"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/aedbd452-b886-4ad9-af88-48f2bc01091b/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/aedbd452-b886-4ad9-af88-48f2bc01091b.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> What's new in Android accessibility </h3> <p class="my-2 sm:s-p1 md:l-p2">Learn about new Android accessibility features: Braille, summarizing photo content, listening in noisy environments.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Beginner</span> <div class="h-translated-category" data-name="Accessibility"> <span></span> </div> <div class="h-translated-category" data-name="Android"> <span></span> </div> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="b767cad5-59ef-41c2-a9e6-b2dde514c243" data-topic="["5afad11a-da0a-4106-8b43-64356b68fa47", "96a8382e-68d1-40b1-8fe8-c32eafe45327"]" data-level="["cf5c58e2-e753-4154-a232-1070156d40ef"]" data-type="["590ed748-cc8b-4b16-b872-2b632222a575"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/b767cad5-59ef-41c2-a9e6-b2dde514c243/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/b767cad5-59ef-41c2-a9e6-b2dde514c243.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> What's new in Android machine learning </h3> <p class="my-2 sm:s-p1 md:l-p2">Updates on the latest APIs and early access programs for machine learning on Android.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Beginner</span> <div class="h-translated-category" data-name="Android"> <span></span> </div> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="f6863994-eab8-489f-8d62-82c8a9c486ab" data-topic="["96a8382e-68d1-40b1-8fe8-c32eafe45327"]" data-level="["cf5c58e2-e753-4154-a232-1070156d40ef"]" data-type="["590ed748-cc8b-4b16-b872-2b632222a575"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/f6863994-eab8-489f-8d62-82c8a9c486ab/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/f6863994-eab8-489f-8d62-82c8a9c486ab.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> What's new in Android media </h3> <p class="my-2 sm:s-p1 md:l-p2">Get a high level overview of Android media updates covering Android 12+, ExoPlayer, and the Jetpack media libraries.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Beginner</span> <div class="h-translated-category" data-name="Android"> <span></span> </div> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="2cf473b7-113e-4332-a469-8dfd815eb45b" data-topic="["96a8382e-68d1-40b1-8fe8-c32eafe45327"]" data-level="["adf1de38-22c0-468c-b9d6-13f77b33ea94"]" data-type="["590ed748-cc8b-4b16-b872-2b632222a575"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/2cf473b7-113e-4332-a469-8dfd815eb45b/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/2cf473b7-113e-4332-a469-8dfd815eb45b.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> What's new in app performance </h3> <p class="my-2 sm:s-p1 md:l-p2">Learn to measure and address common performance pitfalls and how Android Runtime works for you under the hood.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Intermediate</span> <div class="h-translated-category" data-name="Android"> <span></span> </div> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="a08e7ea4-748c-4b58-ac45-34b3cee3b487" data-topic="["7e71258b-2ba6-4981-bcb9-6abfe678a99e"]" data-level="["adf1de38-22c0-468c-b9d6-13f77b33ea94"]" data-type="["590ed748-cc8b-4b16-b872-2b632222a575"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/a08e7ea4-748c-4b58-ac45-34b3cee3b487/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/a08e7ea4-748c-4b58-ac45-34b3cee3b487.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> What's new in the world of Google Chat apps </h3> <p class="my-2 sm:s-p1 md:l-p2">Integrate services with Google Chat, explore visual improvements to Google Chat apps, and discover new Google Chat AP...</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Intermediate</span> <div class="h-translated-category" data-name="Cloud"> <span></span> </div> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="1e5d0560-24f2-4891-8991-0d93af8d9965" data-topic="["ad07cc5e-42b4-4636-9118-80fa9f797093", "96a8382e-68d1-40b1-8fe8-c32eafe45327"]" data-level="["adf1de38-22c0-468c-b9d6-13f77b33ea94"]" data-type="["590ed748-cc8b-4b16-b872-2b632222a575"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/1e5d0560-24f2-4891-8991-0d93af8d9965/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/1e5d0560-24f2-4891-8991-0d93af8d9965.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> What's new with Android TV and Google TV </h3> <p class="my-2 sm:s-p1 md:l-p2">Learn what's new in Android TV OS, including new features and tools to make developing apps for TV faster and easier.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Intermediate</span> <div class="h-translated-category" data-name="Smart Home"> <span></span> </div> <div class="h-translated-category" data-name="Android"> <span></span> </div> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="8276c69a-83cd-4cd8-bece-31231c3d8454" data-topic="["96a8382e-68d1-40b1-8fe8-c32eafe45327"]" data-level="["adf1de38-22c0-468c-b9d6-13f77b33ea94"]" data-type="["590ed748-cc8b-4b16-b872-2b632222a575"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/8276c69a-83cd-4cd8-bece-31231c3d8454/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/8276c69a-83cd-4cd8-bece-31231c3d8454.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> What's new with Android for Cars </h3> <p class="my-2 sm:s-p1 md:l-p2">Get exciting new updates on Android for Cars and discover changes that make it easier to develop apps.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Intermediate</span> <div class="h-translated-category" data-name="Android"> <span></span> </div> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="eb1019d3-13c9-4a67-a090-17d8f85c2a80" data-topic="["df1496a2-7f79-4179-a2ee-598511075c94", "5afad11a-da0a-4106-8b43-64356b68fa47"]" data-level="["b4014b37-565f-475e-b5f4-8cfeee4f3586"]" data-type="["590ed748-cc8b-4b16-b872-2b632222a575"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/eb1019d3-13c9-4a67-a090-17d8f85c2a80/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/eb1019d3-13c9-4a67-a090-17d8f85c2a80.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> What's under the hood in ARCore </h3> <p class="my-2 sm:s-p1 md:l-p2">Get a deep dive on ARCore, including the APIs for tracking and placement and ML models for improving your experiences.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Advanced</span> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="8215c766-f097-4b18-bc97-5085d77c4dad" data-topic="["96a8382e-68d1-40b1-8fe8-c32eafe45327"]" data-level="["adf1de38-22c0-468c-b9d6-13f77b33ea94"]" data-type="["590ed748-cc8b-4b16-b872-2b632222a575"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/8215c766-f097-4b18-bc97-5085d77c4dad/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/8215c766-f097-4b18-bc97-5085d77c4dad.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> What’s new in Android development tools </h3> <p class="my-2 sm:s-p1 md:l-p2">Get an overview of what's new in Android Studio, including a tour of features that will accelerate developers' workflow.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Intermediate</span> <div class="h-translated-category" data-name="Android"> <span></span> </div> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="b148d900-8bf4-49d0-aa6a-9b5596b81a3d" data-topic="["4a3ba017-12d3-4226-b363-6e1138e92a7d"]" data-level="["cf5c58e2-e753-4154-a232-1070156d40ef"]" data-type="["b3e6963b-c3de-4283-beb1-eadbf0542db0"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/b148d900-8bf4-49d0-aa6a-9b5596b81a3d/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/b148d900-8bf4-49d0-aa6a-9b5596b81a3d.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> Adding WebView to your Flutter app </h3> <p class="my-2 sm:s-p1 md:l-p2">This workshop guides developers through adding WebView to their Flutter app.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Beginner</span> <div class="h-translated-category" data-name="Flutter"> <span></span> </div> <span>Workshop</span> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="385b422e-3a08-4372-8ed3-4e79bafb779a" data-topic="["3f8f07f0-158d-423a-82cf-4a3d6f5ef970", "5afad11a-da0a-4106-8b43-64356b68fa47", "7e71258b-2ba6-4981-bcb9-6abfe678a99e"]" data-level="["adf1de38-22c0-468c-b9d6-13f77b33ea94"]" data-type="["b3e6963b-c3de-4283-beb1-eadbf0542db0"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/385b422e-3a08-4372-8ed3-4e79bafb779a/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/385b422e-3a08-4372-8ed3-4e79bafb779a.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> Apply responsible AI principles when building remote sensing datasets </h3> <p class="my-2 sm:s-p1 md:l-p2">Learn to use the Dynamic World dataset and apply responsible innovation practices for large-scale social benefit.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Intermediate</span> <div class="h-translated-category" data-name="Location/Maps"> <span></span> </div> <span> + 3 more </span> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="05c2523e-be40-4c63-8308-5379b9717a7c" data-topic="["96a8382e-68d1-40b1-8fe8-c32eafe45327"]" data-level="["cf5c58e2-e753-4154-a232-1070156d40ef"]" data-type="["b3e6963b-c3de-4283-beb1-eadbf0542db0"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/05c2523e-be40-4c63-8308-5379b9717a7c/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/05c2523e-be40-4c63-8308-5379b9717a7c.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> Basic layouts in Compose </h3> <p class="my-2 sm:s-p1 md:l-p2">Learn how to implement realistic and complex UI using Compose Layouts.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Beginner</span> <div class="h-translated-category" data-name="Android"> <span></span> </div> <span>Workshop</span> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="e0817116-8a2c-4717-af36-d8fd4cce7354" data-topic="["7e71258b-2ba6-4981-bcb9-6abfe678a99e"]" data-level="["adf1de38-22c0-468c-b9d6-13f77b33ea94"]" data-type="["b3e6963b-c3de-4283-beb1-eadbf0542db0"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/e0817116-8a2c-4717-af36-d8fd4cce7354/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/e0817116-8a2c-4717-af36-d8fd4cce7354.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> Build an event-driven orchestration with Eventarc and Workflows </h3> <p class="my-2 sm:s-p1 md:l-p2">Build an event-driven orchestration of microservices to process images with Eventarc and Workflows.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Intermediate</span> <div class="h-translated-category" data-name="Cloud"> <span></span> </div> <span>Workshop</span> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="1f4e53ce-285c-44bd-bc52-311560bc8b98" data-topic="["df1496a2-7f79-4179-a2ee-598511075c94"]" data-level="["adf1de38-22c0-468c-b9d6-13f77b33ea94"]" data-type="["b3e6963b-c3de-4283-beb1-eadbf0542db0"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/1f4e53ce-285c-44bd-bc52-311560bc8b98/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/1f4e53ce-285c-44bd-bc52-311560bc8b98.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> Build location-based AR experiences at world scale </h3> <p class="my-2 sm:s-p1 md:l-p2">Build location-based AR experiences at world scale with new ARCore APIs.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Intermediate</span> <span>Workshop</span> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="7e7738b5-6a2c-43d4-9dd4-17983766eb6e" data-topic="["4f7a4e03-99c1-4f0d-9652-9dae6ab6c921", "363d2624-03ed-4f53-b26f-a0954a422164", "1cf58852-f96e-4549-92c4-f02f47b941d7"]" data-level="["cf5c58e2-e753-4154-a232-1070156d40ef"]" data-type="["b3e6963b-c3de-4283-beb1-eadbf0542db0"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/7e7738b5-6a2c-43d4-9dd4-17983766eb6e/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/7e7738b5-6a2c-43d4-9dd4-17983766eb6e.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> Build more accessible Angular apps </h3> <p class="my-2 sm:s-p1 md:l-p2">Learn eight ways to improve web accessibility, and how frameworks like Angular improve development out of the box.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Beginner</span> <div class="h-translated-category" data-name="Accessibility"> <span></span> </div> <span> + 3 more </span> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="326ff4be-0930-4362-8b26-5931bb413764" data-topic="["7e71258b-2ba6-4981-bcb9-6abfe678a99e"]" data-level="["adf1de38-22c0-468c-b9d6-13f77b33ea94"]" data-type="["b3e6963b-c3de-4283-beb1-eadbf0542db0"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/326ff4be-0930-4362-8b26-5931bb413764/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/326ff4be-0930-4362-8b26-5931bb413764.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> Building AppSheet apps with the new Apps Script connector </h3> <p class="my-2 sm:s-p1 md:l-p2">Building connected AppSheet and Apps Script apps using AppSheet’s new Apps Script connector.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Intermediate</span> <div class="h-translated-category" data-name="Cloud"> <span></span> </div> <span>Workshop</span> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="95d82d1b-8cfe-4617-a9da-5806c72a4284" data-topic="["96a8382e-68d1-40b1-8fe8-c32eafe45327"]" data-level="["cf5c58e2-e753-4154-a232-1070156d40ef"]" data-type="["b3e6963b-c3de-4283-beb1-eadbf0542db0"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/95d82d1b-8cfe-4617-a9da-5806c72a4284/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/95d82d1b-8cfe-4617-a9da-5806c72a4284.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> Building an adaptive layout with SlidingPaneLayout </h3> <p class="my-2 sm:s-p1 md:l-p2">In this workshop you will learn how to build Adaptive Layouts with SlidingPaneLayout.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Beginner</span> <div class="h-translated-category" data-name="Android"> <span></span> </div> <span>Workshop</span> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="f50e5a3f-1714-4d3e-8363-9b079b73bef7" data-topic="["1cf58852-f96e-4549-92c4-f02f47b941d7"]" data-level="["adf1de38-22c0-468c-b9d6-13f77b33ea94"]" data-type="["b3e6963b-c3de-4283-beb1-eadbf0542db0"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/f50e5a3f-1714-4d3e-8363-9b079b73bef7/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/f50e5a3f-1714-4d3e-8363-9b079b73bef7.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> Create an instant and seamless web app </h3> <p class="my-2 sm:s-p1 md:l-p2">In this workshop you'll learn the latest browser APIs that make loading nearly instant and transition more seamless.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Intermediate</span> <div class="h-translated-category" data-name="Web"> <span></span> </div> <span>Workshop</span> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="ded16e9d-e304-4dba-b20e-71cb1cfc994d" data-topic="["5afad11a-da0a-4106-8b43-64356b68fa47"]" data-level="["cf5c58e2-e753-4154-a232-1070156d40ef"]" data-type="["b3e6963b-c3de-4283-beb1-eadbf0542db0"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/ded16e9d-e304-4dba-b20e-71cb1cfc994d/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/ded16e9d-e304-4dba-b20e-71cb1cfc994d.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> Customizing machine learning models: the easy way </h3> <p class="my-2 sm:s-p1 md:l-p2">Learn how to stand on the shoulders of giants, and customize their models with your data for your scenarios!</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Beginner</span> <span>Workshop</span> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="934cbc5f-42bb-4f6c-99fe-4972995eb381" data-topic="["5afad11a-da0a-4106-8b43-64356b68fa47", "7e71258b-2ba6-4981-bcb9-6abfe678a99e"]" data-level="["adf1de38-22c0-468c-b9d6-13f77b33ea94"]" data-type="["b3e6963b-c3de-4283-beb1-eadbf0542db0"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/934cbc5f-42bb-4f6c-99fe-4972995eb381/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/934cbc5f-42bb-4f6c-99fe-4972995eb381.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> Faster model training and experimentation with Vertex AI </h3> <p class="my-2 sm:s-p1 md:l-p2">Get hands-on experience with running large scale hyperparameter tuning and distributed training jobs on Vertex AI.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Intermediate</span> <div class="h-translated-category" data-name="Cloud"> <span></span> </div> <span>Workshop</span> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="0d911b1f-b810-49c8-a710-6d8c411b5147" data-topic="["96a8382e-68d1-40b1-8fe8-c32eafe45327", "340083e1-e7e2-4ffb-80a8-c4550775a884", "8f5bce97-22f3-4130-902f-ccdede6d2047"]" data-level="["adf1de38-22c0-468c-b9d6-13f77b33ea94"]" data-type="["b3e6963b-c3de-4283-beb1-eadbf0542db0"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/0d911b1f-b810-49c8-a710-6d8c411b5147/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/0d911b1f-b810-49c8-a710-6d8c411b5147.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> Integrate Android widgets with Google Assistant </h3> <p class="my-2 sm:s-p1 md:l-p2">Learn how to add voice functionality to your Android app’s widgets for both mobile and Android Auto.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Intermediate</span> <div class="h-translated-category" data-name="Android"> <span></span> </div> <span> + 3 more </span> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="4e3f50af-1adb-4cd2-bb5c-91c39374d89d" data-topic="["1cf58852-f96e-4549-92c4-f02f47b941d7"]" data-level="["cf5c58e2-e753-4154-a232-1070156d40ef"]" data-type="["b3e6963b-c3de-4283-beb1-eadbf0542db0"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/4e3f50af-1adb-4cd2-bb5c-91c39374d89d/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/4e3f50af-1adb-4cd2-bb5c-91c39374d89d.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> Introduction to Angular </h3> <p class="my-2 sm:s-p1 md:l-p2">In this workshop you'll learn how to develop multi-platform Web applications with Angular.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Beginner</span> <div class="h-translated-category" data-name="Web"> <span></span> </div> <span>Workshop</span> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="55a443cf-7807-4327-a24e-f7dd38ad18de" data-topic="["1cf58852-f96e-4549-92c4-f02f47b941d7"]" data-level="["adf1de38-22c0-468c-b9d6-13f77b33ea94"]" data-type="["b3e6963b-c3de-4283-beb1-eadbf0542db0"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/55a443cf-7807-4327-a24e-f7dd38ad18de/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/55a443cf-7807-4327-a24e-f7dd38ad18de.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> Measure performance with web-vitals.js, Google Analytics, and BigQuery </h3> <p class="my-2 sm:s-p1 md:l-p2">Measure Core Web Vitals in real time with web-vitals.js and Google Analytics, then analyze the results using BigQuery.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Intermediate</span> <div class="h-translated-category" data-name="Web"> <span></span> </div> <span>Workshop</span> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="11094c8f-f7c5-42a6-9e8f-df94e83f5d27" data-topic="["96a8382e-68d1-40b1-8fe8-c32eafe45327"]" data-level="["adf1de38-22c0-468c-b9d6-13f77b33ea94"]" data-type="["b3e6963b-c3de-4283-beb1-eadbf0542db0"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/11094c8f-f7c5-42a6-9e8f-df94e83f5d27/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/11094c8f-f7c5-42a6-9e8f-df94e83f5d27.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> Media streaming with ExoPlayer </h3> <p class="my-2 sm:s-p1 md:l-p2">Learn how to build a streaming media playback app using ExoPlayer.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Intermediate</span> <div class="h-translated-category" data-name="Android"> <span></span> </div> <span>Workshop</span> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="5ee21fc7-6374-47df-bc17-a29fdd53ce60" data-topic="["60ed9001-f01b-45d0-8983-6fb865378f70", "4f7a4e03-99c1-4f0d-9652-9dae6ab6c921"]" data-level="["adf1de38-22c0-468c-b9d6-13f77b33ea94"]" data-type="["b3e6963b-c3de-4283-beb1-eadbf0542db0"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/5ee21fc7-6374-47df-bc17-a29fdd53ce60/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/5ee21fc7-6374-47df-bc17-a29fdd53ce60.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> Migrating to variable fonts </h3> <p class="my-2 sm:s-p1 md:l-p2">Learn about why developers should care about variable fonts and best practices to implement them.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Intermediate</span> <div class="h-translated-category" data-name="Design"> <span></span> </div> <span> + 2 more </span> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="faf1074c-b0ed-468a-be21-feeb1cfad699" data-topic="["5afad11a-da0a-4106-8b43-64356b68fa47"]" data-level="["adf1de38-22c0-468c-b9d6-13f77b33ea94"]" data-type="["b3e6963b-c3de-4283-beb1-eadbf0542db0"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/faf1074c-b0ed-468a-be21-feeb1cfad699/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/faf1074c-b0ed-468a-be21-feeb1cfad699.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> Product fairness testing for developers </h3> <p class="my-2 sm:s-p1 md:l-p2">Walk through product fairness testing methods and responsible AI tools, from the technical and societal points of view.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Intermediate</span> <span>Workshop</span> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="8686d5f0-7a6a-4172-be5c-b028e3f86f73" data-topic="["7e71258b-2ba6-4981-bcb9-6abfe678a99e"]" data-level="["cf5c58e2-e753-4154-a232-1070156d40ef"]" data-type="["b3e6963b-c3de-4283-beb1-eadbf0542db0"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/8686d5f0-7a6a-4172-be5c-b028e3f86f73/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/8686d5f0-7a6a-4172-be5c-b028e3f86f73.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> Spring Native on GCP - what, when, and why? </h3> <p class="my-2 sm:s-p1 md:l-p2">Explore what Spring Native has to offer to Google Cloud users, what's new, and what these new features allow you to do.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Beginner</span> <div class="h-translated-category" data-name="Cloud"> <span></span> </div> <span>Workshop</span> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="c9768969-9e81-4865-9dff-29a2ab1201ea" data-topic="["96a8382e-68d1-40b1-8fe8-c32eafe45327"]" data-level="["adf1de38-22c0-468c-b9d6-13f77b33ea94"]" data-type="["b3e6963b-c3de-4283-beb1-eadbf0542db0"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/c9768969-9e81-4865-9dff-29a2ab1201ea/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/c9768969-9e81-4865-9dff-29a2ab1201ea.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> State in Jetpack Compose </h3> <p class="my-2 sm:s-p1 md:l-p2">Learn the core concepts related to using State in Jetpack Compose, to build rich and interactive Android apps.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Intermediate</span> <div class="h-translated-category" data-name="Android"> <span></span> </div> <span>Workshop</span> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="7508cd2e-a0a3-4190-adf0-961d21b2424e" data-topic="["4a3ba017-12d3-4226-b363-6e1138e92a7d", "60ed9001-f01b-45d0-8983-6fb865378f70", "8674160c-cb44-46f7-be94-b5a7360e3079", "96a8382e-68d1-40b1-8fe8-c32eafe45327"]" data-level="["adf1de38-22c0-468c-b9d6-13f77b33ea94"]" data-type="["b3e6963b-c3de-4283-beb1-eadbf0542db0"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/7508cd2e-a0a3-4190-adf0-961d21b2424e/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/7508cd2e-a0a3-4190-adf0-961d21b2424e.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> Take a Flutter app from boring to beautiful </h3> <p class="my-2 sm:s-p1 md:l-p2">Ever had a well-built app that looked drab? This workshop covers simple steps to turn boring into something beautiful!</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Intermediate</span> <div class="h-translated-category" data-name="Flutter"> <span></span> </div> <span> + 4 more </span> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="bb516805-1a32-4396-9b13-fedf635cbeb7" data-topic="["5afad11a-da0a-4106-8b43-64356b68fa47", "363d2624-03ed-4f53-b26f-a0954a422164", "1cf58852-f96e-4549-92c4-f02f47b941d7"]" data-level="["adf1de38-22c0-468c-b9d6-13f77b33ea94"]" data-type="["b3e6963b-c3de-4283-beb1-eadbf0542db0"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/bb516805-1a32-4396-9b13-fedf635cbeb7/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/bb516805-1a32-4396-9b13-fedf635cbeb7.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> Web ML: Transfer learning in JavaScript with TensorFlow.js </h3> <p class="my-2 sm:s-p1 md:l-p2">Make your own version of "Teachable Machine" that can leverage transfer learning in the browser to recognize anything!</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Intermediate</span> <div class="h-translated-category" data-name="Open Source"> <span></span> </div> <span> + 3 more </span> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> <div class="hover-outline mx-2 md:mx-0 session" data-session-id="eed4be55-068e-4cdd-b3e6-5cdd9ec5022f" data-topic="["4a3ba017-12d3-4226-b363-6e1138e92a7d"]" data-level="["adf1de38-22c0-468c-b9d6-13f77b33ea94"]" data-type="["b3e6963b-c3de-4283-beb1-eadbf0542db0"]" > <div class="w-full p-4 md:p-5"> <a role="listitem" href="/2022/program/eed4be55-068e-4cdd-b3e6-5cdd9ec5022f/" > <div class="w-full aspect-w-16 aspect-h-9 relative mb-5"> <img loading="lazy" role="img" aria-hidden="true" class="absolute h-full w-full object-cover rounded-xl" src="/2022/data/im/eed4be55-068e-4cdd-b3e6-5cdd9ec5022f.webp" /> </div> <div class="mb-4"> <h3 class="sm:s-h6 md:l-h6 font-medium my-2"> Write a Flutter desktop application </h3> <p class="my-2 sm:s-p1 md:l-p2">In this workshop, you'll build a Flutter desktop app that uses the GitHub REST API.</p> </div> </a> <div class="flex justify-between mt-auto"> <div class="card__keywords" aria-hidden="true"> <span>Intermediate</span> <div class="h-translated-category" data-name="Flutter"> <span></span> </div> <span>Workshop</span> </div> <div class="flex flex-1 justify-end gap-2 items-center"> </div> </div> </div> </div> </div> </div> <div class="h-filter-menu" data-learninglab=""> <div data-focus-guard tabIndex="-1" style="width: 1px; height: 0px; padding: 0px; overflow: hidden; position: fixed; top: 1px; left: 1px;"></div> <div data-focus-guard tabIndex="-1" style="width: 1px; height: 0px; padding: 0px; overflow: hidden; position: fixed; top: 1px; left: 1px;"></div> <div data-focus-lock-disabled="disabled"> <div class="block lg:hidden"> <div class="ml-5 md:ml-0 flex"> <div id="filter-drawer" aria-expanded="false" class="drawer-nav rounded-r-2xl relative border-2 border-solid border-grey-900 visually-hidden"> <button type="button" class="ml-auto z-50 p-3 absolute right-0 top-2.5" aria-label="Close"> <svg class="fill-current text-grey-900 dark:text-grey-200 w-6 h-6 forced-white-color" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="modal-close-icon"> <path d="M14.53 4.53l-1.06-1.06L9 7.94 4.53 3.47 3.47 4.53 7.94 9l-4.47 4.47 1.06 1.06L9 10.06l4.47 4.47 1.06-1.06L10.06 9z"></path> </svg> </button> <div> <div class="mt-5"> <h3 class="sm:l-p1 ml-5 font-medium"></h3> </div> <div id="topic-filters" class="filter-box__items" role="list"> <label class="filter-box__item" for="4f7a4e03-99c1-4f0d-9652-9dae6ab6c921"> <input type="checkbox" data-mobile-classification="4f7a4e03-99c1-4f0d-9652-9dae6ab6c921" /> <span class="sm:l-cta2 ml-2.5 dark:text-grey-200"> <span>Accessibility</span> </span> </label> <label class="filter-box__item" for="a31f0e69-9707-41d4-9a1d-6bda74f7d9c9"> <input type="checkbox" data-mobile-classification="a31f0e69-9707-41d4-9a1d-6bda74f7d9c9" /> <span class="sm:l-cta2 ml-2.5 dark:text-grey-200"> <span>Ads</span> </span> </label> <label class="filter-box__item" for="5afad11a-da0a-4106-8b43-64356b68fa47"> <input type="checkbox" data-mobile-classification="5afad11a-da0a-4106-8b43-64356b68fa47" /> <span class="sm:l-cta2 ml-2.5 dark:text-grey-200"> <span>Machine Learning</span> </span> </label> <label class="filter-box__item" for="96a8382e-68d1-40b1-8fe8-c32eafe45327"> <input type="checkbox" data-mobile-classification="96a8382e-68d1-40b1-8fe8-c32eafe45327" /> <span class="sm:l-cta2 ml-2.5 dark:text-grey-200"> <span>Android</span> </span> </label> <label class="filter-box__item" for="df1496a2-7f79-4179-a2ee-598511075c94"> <input type="checkbox" data-mobile-classification="df1496a2-7f79-4179-a2ee-598511075c94" /> <span class="sm:l-cta2 ml-2.5 dark:text-grey-200"> <span>Augmented Reality</span> </span> </label> <label class="filter-box__item" for="5e8f505e-5ce1-428d-ac5f-f7deafd0dbae"> <input type="checkbox" data-mobile-classification="5e8f505e-5ce1-428d-ac5f-f7deafd0dbae" /> <span class="sm:l-cta2 ml-2.5 dark:text-grey-200"> <span>Chrome OS</span> </span> </label> <label class="filter-box__item" for="7e71258b-2ba6-4981-bcb9-6abfe678a99e"> <input type="checkbox" data-mobile-classification="7e71258b-2ba6-4981-bcb9-6abfe678a99e" /> <span class="sm:l-cta2 ml-2.5 dark:text-grey-200"> <span>Cloud</span> </span> </label> <label class="filter-box__item" for="60ed9001-f01b-45d0-8983-6fb865378f70"> <input type="checkbox" data-mobile-classification="60ed9001-f01b-45d0-8983-6fb865378f70" /> <span class="sm:l-cta2 ml-2.5 dark:text-grey-200"> <span>Design</span> </span> </label> <label class="filter-box__item" for="e7c8b34e-7169-44c1-a43e-0cf66f9c4a14"> <input type="checkbox" data-mobile-classification="e7c8b34e-7169-44c1-a43e-0cf66f9c4a14" /> <span class="sm:l-cta2 ml-2.5 dark:text-grey-200"> <span>Firebase</span> </span> </label> <label class="filter-box__item" for="4a3ba017-12d3-4226-b363-6e1138e92a7d"> <input type="checkbox" data-mobile-classification="4a3ba017-12d3-4226-b363-6e1138e92a7d" /> <span class="sm:l-cta2 ml-2.5 dark:text-grey-200"> <span>Flutter</span> </span> </label> <label class="filter-box__item" for="d140520d-5889-491b-bce7-32db0a33147e"> <input type="checkbox" data-mobile-classification="d140520d-5889-491b-bce7-32db0a33147e" /> <span class="sm:l-cta2 ml-2.5 dark:text-grey-200"> <span>Gaming</span> </span> </label> <label class="filter-box__item" for="8f5bce97-22f3-4130-902f-ccdede6d2047"> <input type="checkbox" data-mobile-classification="8f5bce97-22f3-4130-902f-ccdede6d2047" /> <span class="sm:l-cta2 ml-2.5 dark:text-grey-200"> <span>Google Assistant</span> </span> </label> <label class="filter-box__item" for="aba087d1-36bd-432b-8151-1965e66f9adc"> <input type="checkbox" data-mobile-classification="aba087d1-36bd-432b-8151-1965e66f9adc" /> <span class="sm:l-cta2 ml-2.5 dark:text-grey-200"> <span>Google Play</span> </span> </label> <label class="filter-box__item" for="539010b0-4b1b-475b-a752-48a5ffc49458"> <input type="checkbox" data-mobile-classification="539010b0-4b1b-475b-a752-48a5ffc49458" /> <span class="sm:l-cta2 ml-2.5 dark:text-grey-200"> <span>Growth</span> </span> </label> <label class="filter-box__item" for="3519e67b-2c34-48e6-95e5-1b526005a314"> <input type="checkbox" data-mobile-classification="3519e67b-2c34-48e6-95e5-1b526005a314" /> <span class="sm:l-cta2 ml-2.5 dark:text-grey-200"> <span>Internet of Things (IoT)</span> </span> </label> <label class="filter-box__item" for="8674160c-cb44-46f7-be94-b5a7360e3079"> <input type="checkbox" data-mobile-classification="8674160c-cb44-46f7-be94-b5a7360e3079" /> <span class="sm:l-cta2 ml-2.5 dark:text-grey-200"> <span>iOS</span> </span> </label> <label class="filter-box__item" for="3f8f07f0-158d-423a-82cf-4a3d6f5ef970"> <input type="checkbox" data-mobile-classification="3f8f07f0-158d-423a-82cf-4a3d6f5ef970" /> <span class="sm:l-cta2 ml-2.5 dark:text-grey-200"> <span>Location/Maps</span> </span> </label> <label class="filter-box__item" for="340083e1-e7e2-4ffb-80a8-c4550775a884"> <input type="checkbox" data-mobile-classification="340083e1-e7e2-4ffb-80a8-c4550775a884" /> <span class="sm:l-cta2 ml-2.5 dark:text-grey-200"> <span>Mobile</span> </span> </label> <label class="filter-box__item" for="363d2624-03ed-4f53-b26f-a0954a422164"> <input type="checkbox" data-mobile-classification="363d2624-03ed-4f53-b26f-a0954a422164" /> <span class="sm:l-cta2 ml-2.5 dark:text-grey-200"> <span>Open Source</span> </span> </label> <label class="filter-box__item" for="12181a93-dba8-42f6-a357-072f4e2da10d"> <input type="checkbox" data-mobile-classification="12181a93-dba8-42f6-a357-072f4e2da10d" /> <span class="sm:l-cta2 ml-2.5 dark:text-grey-200"> <span>Payments</span> </span> </label> <label class="filter-box__item" for="7fe5dbfe-13d5-4386-9af7-3fd87beb7219"> <input type="checkbox" data-mobile-classification="7fe5dbfe-13d5-4386-9af7-3fd87beb7219" /> <span class="sm:l-cta2 ml-2.5 dark:text-grey-200"> <span>Search</span> </span> </label> <label class="filter-box__item" for="ad07cc5e-42b4-4636-9118-80fa9f797093"> <input type="checkbox" data-mobile-classification="ad07cc5e-42b4-4636-9118-80fa9f797093" /> <span class="sm:l-cta2 ml-2.5 dark:text-grey-200"> <span>Smart Home</span> </span> </label> <label class="filter-box__item" for="9d3b7d5c-d26e-4016-b863-ead7dabfcae4"> <input type="checkbox" data-mobile-classification="9d3b7d5c-d26e-4016-b863-ead7dabfcae4" /> <span class="sm:l-cta2 ml-2.5 dark:text-grey-200"> <span>Wear OS</span> </span> </label> <label class="filter-box__item" for="1cf58852-f96e-4549-92c4-f02f47b941d7"> <input type="checkbox" data-mobile-classification="1cf58852-f96e-4549-92c4-f02f47b941d7" /> <span class="sm:l-cta2 ml-2.5 dark:text-grey-200"> <span>Web</span> </span> </label> </div> <button class="flex items-center ml-5 mb-5" aria-expanded="false"> <svg class="chevron fill-grey-900 dark:fill-grey-200 forced-white-color" style="transform: unset;" aria-hidden="true" width="24" height="24" xmlns="http://www.w3.org/2000/svg"> <path d="M17.363 8.58a.75.75 0 1 1 1.05 1.07l-5.745 5.62a1 1 0 0 1-1.555 0l-5.75-5.62a.75.75 0 0 1 1.05-1.07l5.5 5.354 5.45-5.354Z"></path> </svg> <span class="more ml-4 sm:l-cta2 text-blue font-medium"> <span class="sr-only"></span> <span aria-hidden="true"></span> </span> </button> </div> <div> <div> <div> <h3 class="sm:l-p1 ml-5 font-medium"></h3> </div> <div class="filter-box__items" role="list"> <label class="filter-box__item" for="cf5c58e2-e753-4154-a232-1070156d40ef"> <input type="checkbox" data-mobile-classification="cf5c58e2-e753-4154-a232-1070156d40ef" /> <span class="sm:l-cta2 ml-2.5 dark:text-grey-200"></span> </label> <label class="filter-box__item" for="adf1de38-22c0-468c-b9d6-13f77b33ea94"> <input type="checkbox" data-mobile-classification="adf1de38-22c0-468c-b9d6-13f77b33ea94" /> <span class="sm:l-cta2 ml-2.5 dark:text-grey-200"></span> </label> <label class="filter-box__item" for="b4014b37-565f-475e-b5f4-8cfeee4f3586"> <input type="checkbox" data-mobile-classification="b4014b37-565f-475e-b5f4-8cfeee4f3586" /> <span class="sm:l-cta2 ml-2.5 dark:text-grey-200"></span> </label> </div> </div> <div> <div> <h3 class="sm:l-p1 ml-5 font-medium"></h3> </div> <div class="filter-box__items" role="list"> <label class="filter-box__item" for="keynote-filter"> <input type="checkbox" data-mobile-classification="keynote-filter" /> <span class="sm:l-cta2 ml-2.5 dark:text-grey-200"></span> </label> <label class="filter-box__item" for="b3e6963b-c3de-4283-beb1-eadbf0542db0"> <input type="checkbox" data-mobile-classification="b3e6963b-c3de-4283-beb1-eadbf0542db0" /> <span class="sm:l-cta2 ml-2.5 dark:text-grey-200"></span> </label> <label class="filter-box__item" for="590ed748-cc8b-4b16-b872-2b632222a575"> <input type="checkbox" data-mobile-classification="590ed748-cc8b-4b16-b872-2b632222a575" /> <span class="sm:l-cta2 ml-2.5 dark:text-grey-200"></span> </label> </div> </div> </div> </div> <div class="drawer-mask visually-hidden"></div> </div> </div> </div> <div data-focus-guard tabIndex="-1" style="width: 1px; height: 0px; padding: 0px; overflow: hidden; position: fixed; top: 1px; left: 1px;"></div> </div> <script nonce="5fOvAG9g43A3fHVzxu1OUQ"> (function() { const toggles = Array.from(document.querySelectorAll('.filter-box__chevron')); for (const el of toggles) { el.addEventListener('click', (event) => { if (event.currentTarget.parentNode instanceof HTMLElement) { const isHidden = event.currentTarget.parentNode.nextElementSibling.style.display === 'none'; event.currentTarget.parentNode.nextElementSibling.style.display = isHidden ? 'block' : 'none'; event.currentTarget.parentNode.style.borderBottom = isHidden ? '2px solid #202124' : 'unset'; event.currentTarget.style.transform = isHidden ? 'unset' : 'scaleY(-1)'; toggleAriaExpandedAttribute(event.currentTarget, isHidden); } }); } function toggleAriaExpandedAttribute(element, isHidden) { element.setAttribute("aria-expanded", isHidden); } })(); </script> </main> </div> </div> <footer class="pt-10 pb-16 lg:py-10 px-7 lg:px-16 bg-grey-900 flex flex-col lg:flex-row lg:justify-between lg:items-center w-max-full" > <div class="flex flex-col lg:flex-row items-start lg:items-center space-y-6 lg:space-y-0 lg:space-x-6 text-grey-500 text-[16px] font-medium flex-1" > <div class="text-2xl font-semibold lg:mr-12 text-grey-500 flex justify-between w-full mb-4 lg:mb-0 lg:w-16" > <a href="/2022/" alt="Google Homepage">Google</a> <div class="lg:hidden"> <div class="h-theme-toggle"> <button aria-label="Toggle Dark Mode" role="button" tabIndex="0"> <svg width="24" height="24" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M12 3a.75.75 0 0 1-.75-.75V.75a.75.75 0 1 1 1.5 0v1.5A.75.75 0 0 1 12 3ZM5.105 5.855a.755.755 0 0 1-.53-.22L3.5 4.575A.76.76 0 0 1 4.575 3.5l1.06 1.06a.745.745 0 0 1 0 1.06.755.755 0 0 1-.53.235ZM12 19.5A7.5 7.5 0 0 1 6.693 6.695a.76.76 0 0 1 .71-.2.745.745 0 0 1 .535.5 16.1 16.1 0 0 0 9.116 9.085.75.75 0 0 1 .25 1.225 7.454 7.454 0 0 1-5.306 2.195ZM7 8.67A6 6 0 0 0 15.364 17 17.56 17.56 0 0 1 7 8.67ZM18.33 15.08a.791.791 0 0 1-.26-.045.755.755 0 0 1-.444-.965A5.934 5.934 0 0 0 18 12a6 6 0 0 0-6-6c-.707 0-1.408.128-2.07.375a.75.75 0 0 1-.94-1.018.76.76 0 0 1 .42-.392 7.5 7.5 0 0 1 9.625 9.625.76.76 0 0 1-.705.49ZM2.25 12.75H.75a.75.75 0 1 1 0-1.5h1.5a.75.75 0 1 1 0 1.5ZM4.046 20.705A.755.755 0 0 1 3.5 20.5a.745.745 0 0 1 0-1.06l1.06-1.06a.75.75 0 1 1 1.06 1.06L4.576 20.5a.755.755 0 0 1-.53.205ZM12 24a.75.75 0 0 1-.75-.75v-1.5a.75.75 0 1 1 1.5 0v1.5A.75.75 0 0 1 12 24ZM19.955 20.705a.755.755 0 0 1-.53-.205l-1.06-1.06a.75.75 0 0 1 1.06-1.06l1.075 1.045a.745.745 0 0 1-.252 1.232.757.757 0 0 1-.293.048ZM23.25 12.75h-1.5a.75.75 0 1 1 0-1.5h1.5a.75.75 0 1 1 0 1.5ZM18.896 5.855a.755.755 0 0 1-.752-.75.745.745 0 0 1 .222-.53l1.06-1.075a.76.76 0 1 1 1.075 1.075l-1.06 1.06a.755.755 0 0 1-.545.22Z" fill="#80868B"></path> </svg> </button> </div> </div> </div> <a href="https://io.google/2021" target="_blank" rel="noreferrer noopener">I/O 2021</a> <p><a href="https://io.google/2022/svd/playground/">I/O Playground</a></p> <a href="https://policies.google.com/" target="_blank" rel="noreferrer noopener"> Privacy & Terms </a> <a href="https://developers.google.com/community-guidelines" target="_blank" rel="noreferrer noopener" > Community guidelines </a> <a href="/2022/faq/">FAQ</a> <div class="h-choose-language" data-in-footer="True"> <select name="language-select" alt class="sm:l-cta2 ml:s-button-default font-medium language-select bg-white dark:bg-grey-900 text-grey-900 dark:text-white w-full border-none pl-0 ml:w-32 ml:ml-4 language-nav"> <option selected value="en"></option> <option value="es"></option> <option value="pt"></option> <option value="fr"></option> <option value="id"></option> <option value="ko"></option> <option value="zh"></option> <option value="ja"></option> </select> <div style="z-index: 10;" class="absolute invisible"> <div class="bg-white dark:bg-grey-900 dark:text-grey-200 border-2 border-grey-900 dark:border-grey-200 text-grey-900 sm:l-cta2 font-medium p-2 pr-6 w-full"> <span></span> <button type="button" class="absolute top-0 bottom-0" aria-label="Close"> <svg class="fill-current dark:fill-white text-grey-900 w-6 h-6 forced-white-color" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18"> <path d="m14.53 4.53-1.06-1.06L9 7.94 4.53 3.47 3.47 4.53 7.94 9l-4.47 4.47 1.06 1.06L9 10.06l4.47 4.47 1.06-1.06L10.06 9z"></path> </svg> </button> </div> <svg width="32" height="20" viewBox="-2 -2 37 28" fill="none" xmlns="http://www.w3.org/2000/svg" style="bottom: -18px; transform: scale(1, -1); right: 80px;" aria-hidden="true" class="absolute block dark:hidden hcm-hidden"> <g id="Polygon 1"> <path d="M0.138981 4.44226C0.0834319 1.0678 3.97439 -0.854559 6.62079 1.23988L35.9246 24.4317C37.4112 25.6083 36.5792 28 34.6834 28L2.49412 28C1.40238 28 0.512363 27.1245 0.494394 26.0329L0.138981 4.44226Z" fill="currentColor" stroke="#202124" stroke-width="2.5" mask="url(#path-1-inside-1_0_1)" class="arrow-white"></path> </g> </svg> <svg width="32" height="20" viewBox="-2 -2 37 28" fill="none" xmlns="http://www.w3.org/2000/svg" style="bottom: -18px; transform: scale(1, -1); right: 80px;" aria-hidden="true" class="absolute hidden dark:block hcm-block"> <g id="Polygon 1"> <path d="M0.138981 4.44226C0.0834319 1.0678 3.97439 -0.854559 6.62079 1.23988L35.9246 24.4317C37.4112 25.6083 36.5792 28 34.6834 28L2.49412 28C1.40238 28 0.512363 27.1245 0.494394 26.0329L0.138981 4.44226Z" fill="currentColor" stroke="#E8EAED" stroke-width="2.5" mask="url(#path-1-inside-1_0_1)" class="arrow-white"></path> </g> </svg> </div> </div> </div> <div class="flex space-x-6 lg:justify-self-end lg:justify-end mt-12 lg:mt-0"> <a href="https://twitter.com/googledevs" target="_blank" rel="noreferrer noopener" aria-label="Google Developers on Twitter" > <img src="/2022/app/images/ic_twitter.svg" role="img" aria-hidden="true" height="24" width="24" /> </a> <a href="https://www.facebook.com/googledevelopers/" target="_blank" rel="noreferrer noopener" aria-label="Google Developers on Facebook" > <img src="/2022/app/images/ic_facebook.svg" role="img" aria-hidden="true" height="24" width="24" /> </a> <a href="https://developers.google.com/" target="_blank" rel="noreferrer noopener" aria-label="Google Developers Homepage" > <img src="/2022/app/images/ic_googledev.svg" role="img" aria-hidden="true" height="24" width="24" /> </a> <a href="https://www.youtube.com/user/GoogleDevelopers" target="_blank" rel="noreferrer noopener" aria-label="Google Developers on YouTube" > <img src="/2022/app/images/ic_youtube.svg" role="img" aria-hidden="true" height="24" width="24" /> </a> <a href="https://medium.com/google-developers" target="_blank" rel="noreferrer noopener" aria-label="Google Developers on Medium" > <img src="/2022/app/images/ic_medium.svg" role="img" aria-hidden="true" height="24" width="24" /> </a> <div class="hidden lg:block"> <div class="h-theme-toggle"> <button aria-label="Toggle Dark Mode" role="button" tabIndex="0"> <svg width="24" height="24" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M12 3a.75.75 0 0 1-.75-.75V.75a.75.75 0 1 1 1.5 0v1.5A.75.75 0 0 1 12 3ZM5.105 5.855a.755.755 0 0 1-.53-.22L3.5 4.575A.76.76 0 0 1 4.575 3.5l1.06 1.06a.745.745 0 0 1 0 1.06.755.755 0 0 1-.53.235ZM12 19.5A7.5 7.5 0 0 1 6.693 6.695a.76.76 0 0 1 .71-.2.745.745 0 0 1 .535.5 16.1 16.1 0 0 0 9.116 9.085.75.75 0 0 1 .25 1.225 7.454 7.454 0 0 1-5.306 2.195ZM7 8.67A6 6 0 0 0 15.364 17 17.56 17.56 0 0 1 7 8.67ZM18.33 15.08a.791.791 0 0 1-.26-.045.755.755 0 0 1-.444-.965A5.934 5.934 0 0 0 18 12a6 6 0 0 0-6-6c-.707 0-1.408.128-2.07.375a.75.75 0 0 1-.94-1.018.76.76 0 0 1 .42-.392 7.5 7.5 0 0 1 9.625 9.625.76.76 0 0 1-.705.49ZM2.25 12.75H.75a.75.75 0 1 1 0-1.5h1.5a.75.75 0 1 1 0 1.5ZM4.046 20.705A.755.755 0 0 1 3.5 20.5a.745.745 0 0 1 0-1.06l1.06-1.06a.75.75 0 1 1 1.06 1.06L4.576 20.5a.755.755 0 0 1-.53.205ZM12 24a.75.75 0 0 1-.75-.75v-1.5a.75.75 0 1 1 1.5 0v1.5A.75.75 0 0 1 12 24ZM19.955 20.705a.755.755 0 0 1-.53-.205l-1.06-1.06a.75.75 0 0 1 1.06-1.06l1.075 1.045a.745.745 0 0 1-.252 1.232.757.757 0 0 1-.293.048ZM23.25 12.75h-1.5a.75.75 0 1 1 0-1.5h1.5a.75.75 0 1 1 0 1.5ZM18.896 5.855a.755.755 0 0 1-.752-.75.745.745 0 0 1 .222-.53l1.06-1.075a.76.76 0 1 1 1.075 1.075l-1.06 1.06a.755.755 0 0 1-.545.22Z" fill="#80868B"></path> </svg> </button> </div> </div> </div> <div id="modal-root"></div> </footer> <script nonce="5fOvAG9g43A3fHVzxu1OUQ"> window.iodata = {}; window.iodata.creds = {}; window.iodata.phase = "archive" window.iodata.public_keys = { oauth2_client_id: "939241467330-27mg9ncg15g4d4gn2h0oms4hmlcs75eb.apps.googleusercontent.com", oauth2_api_key: "AIzaSyDY1ocUZfhUxatDVTtjhnSz1zsscAhb58M", youtube_api_key: "AIzaSyDm7fLmqyheYCs3rt4O24QA2BrASt2vYVU", googlemaps_api_key: "AIzaSyCLHGxGYOstUBz__1sj9-EmX09s4GRurv8", devprofiles_endpoint: "https://staging-developers.sandbox.googleapis.com" }; window.iodata.apis = { basePath: "/", users: "//cgi-bin/users.aspx", reservations: "//cgi-bin/reservations.aspx", capacity: "//cgi-bin/capacity.aspx", keynoteStatus: "/2022/data/keynote-status.json", }; window.iodata.gdg_gdsc = "/2022/data/gdg-gdsc.json"; window.iodata.sessions = "/data/ep_topics2.json"; window.iodata.sessions_new = "/2022/data/ep_bookmap.json"; window.iodata.content_paths = "/2022/data/external.json"; window.iodata.session_categories = "/2022/data/ep_categories.json"; // Move into own file if this get huge window.translations = { missing_copy: `[INVALID_KEY en/missing_copy]`, global_modals_product_altheadline_almosttime: `It's almost time`, home_a_metadatadesc_googleio: `I/O: Live From Shoreline. Join Online May 11-12, 2022.`, home_a_herocountdown_itsalmosttime3_hidden: `Join us May 11-12, 2022.`, home_ns_countdownclock_days: `Days`, home_ns_countdownclock_day: `Day`, home_ns_countdownclock_hours: `Hours`, home_ns_countdownclock_hour: `Hour`, home_ns_countdownclock_minutes: `Minutes`, home_ns_countdownclock_minute: `Minute`, home_ns_countdownclock_seconds: `Seconds`, home_ns_countdownclock_second: `Second`, home_a_herocountdown_body_exploretheprogram: `Explore the program to find and save keynotes, sessions, and workshops.`, home_a_herocta_seetheprogram: `See the program`, home_a_accessibility_label: `Countdown to I/O 2022:`, home_a_herocountdown_pauseanimation: `pause animation`, home_a_herocountdown_playanimation: `play animation`, home_a_herocountdown_muteaudio: `mute audio`, home_s_r_d_herocountdown_register: `Now that you've registered, use your profile for content recommendations and track progress during and after the event.`, home_a_herocountdown_playaudio: `play audio`, home_a_herocountdown_enterfullscreenmode: `enter full screen mode`, home_a_herocountdown_exitfullscreenmode: `exit full screen mode`, home_a_herocountdown_timeleftuntil: `Time left until I/O`, home_s_r_d_herocountdown_explorenear: `Explore developer communities near you`, home_s_r_nd_herocountdowncopy_devprofile_registered: `Now that you've registered, create a developer profile for content recommendations, to get additional access across the site, and to start earning badges!`, global_modals_all_r_nd_createadevprof: `Create a developer profile`, global_register: `Register`, global_googlesign: `Sign In`, global_modals_product_altheadline_almosttime: `It's almost time`, global_modals_adv_adventure: `I/O Adventure goes live during the event`, global_modals_adv_nr_exploreproddemos: `<p>Get ready to explore product zones, earn badges, search for easter eggs, collect virtual swag, and engage with the developer community. </p> <p>Access all functionality in I/O Adventure when you log in with your developer profile. For the best event experience, register with the email associated with your profile. Don't have a profile? Create one after you register.</p>`, global_modals_learninglab_headline2_learninglab: `Learning Lab goes live during I/O`, global_modals_learninglab_nr_body_learngoogletech: `<p>Learn Google technology. Grow your knowledge and skills with workshops, tutorials, codelabs, and more during I/O. </p> <p>Register with the email associated with your developer profile to earn badges along the way. Don't have a profile? Create one after you register.</p>`, global_modals_product_headline_products: `Products go live before I/O starts`, global_modals_product_nr_body_findthelatest: `<p>Find the latest news and announcements for the Google technologies you love before I/O and be on the lookout for special badges. </p> <p>Save and access sessions and resources after I/O when you register with the Google account associated with your developer profile. Don't have a profile? Create one after you register.</p>`, global_modals_program_headline: `The program goes live before I/O starts`, global_modals_program_nr_body_seetheprogram: `<p>See the 2022 program including keynotes, sessions, and more before I/O. </p> <p>Register for the event and create a developer profile to get personalized recommendations and save content to build your virtual schedule.</p>`, global_cookie_body: `This site uses cookies from Google to deliver its services and to analyze traffic.`, global_cookie_modals_learnmore: `Learn more`, global_cookie_accept_btn: `Okay, got it`, global_irl_inpersonenglishonly: `In-person content is available in English only`, community_s_r_d_searchbaralt_locationupdated: `Make sure your location is up to date`, community_s_r_nd_searchbaralt_entercitytown: `Enter a city/town`, community_ns_searchbaralt_searchforcity: `Search a city/town for a group near you`, community_s_r_d_searchbar_editlocationwithdev: `Edit your location in your developer profile`, community_s_r_nd_searchbar_enterlocation: `Enter your location`, community_ns_searchbar_searchforcity: `Search for a city/town to find a community near you`, community_a_locationerror_noresults: `No results`, community_d_newprofile_savelocation_modal3_savelocation: `Save your location`, community_a_locationgroup_alt3_joinchapter: `Join chapter`, community_d_newprofile_createheader_modal2_thankyou: `Thanks for creating a developer profile`, community_d_newprofile_createbody_modal2_nicework: `Nice work! You now have access to recommended content and can save sessions, earn badges, and more.`, community_d_newprofile_createctaalt_modal2_visitdevprof: `Visit your developer profile`, community_d_newprofile_createctaalt_modal2_visitdevprof_alt: `[INVALID_KEY en/community_d_newprofile_createctaalt_modal2_visitdevprof_alt]`, global_modals_all_r_nd_createadevprof: `Create a developer profile`, global_modals_all_r_nd_createadevprof_aria: `[INVALID_KEY en/global_modals_all_r_nd_createadevprof_aria]`, community_nd_createbody_modal1_creatingaprofile_title: `Create a developer profile to save your location and get recommended nearby events.`, global_nd_creatingaprofile_reccomendations: `Create a developer profile to get recommendations for the best I/O sessions and content for you. You can also use your profile to save sessions to watch after the keynote, earn badges, and more.`, community_nd_body_devprofile_optinlegalagreement: `By creating a developer profile, you agree to the [Content Policy](https://developers.google.com/profile/content-policy). [Google's Terms of Service](https://policies.google.com/terms) and [Privacy Policy](https://policies.google.com/privacy) apply to your use of this service. Your display name and location will be used in your Google Developer profile.`, global_nd_createprofile: `Create profile`, global_nd_createprofile_alt: `Create profile`, global_a_nothanks: `[INVALID_KEY en/global_a_nothanks_alt]`, community_d_newprofile_successsaved: `Location saved!`, community_d_newprofile_locationupdate: `Your location, [[ city ]], [[ state ]], has been updated to your developer profile.`, community_d_newprofile_cta1_gotit: `Got it`, community_d_newprofile_cta2_goback: `Go back`, community_d_newprofile_savelocation_modal3_body_nearbyevents: `Can we save your location on your developer profile? We'll use this to recommend nearby events.`, community_d_body_devprofile_updateprofileandsavelocation: `By selecting "Update profile," you agree to update your location on your Google Developer profile. If your profile privacy is currently set to public, this information will also be public.`, community_d_newprofile_savelocation_modal3_cta1_save: `Update profile`, community_d_newprofile_savelocation_modal3_cta1_save_alt: `[INVALID_KEY en/community_d_newprofile_savelocation_modal3_cta1_save_alt]`, global_a_nothanks: `No thanks`, global_modals_all_r_nd_createadevprof: `Create a developer profile`, global_register: `Register`, global_register_alt: `[INVALID_KEY en/global_register_alt]`, community_ns_banner_community_aria: `global community`, global_register: `Register`, global_profilecard_privacypolicy: `[Privacy Policy](https://policies.google.com/privacy)`, global_profilecard_terms: `[Terms of Service](http://myaccount.google.com/termsofservice)`, global_googlesignout: `Sign out`, global_profilecard_manage: `Manage your Google Account`, learninglab_a_filters_headline: `Filters`, global_tooltip_signin: `For the best experience, register with the Google account associated with your developer profile and grant permission to access your profile information.`, devprofile_somethingwentwrong: `Uh oh, something went wrong.`, devprofile_useraccounttype_error: `The user account type is not allowed.`, devprofile_learnmore_placeholder: `To learn more or get help, visit the [FAQ](/faq/).`, global_unabletosignin_whoops: `Whoops! Unable to sign in`, global_unabletosignin_toregister: `To register, grant permission to view, edit, and create your Google Developer profile.`, homepagePath: `/`, nt_global_restricted_headline: `Something's not right`, nt_global_restricted_copy: `It looks like you don't have access to this page.`, nt_global_restricted_cta: `Return home`, about_a_io21recap_cta: `[Watch the recap](https://io.google/2021)`, about_a_io21recap_cta_alt: `Link for Google I/O 2021 recap`, home_recapmodule_cta_io2022recap: `[Watch the I/O 2022 recap](https://www.youtube.com/watch?v=CWTm0ccfZe4&list=TLGGLYR0fesogp0xMjA1MjAyMg)`, home_recapmodule_headline_io2022recap: `I/O '22 recap`, community_a_secondarycta_seeallcomms: `[See all communities](https://developers.google.com/community)`, community_a_f2_cta_findstudentclub: `[Find a Google Developer Student Club](https://developers.google.com/community/gdsc?utm_source=gdsc&utm_medium=embedded_marketing&utm_campaign=&utm_content=)`, community_a_f3_cta_findgoogledevgroup: `[Find a Google Developer Group](https://developers.google.com/community/gdg?utm_source=gdg&utm_medium=embedded_marketing&utm_campaign=&utm_content=)`, community_a_f3_ctaalt_opengoogledevgroup: `Opens Google Developer Groups`, community_a_f1_cta_join: `[Join Women Techmakers](https://www.womentechmakers.com/members?utm_source=wtm&utm_medium=embedded_marketing&utm_campaign=&utm_content=)`, community_a_f1_ctaalt_openwomen: `Opens Women Techmakers`, community_a_googledeveloperexperts_cta: `[Learn more](https://developers.google.com/community/experts?utm_source=gde&utm_medium=embedded_marketing&utm_campaign=&utm_content=)`, community_a_accelerators_cta: `[Learn more](https://developers.google.com/community/accelerators?utm_source=gsa&utm_medium=embedded_marketing&utm_campaign=&utm_content=)`, community_a_googlecodingcomp_cta: `[Learn more](https://codingcompetitions.withgoogle.com?utm_source=gdg&utm_medium=embedded_marketing&utm_campaign=&utm_content=)`, global_languagedrop_english: `English`, global_languagedrop_spanish: `Spanish`, global_languagedrop_portuguese: `Portuguese`, global_languagedrop_french: `French`, global_languagedrop_chinese: `Chinese`, global_languagedrop_indonesian: `Indonesian`, global_languagedrop_korean: `Korean`, global_languagedrop_japanese: `Japanese`, nt_global_registerinpersoncomplete_headline: `You are registered to attend I/O at Shoreline`, nt_global_registerinpersoncomplete_body: `Sign in to receive a badge`, nt_global_registerinpersoncomplete_signin_cta: `Sign in`, home_a_getready_registertip_forthebestexperience: `[INVALID_KEY en/home_a_getready_registertip_forthebestexperience]`, reg_metadatatitle_registerforio: `Register for Google I/O 2022`, global_modals_all_r_nd_createadevprof: `Create a developer profile`, home_a_getready_cta_registerforgoogle: `[INVALID_KEY en/home_a_getready_cta_registerforgoogle]`, home_a_getready_cta_createadevprofile: `[INVALID_KEY en/home_a_getready_cta_createadevprofile]`, home_a_getready_title_addfirebase: `Add Firebase to your Flutter app`, home_a_getready_title_appcheck: `Protect your app from abuse with App Check`, home_a_getready_title_ondevicemachinelearning: `On-device machine learning: visual product search`, home_a_getready_title_jetpack: `Jetpack Compose`, global_a_badges_cta_complete: `Completed`, home_a_learninglab_tips_earnthisbadge: `Earn this badge`, home_a_getready_cta_solveapuzzle: `Until the event starts, try solving this year's puzzle.`, nt_language_english: `English`, nt_language_spanish: `Español`, nt_language_portugese: `Português`, nt_language_french: `Français`, nt_language_chinese: `中文`, nt_language_indonesian: `Indonesia`, nt_language_korean: `한국어`, nt_language_japanese: `日本語`, nt_global_registerinpersoncomplete_headline: `You are registered to attend I/O at Shoreline`, nt_global_registerinpersoncomplete_body: `Sign in to receive a badge`, nt_global_registerinpersoncomplete_signin_cta: `Sign in`, home_a_keynote_cta_seefullprogram: `See full program`, home_a_keynote_cta_registernow: `Register now`, home_a_keynote_tooltip_registerwithgoogle: `Tip: For the best experience, register with the Google account associated with your developer profile.`, home_a_keynote_cta_tooltip_createdevprofile: `Tip: Create a developer profile for content recommendations, additional access across the site, and to earn badges!`, home_a_keynote_cta_seefullprogram: `See full program`, global_a_filters_clearall: `Clear all`, global_a_filters_results: `Results`, adaption_a_jetpack_maintitle: `Get started with Jetpack Compose`, adaption_a_jetpack_maindesc: `Jetpack Compose is Android's modern toolkit for building native UI. Get started by completing three easy steps to earn badges while you learn.`, adaption_a_playrelease_maintitle: `Get started with Play Release tracks in Crashlytics`, adaption_a_playrelease_maindescr: `Start tracking your app's Play Release tracks in Crashlytics by completing three easy steps to earn badges while you learn.`, adaption_a_cloudrun_maintitle: `Get started with Cloud Run jobs`, adaption_a_cloudrun_maindescr: `Start running batch jobs on serverless, on-demand, and on-schedule by completing three easy steps to earn badges while you learn.`, adaption_a_playrelease_title1: `Hear the latest updates`, adaption_a_jetpack_descr1: `Watch <i>What's new in Jetpack</i> to hear the latest Compose updates.`, adaption_a_jetpack_cta_watch: `[Watch session](/2022/program/c7710536-a86d-42a6-b43e-e69ae76dbb34/)`, adaption_a_jetpack_title2: `Learn the code`, adaption_a_jetpack_descr2: `Learn how to migrate your app to Compose in this hands-on codelab.`, adaption_a_jetpack_cta2: `[Take codelab](https://developer.android.com/codelabs/jetpack-compose-migration-io)`, adaption_a_jetpack_title3: `Try it in your app`, adaption_a_jetpack_decr3: `Read the Compose setup guide to use the latest libraries in your app.`, adaption_a_jetpack_cta3: `[Read setup guide](https://developer.android.com/jetpack/compose/setup)`, adaption_a_playrelease_title1: `Hear the latest updates`, adaption_a_playrelease_desc1: `Watch <i>What's new in Firebase</i> to hear about the benefits of Play Release tracks in Crashlytics.`, adaption_a_playrelease_cta1: `[Watch Firebase keynote](/2022/program/4b4d658d-9682-4573-9ebe-0a48e7ff75df/)`, adaption_a_playrelease_title2: `Get the details`, adaption_a_playrelease_desc2: `Read Firebase's helpful guide to learn how to make the most of this new capability.`, adaption_a_playrelease_cta2: `[Read guide](https://firebase.google.com/docs/crashlytics/integrate-with-google-play)`, adaption_a_playrelease_title3: `Link your accounts`, adaption_a_playrelease_desc3: `Link your Firebase and Play Account in the Firebase console to start tracking your releases now.`, adaption_a_playrelease_cta3: `[Link accounts](https://console.firebase.google.com/project/_/settings/integrations/playlink)`, adaption_a_cloudrun_descr1: `Watch <i>The cloud built for developers</i> to hear the latest Cloud Run updates from the Cloud team.`, adaption_a_cloudrun_cta1: `[Watch session](/2022/program/3af70a34-1be2-4040-b873-7549ba4e7b48/)`, adaption_a_cloudrun_title2: `See a demo in action`, adaption_a_cloudrun_descr2: `Watch a five minute demo video on Cloud Run jobs to learn how to optimize your serverless workflow.`, adaption_a_cloudrun_cta2: `[Watch demo](https://cloud.google.com/run/docs/io2022)`, adaption_a_cloudrun_title3: `Create and run first job`, adaption_a_cloudrun_descr3: `Get started with Cloud Run jobs today by following this short codelab.`, adaption_a_cloudrun_cta3: `[Create and run a job](https://codelabs.developers.google.com/codelabs/cloud-starting-cloudrun-jobs-io)`, addtocal_header: `Add to your calendar`, addtocal_google: `Google calendar`, addtocal_outlook: `Outlook calendar`, addtocal_apple: `Apple calendar`, badges_a_createaprofile: `Create a profile`, badges_a_earnmore: `Earn more badges`, badges_a_signintoclaim: `Sign in to claim your badge`, badges_a_createadev: `Create a developer profile to save it`, global_filteralt_menu: `filter menu`, global_filteralt_remove: `remove filter for`, reg_filterbutton_alttext: `Filter button main landmark collapse`, global_refreshbrowser_cta1: `Refresh`, global_refreshbrowser_copy1: `Refresh your browser to catch the latest during I/O 2022!`, global_refreshbrowser_cta2: `Watch`, global_refreshbrowser_copy2: `Google I/O is happening now. Tune in to catch the latest!`, global_snackbar_refreshtoupdate: `New content is available. Click Refresh to update.`, global_snackbar_refresh: `Refresh`, global_side_myio: `My I/O`, global_badges_ns_compose: `Jetpack Compose`, global_badges_ns_cloudrun: `Cloud Run jobs`, global_badges_ns_crashlytics: `Crashlytics and Play`, nt_transpo_gettingtomountain_body2_airportcta: `[San Francisco International Airport](https://www.flysfo.com)`, nt_transpo_gettingtomountain_body3_airportcta: `[Oakland International Airport](https://www.oaklandairport.com)`, nt_transpo_gettingtomountain_body4_airportcta: `[San Jose International Airport](https://www.flysanjose.com)`, nt_transpo_gettingtoshoreline_publictranspo_body2: `[Caltrain Regional rail system](https://www.caltrain.com/main.html)`, nt_transpo_gettingtoshoreline_publictranspo_body3: `[VTA Light rail system servicing the South Bay](https://www.vta.org/)`, nt_transpo_gettingtoshoreline_publictranspo_body4: `[BART Bay Area Rapid Transit](https://www.bart.gov/)`, home_a_keynote_cta_seefullprogram: `See full program`, home_a_sessionheadline_recommendedforyou: `Recommended for you`, home_a_sessionheadline_featuredsessions: `Featured sessions`, global_foot_svd: `Solve the I/O puzzle`, myio_badges_view: `View`, myio_badges_continue: `Continue`, myio_badges_unfurl_close: `Close <>`, myio_badges_unfurl_expand: `Expand <>`, home_a_addbookmark: `Add bookmark`, global_removebookmark: `Remove bookmark`, global_ns__nd_tooltip_myio: `Register and create a developer profile to keep track of sessions you're interested in by saving them to My I/O.`, global_s_nd_tooltip_myio: `Create a developer profile to keep track of sessions you're interested in by saving them to My I/O.`, learninglab_a_filters_topics: `Topic`, program_showmore_topics: `Show more topics`, program_showless_topics: `Show less topics`, global_a_filter_level_headline: `Level`, global_a_filters_type: `Type`, global_a_filter_level_beginner: `Beginner`, global_a_filter_level_intermediate: `Intermediate`, global_a_filter_level_advanced: `Advanced`, program_a_filter_type_keynote: `Keynote`, program_a_filter_type_workshop: `Workshop`, program_a_filter_type_technicalsessions: `Technical Sessions`, global_a_more: `More`, global_a_less: `Less`, program_a_filter_type_technicalsessions: `Technical Sessions`, global_watchthetrailer: `[Watch the trailer](https://www.youtube.com/watch?v=YjVBbeRzfnE&feature=youtu.be)`, global_profilecard_icon_aria: `profile icon`, home_a_ukraine_cta:`[Learn more](https://www.google.org/)`, global_more:`+ [[tags]] more`, global_a_sessionsinmyio:`[[ session ]] has been saved in My I/O`, global_a_sessionsremovedmyio:`[[ session ]] has been removed from My I/O`, products_productdetails_a_iophoto_cta:`[Launch](https://photobooth.flutter.dev/#/)`, products_productdetails_a_announcement_cloud_cta:`[Watch now](https://www.youtube.com/playlist?list=PLIivdWyY5sqIxUCyOq0-FPNn5GZ2-XR45)`, products_productdetails_a_announcement_cloud_cta2:`[Learn more](https://www.cloudskillsboost.google/?utm_source=gcp&utm_medium=lp&utm_campaign=cloudio)`, products_productdetails_a_announcement_android_cta:`[Learn more](https://goo.gle/3xx3kKz)`, products_productdetails_a_announcement_android_cta2:`[Learn more]( https://goo.gle/3uLEy7t)`, products_productdetails_a_promo_android_cta:`[Learn more](https://developer.android.com/studio/preview/features)`, products_productdetails_a_promo_android_cta2:`[Learn more](https://android-developers.googleblog.com/2022/05/announcing-compose-for-wear-os-beta.html)`, products_productdetails_a_announcement_maps_cta:`[Learn more](https://goo.gle/io22-webgl-demo)`, products_productdetails_a_announcement_maps_cta2:`[Learn more](https://cloud.google.com/blog/products/maps-platform/video-guide-reactive-programming-google-maps-platform)`, products_productdetails_a_promo_maps_cta:`[Learn more](https://github.com/googlemaps/android-maps-compose)`, products_productdetails_a_announcement_material_cta:`[Learn more](https://goo.gle/m3-updates-io22)`, products_productdetails_a_announcement_material_cta2:`[Learn more](https://material.io/blog/introducing-symbols )`, products_productdetails_a_promo_material_cta:`[Learn more](https://goo.gle/m3-a11y)`, products_productdetails_a_promo_material_cta2:`[Learn more](https://m3.material.io/foundations/accessible-design/overview)`, products_productdetails_a_iophoto_cta:`[Launch](https://photobooth.flutter.dev/#/)`, products_productdetails_a_announcement_gwallet_cta:`[Learn more](https://developers.google.com/wallet)`, products_productdetails_a_announcement_accessibility_cta2:`[Learn more](https://belonging.google/product-inclusion-and-equity)`, products_productdetails_a_announcement_accessibility_cta3:`[Learn more](https://nextbillionusers.google/)`, products_productdetails_a_announcement_arvr_cta:`[Learn more](https://goo.gle/intro-geospatial)`, products_productdetails_a_announcement_arvr_cta2:`[Learn more](https://codelabs.developers.google.com/codelabs/arcore-geospatial-api)`, products_productdetails_a_announcement_chromeos_cta:`[Learn more](https://chromeos.dev/en/posts/io-2022)`, products_productdetails_a_announcement_firebase_cta:`[Learn more]( https://firebase.google.com/products/extensions)`, products_productdetails_a_announcement_firebase_cta2:`[Learn more](https://pinball.flutter.dev)`, products_productdetails_a_promo_firebase_cta:`[Learn more](https://developer.android.com/studio/preview/features)`, products_productdetails_a_promo_firebase_cta2:`[Learn more](https://firebase.google.com/docs/crashlytics)`, products_productdetails_a_announcement_flutter_cta:`[Learn more](https://flutter.dev/events/io-2022)`, products_productdetails_a_announcement_flutter_cta2:`[Learn more](https://flutter.dev/games)`, products_productdetails_a_promo_flutter_cta:`[Learn more](https://firebase.google.com/docs/crashlytics)`, products_productdetails_a_promo_flutter_cta2:`[Learn more](https://pinball.flutter.dev)`, products_productdetails_a_announcement_chromeos_cta2:`[Learn more](https://chromeos.dev/en)`, close_myio:`[INVALID_KEY en/close_myio]`, io_settings:`[INVALID_KEY en/io_settings]`, global_technicalsession_singular:`Technical session`, global_aria_late_filterremoved:`Filter [[ filter ]] has been removed`, home_a_survey_cta:`[Take the survey](https://google.qualtrics.com/jfe/form/SV_2sG75Yuo6yjeJim)`, adaption_a_aria_jetpack_watch: `Jetpack Compose Watch session`, adaption_a_aria_jetpack_take: `Jetpack Compose Take codelab`, adaption_a_aria_jetpack_read: `Jetpack Compose Read setup guide`, adaption_a_aria_firebase_watch: `Firebase Watch Firebase keynote`, adaption_a_aria_firebase_read: `Firebase Read guide`, adaption_a_aria_firebase_link: `Firebase Link accounts`, adaption_a_aria_cloud_watchsession: `Cloud Run jobs Watch session`, adaption_a_aria_cloud_watchdemo: `Cloud Run jobs Watch demo`, adaption_a_aria_cloud_create: `Cloud Run jobs Create and run a job`, program_launchsix_tipcallout: `Tip: You can find bookmarked sessions in your <a href="https://developers.google.com/profile/u/me" target="_blank" class="underline">Developer Profile</a>.`, community_a_join_new_launchsix: `[Join a community](https://developers.google.com/community)` }; </script> <script defer nonce="5fOvAG9g43A3fHVzxu1OUQ"> /** * Registration Translations * * Adds translated strings for the registration flow. * Scoped with an IIFE to prevent global pollution. These values will be discarded once the function executes. * @see https://developer.mozilla.org/en-US/docs/Glossary/IIFE **/ (function () { const regTranslations = { global_modals_exit_aria: `Exit`, reg_form_nr_regq_pronounconsent: `I consent to provide Google with information about my pronouns for the purposes of helping Google understand the diversity of the I/O audience, improving content for I/O presentations and events, and developing I/O presentations and events that are of interest to the audience`, global_register: `Register`, reg_intro_nr_pageheader_ioreg: `I/O Registration`, reg_intro_nr_radiocta_signin: `Sign in`, global_nr_required_field: `Required field`, reg_form_nr_regq_email: `Email address*`, reg_form_nr_regq_firstname: `First Name*`, reg_form_nr_regq_lastname: `Last Name*`, reg_form_nr_regq_preflang: `Preferred Language*`, reg_form_nr_regq_preflang_alt: `[INVALID_KEY en/reg_form_nr_regq_preflang_alt]`, global_languagedrop_english: `English`, global_languagedrop_spanish: `Spanish`, global_languagedrop_portuguese: `Portuguese`, global_languagedrop_french: `French`, global_languagedrop_chinese: `Chinese`, global_languagedrop_indonesian: `Indonesian`, global_languagedrop_korean: `Korean`, global_languagedrop_japanese: `Japanese`, reg_form_nr_rega_lang9: `Other`, reg_form_nr_regq_raceconsent: `I consent to provide Google with information about my race/ethnicity for the purposes of helping Google understand the diversity of the Google I/O audience, improving content for Google I/O presentations and events, and developing Google I/O presentations and events that are of interest to the audience.`, reg_form_nr_regq_race: `Race or ethnic identification`, reg_form_nr_rega_race1: `American Indian, Alaska Native, Indigenous`, reg_form_nr_rega_race2: `Asian or Pacific Islander`, reg_form_nr_rega_race3: `Black`, reg_form_nr_rega_race4: `Hispanic or Latino/Latina/Latinx`, reg_form_nr_rega_race5: `White`, reg_form_nr_rega_race6: `Middle Eastern`, reg_form_nr_rega_race7: `None of the above options apply to me`, reg_form_nr_rega_race8: `Prefer not to answer`, reg_form_nr_regq_pronouns: `Pronouns`, reg_form_nr_rega_pronouns1: `She/Her`, reg_form_nr_rega_pronouns2: `He/Him`, reg_form_nr_rega_pronouns3: `They/Them`, reg_form_nr_rega_pronouns4: `I would select multiple options above as my pronouns`, reg_form_nr_rega_pronouns5: `My pronoun is not listed above`, reg_form_nr_rega_pronouns6: `I do not wish to disclose this information`, reg_form_nr_regq_age_title: `Age range`, reg_form_nr_regq_age_subcopy: `Attendees must be at least 18 years of age.`, reg_form_nr_rega_agerange1: `18-20`, reg_form_nr_rega_agerange2: `21-24`, reg_form_nr_rega_agerange3: `25-34`, reg_form_nr_rega_agerange4: `35-44`, reg_form_nr_rega_agerange5: `45-54`, reg_form_nr_rega_agerange6: `55-64`, reg_form_nr_rega_agerange7: `65 and over`, reg_form_nr_rega_agerange8: `Decline to answer`, reg_form_nr_regq_location: `Location*`, // notice the space in the actual translation call. reg_form_nr_regq_organization: `Company / Organization / Education Institution / Publication`, reg_form_nr_regq_role: `Role/Practitioner (job title)`, reg_form_nr_rega_role1: `Architect`, reg_form_nr_rega_role2: `Data Analyst`, reg_form_nr_rega_role3: `Data Engineer`, reg_form_nr_rega_role4: `Data Scientist`, reg_form_nr_rega_role5: `Designer`, reg_form_nr_rega_role6: `DevOps Engineer`, reg_form_nr_rega_role7: `Developer`, reg_form_nr_rega_role8: `Developer Advocate`, reg_form_nr_rega_role9: `Educator`, reg_form_nr_rega_role10: `Executive`, reg_form_nr_rega_role11: `Journalist/Press`, reg_form_nr_rega_role12: `Machine Learning Engineer`, reg_form_nr_rega_role13: `Network Engineer`, reg_form_nr_rega_role14: `Product Manager`, reg_form_nr_rega_role15: `Security Professional`, reg_form_nr_rega_role16: `Something Else`, reg_form_nr_rega_role17: `Student`, reg_form_nr_rega_role18: `SysAdmin`, reg_form_nr_rega_role19: `Technical Writer`, reg_form_nr_rega_role20: `Decline to specify`, reg_form_nr_rega_role_database: `Database Admin`, reg_form_nr_regq_experience: `Years of experience`, reg_form_nr_rega_experience1: `Less than 1 year`, reg_form_nr_rega_experience2: `Between 1 and 5 years`, reg_form_nr_rega_experience4: `Between 5 and 10 years`, reg_form_nr_rega_experience5: `More than 10 years`, global_a_filter_level_headline: `Level`, global_a_filter_level_beginner: `Beginner`, global_a_filter_level_intermediate: `Intermediate`, global_a_filter_level_advanced: `Advanced`, reg_form_nr_regq_funtitle: `(Just for fun) - If you could ask Sundar one question about the future of technology, what would it be?`, reg_form_nr_regq_funsubcopy: `By submitting a question, you agree that it may be used and shared publicly.`, reg_form_nr_regq_community: `Are you a member of any of the Google Developer community programs?`, reg_form_nr_regq_subcopy_communityselect: `Select all that apply. Learn more about the programs at [developers.google.com/programs](https://developers.google.com/programs).`, reg_form_nr_rega_community1: `I'm part of the Google Developer Groups program (GDG member)`, reg_form_nr_rega_community2: `I'm part of the Google Developer Groups program (GDG organizer)`, reg_form_nr_rega_community3: `I'm part of the Google Developer Experts program (GDE)`, reg_form_nr_rega_community4: `I'm part of the Google Developer Student Clubs (GDSC)`, reg_form_nr_rega_community5: `I'm part of the Google for Startups Accelerator program`, reg_form_nr_rega_community6: `I'm part of Women Techmakers (WTM member)`, reg_form_nr_rega_community7: `I'm part of Women Techmakers (WTM Ambassador)`, reg_form_nr_rega_community8: `No, I'm not a member of any of these programs`, reg_form_nr_regq_optinterms: `I agree to the I/O'22 Registration [Terms & Conditions](/faq/), [Community Guidelines](https://developers.google.com/community-guidelines), and [Anti-Harassment Policy](https://www.google.com/events/policy/anti-harassmentpolicy.html).`, reg_form_nr_regq_age_subcopy_alt: `I am 18 years of age or older`, reg_form_nr_regq_optinnews: `I would like to receive emails from Google about products and activities relevant to developers including invitations to private betas, product research, product feedback, newsletters, mentorship, and events.`, reg_intro_nr_globalcta_back: `Back`, reg_form_nr_regq_twitterhandle_legal: `By submitting your Twitter handle, you agree that it may be used and shared publicly.`, reg_form_nr_regq_twitterhandle: `Twitter handle`, reg_savetodev_practitioner: `You can save this to your Google Developer profile after you register.`, reg_legal_updated: `I accept Google's [Terms and Conditions](https://policies.google.com/terms) and acknowledge that my information will be used in accordance with Google's [Privacy Policy](https://policies.google.com/privacy).`, // Registration Confirmation Fields. reg_conf_r_nd_h1_thanks: `Thanks for registering!`, reg_conf_r_d_h2_updateprofile: `Update your Developer profile`, reg_conf_r_d_body_reccs: `Get recommendations for the best I/O sessions and content for you. You can also use your Google Developer profile to save sessions to watch after the keynote.`, community_d_newprofile_savelocation_modal3_cta1_save: `Update profile`, community_d_newprofile_savelocation_modal3_cta1_save: `Update profile`, reg_conf_r_nd_optin_stayup: `Stay up to date on new features, events, badges, content, and research opportunities.`, reg_conf_r_nd_optin_legal: `By creating a developer profile, you agree to the Content Policy. Google's Terms of Service and Privacy Policy apply to your use of this service. Your display name and interests will be used in your Google Developer profile.`, global_accessibility: `Accessibility, Product Inclusion, and Equity`, productnames_global_ads: `Ads`, productnames_global_aimachinelearning: `AI & Machine Learning`, reg_intrests_a_button_android: `[INVALID_KEY en/reg_intrests_a_button_android]`, productnames_global_augmentedreality: `Augmented Reality`, reg_intrests_a_button_chromeos: `[INVALID_KEY en/reg_intrests_a_button_chromeos]`, reg_intrests_a_button_cloud: `[INVALID_KEY en/reg_intrests_a_button_cloud]`, productnames_global_design: `Design`, reg_intrests_a_button_firebase: `[INVALID_KEY en/reg_intrests_a_button_firebase]`, reg_intrests_a_button_flutter: `[INVALID_KEY en/reg_intrests_a_button_flutter]`, productnames_global_gaming: `Gaming`, reg_intrests_a_button_googleassist: `[INVALID_KEY en/reg_intrests_a_button_googleassist]`, reg_intrests_a_button_googlepay: `[INVALID_KEY en/reg_intrests_a_button_googlepay]`, productnames_global_growth: `Growth`, productnames_global_internetofthings: `Internet of Things (IoT)`, reg_intrests_a_button_ios: `[INVALID_KEY en/reg_intrests_a_button_ios]`, productnames_global_locationmaps: `Location/Maps`, productnames_global_mobile: `Mobile`, global_a_filters_opensource: `Open Source`, productnames_global_payments: `Payments`, productnames_global_search: `Search`, global_a_filters_topics: `Smart Home`, reg_intrests_a_button_wearos: `[INVALID_KEY en/reg_intrests_a_button_wearos]`, global_web: `Web`, reg_form_nr_inclusivityconsent1: `Help make our work more inclusive for everyone.`, reg_form_nr_inclusivityconsent2: `We want to design programs and initiatives that drive diversity, equity, and inclusion across everything we do. The first step is getting a better understanding of the demographics of our audience. Would you like to help us by sharing some info on how you like to be represented?`, reg_form_nr_demographicsconsent_yes: `Yes, I consent`, reg_form_nr_demographicsconsent_no: `No, I do not consent`, reg_intro_nr_cta_next: `Next`, // No Thanks Modal. reg_success_r_d_b_h1_seeyou: `See you at I/O, [[ name ]]!`, reg_success_nd_nb_body_thankyou: `Thank you for registering.`, global_a_nothanks_body: `[INVALID_KEY en/global_a_nothanks_body]`, // Update Dev Profile. global_a_nothanks: `No thanks`, reg_success_r_d_b_alt_orgodevprofile: `or go to your [developer profile](https://developers.google.com/profile)`, // Create Dev Profile. reg_conf_r_nd_h2_nextup: `Next up: make your developer profile`, global_nd_creatingaprofile_reccomendations: `Create a developer profile to get recommendations for the best I/O sessions and content for you. You can also use your profile to save sessions to watch after the keynote, earn badges, and more.`, global_nd_createprofile: `Create profile`, global_a_nothanks: `No thanks`, reg_createadevprofile_requiredfield: `* Required field`, reg_createadevprofile_createadisplayname: `Create a display name`, reg_createadevprofile_displayname_helptext: `Display name *`, "reg_createadevprofile_special characters": `Special characters not allowed.`, reg_nd_legaloptin_creatingdevprofile2: `By creating a Developer Profile, you agree to the [Content Policy](https://developers.google.com/profile/content-policy). [Google's Terms of Service](https://policies.google.com/terms) and [Privacy Policy](https://policies.google.com/privacy) apply to your use of this service. Your display name and interests will be used in your Google Developer profile, along with the practitioner type, location, and company entered in registration.`, reg_d_legaloptin_updateprofile_interests2: `By selecting "Update Profile," you agree to update the following on your Google Developer profile: <ul><li>Practitioner type</li> <li>Interests</li> <li>Location</li> <li>Company </li></ul> If your profile privacy is currently set to public, this information will also be public.`, reg_d_legaloptin_profilepublic_changes: `You can make changes to your profile at any time [here](https://developers.google.com/profile/u/me/).`, reg_d_legaloptin_followingfields_title: `[INVALID_KEY en/reg_d_legaloptin_followingfields_title]`, reg_nr_interests_headline: `Select your interests`, // Badge Modal. reg_success_r_d_b_h1_seeyou: `See you at I/O, [[ name ]]!`, reg_success_r_d_b_h2_earnedbadge: `You earned a badge!`, reg_success_r_d_b_h2_badge_2022: `I/O 2022 Attendee`, reg_success_r_d_b_body_badgesaved: `This badge was saved to your Google Developer profile.`, reg_success_r_d_b_badgecta_share: `Share your badge`, nt_global_facebook: `[INVALID_KEY en/nt_global_facebook]`, nt_global_twitter: `[INVALID_KEY en/nt_global_twitter]`, reg_success_r_d_b_badgecta_sharelinkcta_linkedin_alt: `[INVALID_KEY en/reg_success_r_d_b_badgecta_sharelinkcta_linkedin_alt]`, reg_success_r_d_b_badgecta_sharelink_alt: `Share link`, reg_success_r_d_b_body_badgesaved_share: `Woot! I'm attending I/O. Are you? #DevBadges #GoogleIO`, }; const original = typeof window.translations !== "undefined" ? window.translations : {}; // Add Reg Flow Translations To Window. window.translations = Object.assign(original, regTranslations); return; })(); </script> <script src="https://www.gstatic.com/external_hosted/io2022/app/iofe_vendors.chunk.fcc6942df59c4d50eaac.js" nonce="5fOvAG9g43A3fHVzxu1OUQ"></script> <script src="https://www.gstatic.com/external_hosted/io2022/app/iofe_bundle.365824e25c02d5d735a4.js" nonce="5fOvAG9g43A3fHVzxu1OUQ"></script> <script src="https://www.gstatic.com/external_hosted/io2022/app/iofe_polyfills.7253b5c363b8c271b122.js" nonce="5fOvAG9g43A3fHVzxu1OUQ"></script> </html>