CINXE.COM

Google Developers

<!doctype html> <html lang="en" dir="ltr"> <head><script type="text/javascript" src="/_static/js/bundle-playback.js?v=HxkREWBo" charset="utf-8"></script> <script type="text/javascript" src="/_static/js/wombat.js?v=txqj7nKC" charset="utf-8"></script> <script>window.RufflePlayer=window.RufflePlayer||{};window.RufflePlayer.config={"autoplay":"on","unmuteOverlay":"hidden"};</script> <script type="text/javascript" src="/_static/js/ruffle/ruffle.js"></script> <script type="text/javascript"> __wm.init("http://web.archive.org/web"); __wm.wombat("https://developers.google.com/","20230314181749","http://web.archive.org/","web","/_static/", "1678817869"); </script> <link rel="stylesheet" type="text/css" href="/_static/css/banner-styles.css?v=S1zqJCYt" /> <link rel="stylesheet" type="text/css" href="/_static/css/iconochive.css?v=3PDvdIFv" /> <!-- End Wayback Rewrite JS Include --> <meta name="google-signin-client-id" content="721724668570-nbkv1cfusk7kk4eni4pjvepaus73b13t.apps.googleusercontent.com"> <meta name="google-signin-scope" content="profile email https://www.googleapis.com/auth/developerprofiles https://www.googleapis.com/auth/developerprofiles.award"> <meta property="og:site_name" content="Google Developers"> <meta property="og:type" content="website"><meta name="theme-color" content="#ffffff"><meta charset="utf-8"> <meta content="IE=Edge" http-equiv="X-UA-Compatible"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="manifest" href="/web/20230314181749/https://developers.google.com/_pwa/developers/manifest.json" crossorigin="use-credentials"> <link rel="preconnect" href="//web.archive.org/web/20230314181749/https://www.gstatic.com/" crossorigin> <link rel="preconnect" href="//web.archive.org/web/20230314181749/https://fonts.gstatic.com/" crossorigin> <link rel="preconnect" href="//web.archive.org/web/20230314181749/https://fonts.googleapis.com/" crossorigin> <link rel="preconnect" href="//web.archive.org/web/20230314181749/https://apis.google.com/" crossorigin> <link rel="preconnect" href="//web.archive.org/web/20230314181749/https://www.google-analytics.com/" crossorigin><link rel="stylesheet" href="//web.archive.org/web/20230314181749cs_/https://fonts.googleapis.com/css?family=Google+Sans:400,500|Roboto:400,400italic,500,500italic,700,700italic|Roboto+Mono:400,500,700&amp;display=swap"> <link rel="stylesheet" href="//web.archive.org/web/20230314181749cs_/https://fonts.googleapis.com/css2?family=Material+Icons&amp;family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&amp;display=block"><link rel="stylesheet" href="http://web.archive.org/web/20230314181749cs_/https://www.gstatic.com/devrel-devsite/prod/v8643e450826640c4e83cddfb72d4164f3407c33263e3070ba2a32acb4c849a5f/developers/css/app.css"> <link rel="shortcut icon" href="http://web.archive.org/web/20230314181749im_/https://www.gstatic.com/devrel-devsite/prod/v8643e450826640c4e83cddfb72d4164f3407c33263e3070ba2a32acb4c849a5f/developers/images/favicon.png"> <link rel="apple-touch-icon" href="http://web.archive.org/web/20230314181749im_/https://www.gstatic.com/devrel-devsite/prod/v8643e450826640c4e83cddfb72d4164f3407c33263e3070ba2a32acb4c849a5f/developers/images/touchicon-180.png"><link rel="canonical" href="http://web.archive.org/web/20230314181749/https://developers.google.com/"><link rel="search" type="application/opensearchdescription+xml" title="Google Developers" href="http://web.archive.org/web/20230314181749/https://developers.google.com/s/opensearch.xml"> <link rel="alternate" hreflang="en" href="http://web.archive.org/web/20230314181749/https://developers.google.com/"/><link rel="alternate" hreflang="x-default" href="http://web.archive.org/web/20230314181749/https://developers.google.com/"/><link rel="alternate" hreflang="ar" href="http://web.archive.org/web/20230314181749/https://developers.google.com/?hl=ar"/><link rel="alternate" hreflang="bn" href="http://web.archive.org/web/20230314181749/https://developers.google.com/?hl=bn"/><link rel="alternate" hreflang="zh-Hans" href="http://web.archive.org/web/20230314181749/https://developers.google.com/?hl=zh-cn"/><link rel="alternate" hreflang="zh-Hant" href="http://web.archive.org/web/20230314181749/https://developers.google.com/?hl=zh-tw"/><link rel="alternate" hreflang="fa" href="http://web.archive.org/web/20230314181749/https://developers.google.com/?hl=fa"/><link rel="alternate" hreflang="fr" href="http://web.archive.org/web/20230314181749/https://developers.google.com/?hl=fr"/><link rel="alternate" hreflang="de" href="http://web.archive.org/web/20230314181749/https://developers.google.com/?hl=de"/><link rel="alternate" hreflang="he" href="http://web.archive.org/web/20230314181749/https://developers.google.com/?hl=he"/><link rel="alternate" hreflang="hi" href="http://web.archive.org/web/20230314181749/https://developers.google.com/?hl=hi"/><link rel="alternate" hreflang="id" href="http://web.archive.org/web/20230314181749/https://developers.google.com/?hl=id"/><link rel="alternate" hreflang="it" href="http://web.archive.org/web/20230314181749/https://developers.google.com/?hl=it"/><link rel="alternate" hreflang="ja" href="http://web.archive.org/web/20230314181749/https://developers.google.com/?hl=ja"/><link rel="alternate" hreflang="ko" href="http://web.archive.org/web/20230314181749/https://developers.google.com/?hl=ko"/><link rel="alternate" hreflang="pl" href="http://web.archive.org/web/20230314181749/https://developers.google.com/?hl=pl"/><link rel="alternate" hreflang="pt-BR" href="http://web.archive.org/web/20230314181749/https://developers.google.com/?hl=pt-br"/><link rel="alternate" hreflang="ru" href="http://web.archive.org/web/20230314181749/https://developers.google.com/?hl=ru"/><link rel="alternate" hreflang="es-419" href="http://web.archive.org/web/20230314181749/https://developers.google.com/?hl=es-419"/><link rel="alternate" hreflang="th" href="http://web.archive.org/web/20230314181749/https://developers.google.com/?hl=th"/><link rel="alternate" hreflang="tr" href="http://web.archive.org/web/20230314181749/https://developers.google.com/?hl=tr"/><link rel="alternate" hreflang="vi" href="http://web.archive.org/web/20230314181749/https://developers.google.com/?hl=vi"/><title>Google Developers</title> <meta property="og:title" content="Google Developers"><meta name="description" content="Everything you need to build better apps."> <meta property="og:description" content="Everything you need to build better apps."><meta property="og:url" content="http://web.archive.org/web/20230314181749/https://developers.google.com/"><meta property="og:image" content="http://web.archive.org/web/20230314181749im_/https://developers.google.com/static/site-assets/images/home/developers-social-media.png"> <meta property="og:image:width" content="1200"> <meta property="og:image:height" content="675"><meta property="og:locale" content="en"><meta name="twitter:card" content="summary_large_image"><script type="application/ld+json"> { "@context": "http://web.archive.org/web/20230314181749/https://schema.org", "@type": "Article", "headline": "" } </script> <meta name="google-site-verification" content="u63GsPxC7nSL9_iKT6-jN0FpOze5tBvZ0yeeayDob7g"><script type="application/ld+json"> { "@context": "http://web.archive.org/web/20230314181749/http://schema.org/", "@type": "Organization", "name": "Google Developers", "logo": "http://web.archive.org/web/20230314181749/https://www.gstatic.com/devrel-devsite/prod/v8643e450826640c4e83cddfb72d4164f3407c33263e3070ba2a32acb4c849a5f/developers/images/touchicon-180.png", "url": "http://web.archive.org/web/20230314181749/https://developers.google.com/" } </script> <script type="application/ld+json"> { "@context": "http://web.archive.org/web/20230314181749/http://schema.org", "@type": "WebSite", "name": "Google Developers", "url": "http://web.archive.org/web/20230314181749/https://developers.google.com/", "potentialAction": { "@type": "SearchAction", "target": "http://web.archive.org/web/20230314181749/https://developers.google.com/s/results?q={search_term_string}", "query-input": "required name=search_term_string" } } </script> <link rel="stylesheet" href="/web/20230314181749cs_/https://developers.google.com/extras.css"></head> <body class="dgc-hero-fullscreen" template="landing" theme="white" type="article" layout="full" pending> <devsite-progress type="indeterminate" id="app-progress"></devsite-progress> <section class="devsite-wrapper"><devsite-header> <div class="devsite-header--inner nocontent"> <div class="devsite-top-logo-row-wrapper-wrapper"> <div class="devsite-top-logo-row-wrapper"> <div class="devsite-top-logo-row"> <button type="button" id="devsite-hamburger-menu" class="devsite-header-icon-button button-flat material-icons gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Navigation menu button" visually-hidden aria-label="Open menu"> </button> <div class="devsite-product-name-wrapper"> <a href="/web/20230314181749/https://developers.google.com/" class="devsite-site-logo-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Site logo" track-type="globalNav" track-name="googleDevelopers" track-metadata-position="nav" track-metadata-eventdetail="nav"> <img src="http://web.archive.org/web/20230314181749im_/https://www.gstatic.com/devrel-devsite/prod/v8643e450826640c4e83cddfb72d4164f3407c33263e3070ba2a32acb4c849a5f/developers/images/lockup.svg" class="devsite-site-logo" alt="Google Developers"> </a> <span class="devsite-product-name"> <ul class="devsite-breadcrumb-list"> <li class="devsite-breadcrumb-item devsite-has-google-wordmark"> </li> </ul> </span> </div> <div class="devsite-top-logo-row-middle"> <div class="devsite-header-upper-tabs"> <devsite-tabs class="upper-tabs"> <nav class="devsite-tabs-wrapper" aria-label="Upper tabs"> <tab dropdown> <a href="http://web.archive.org/web/20230314181749/https://developers.google.com/products" track-metadata-eventdetail="https://developers.google.com/products" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - products" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Products" track-name="products"> Products </a> <a href="#" role="button" aria-haspopup="true" aria-expanded="false" aria-label="Dropdown menu for Products" track-type="nav" track-metadata-eventdetail="https://developers.google.com/products" track-metadata-position="nav - products" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Products" track-name="products" class="devsite-tabs-dropdown-toggle devsite-icon devsite-icon-arrow-drop-down"></a> <div class="devsite-tabs-dropdown" aria-label="submenu" hidden> <div class="devsite-tabs-dropdown-content"> <div class="devsite-tabs-dropdown-column "> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-title" role="heading" tooltip>Develop</li> <li class="devsite-nav-item"> <a href="//web.archive.org/web/20230314181749/https://developer.android.com/" track-type="nav" track-metadata-eventdetail="//developer.android.com" track-metadata-position="nav - products" track-metadata-module="tertiary nav" track-metadata-module_headline="develop" tooltip> <div class="devsite-nav-item-title"> Android </div> </a> </li> <li class="devsite-nav-item"> <a href="//web.archive.org/web/20230314181749/https://chromeos.dev/" track-type="nav" track-metadata-eventdetail="//chromeos.dev/" track-metadata-position="nav - products" track-metadata-module="tertiary nav" track-metadata-module_headline="develop" tooltip> <div class="devsite-nav-item-title"> ChromeOS </div> </a> </li> <li class="devsite-nav-item"> <a href="//web.archive.org/web/20230314181749/https://cloud.google.com/" track-type="nav" track-metadata-eventdetail="//cloud.google.com" track-metadata-position="nav - products" track-metadata-module="tertiary nav" track-metadata-module_headline="develop" tooltip> <div class="devsite-nav-item-title"> Cloud </div> </a> </li> <li class="devsite-nav-item"> <a href="//web.archive.org/web/20230314181749/https://firebase.google.com/" track-type="nav" track-metadata-eventdetail="//firebase.google.com" track-metadata-position="nav - products" track-metadata-module="tertiary nav" track-metadata-module_headline="develop" tooltip> <div class="devsite-nav-item-title"> Firebase </div> </a> </li> <li class="devsite-nav-item"> <a href="//web.archive.org/web/20230314181749/https://flutter.dev/" track-type="nav" track-metadata-eventdetail="//flutter.dev" track-metadata-position="nav - products" track-metadata-module="tertiary nav" track-metadata-module_headline="develop" tooltip> <div class="devsite-nav-item-title"> Flutter </div> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20230314181749/https://developers.google.com/assistant" track-type="nav" track-metadata-eventdetail="https://developers.google.com/assistant" track-metadata-position="nav - products" track-metadata-module="tertiary nav" track-metadata-module_headline="develop" tooltip> <div class="devsite-nav-item-title"> Google Assistant </div> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20230314181749/https://developers.google.com/workspace" track-type="nav" track-metadata-eventdetail="https://developers.google.com/workspace" track-metadata-position="nav - products" track-metadata-module="tertiary nav" track-metadata-module_headline="develop" tooltip> <div class="devsite-nav-item-title"> Google Workspace </div> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20230314181749/https://developers.google.com/maps" track-type="nav" track-metadata-eventdetail="https://developers.google.com/maps" track-metadata-position="nav - products" track-metadata-module="tertiary nav" track-metadata-module_headline="develop" tooltip> <div class="devsite-nav-item-title"> Maps Platform </div> </a> </li> <li class="devsite-nav-item"> <a href="//web.archive.org/web/20230314181749/https://www.tensorflow.org/" track-type="nav" track-metadata-eventdetail="//www.tensorflow.org" track-metadata-position="nav - products" track-metadata-module="tertiary nav" track-metadata-module_headline="develop" tooltip> <div class="devsite-nav-item-title"> TensorFlow </div> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20230314181749/https://developers.google.com/web" track-type="nav" track-metadata-eventdetail="https://developers.google.com/web" track-metadata-position="nav - products" track-metadata-module="tertiary nav" track-metadata-module_headline="develop" tooltip> <div class="devsite-nav-item-title"> Web </div> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20230314181749/https://developers.google.com/youtube" track-type="nav" track-metadata-eventdetail="https://developers.google.com/youtube" track-metadata-position="nav - products" track-metadata-module="tertiary nav" track-metadata-module_headline="develop" tooltip> <div class="devsite-nav-item-title"> YouTube </div> </a> </li> </ul> </div> <div class="devsite-tabs-dropdown-column "> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-title" role="heading" tooltip>Grow</li> <li class="devsite-nav-item"> <a href="//web.archive.org/web/20230314181749/https://firebase.google.com/" track-type="nav" track-metadata-eventdetail="//firebase.google.com" track-metadata-position="nav - products" track-metadata-module="tertiary nav" track-metadata-module_headline="grow" tooltip> <div class="devsite-nav-item-title"> Firebase </div> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20230314181749/https://developers.google.com/google-ads" track-type="nav" track-metadata-eventdetail="https://developers.google.com/google-ads" track-metadata-position="nav - products" track-metadata-module="tertiary nav" track-metadata-module_headline="grow" tooltip> <div class="devsite-nav-item-title"> Google Ads </div> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20230314181749/https://developers.google.com/analytics" track-type="nav" track-metadata-eventdetail="https://developers.google.com/analytics" track-metadata-position="nav - products" track-metadata-module="tertiary nav" track-metadata-module_headline="grow" tooltip> <div class="devsite-nav-item-title"> Google Analytics </div> </a> </li> <li class="devsite-nav-item"> <a href="//web.archive.org/web/20230314181749/https://developer.android.com/distribute/" track-type="nav" track-metadata-eventdetail="//developer.android.com/distribute/" track-metadata-position="nav - products" track-metadata-module="tertiary nav" track-metadata-module_headline="grow" tooltip> <div class="devsite-nav-item-title"> Google Play </div> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20230314181749/https://developers.google.com/search" track-type="nav" track-metadata-eventdetail="https://developers.google.com/search" track-metadata-position="nav - products" track-metadata-module="tertiary nav" track-metadata-module_headline="grow" tooltip> <div class="devsite-nav-item-title"> Search </div> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20230314181749/https://developers.google.com/web/fundamentals/engage-and-retain/push-notifications" track-type="nav" track-metadata-eventdetail="https://developers.google.com/web/fundamentals/engage-and-retain/push-notifications" track-metadata-position="nav - products" track-metadata-module="tertiary nav" track-metadata-module_headline="grow" tooltip> <div class="devsite-nav-item-title"> Web Push and Notification APIs </div> </a> </li> </ul> </div> <div class="devsite-tabs-dropdown-column "> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-title" role="heading" tooltip>Earn</li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20230314181749/https://developers.google.com/admob" track-type="nav" track-metadata-eventdetail="https://developers.google.com/admob" track-metadata-position="nav - products" track-metadata-module="tertiary nav" track-metadata-module_headline="earn" tooltip> <div class="devsite-nav-item-title"> AdMob </div> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20230314181749/https://developers.google.com/google-ads/api" track-type="nav" track-metadata-eventdetail="https://developers.google.com/google-ads/api" track-metadata-position="nav - products" track-metadata-module="tertiary nav" track-metadata-module_headline="earn" tooltip> <div class="devsite-nav-item-title"> Google Ads API </div> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20230314181749/https://developers.google.com/pay" track-type="nav" track-metadata-eventdetail="https://developers.google.com/pay" track-metadata-position="nav - products" track-metadata-module="tertiary nav" track-metadata-module_headline="earn" tooltip> <div class="devsite-nav-item-title"> Google Pay </div> </a> </li> <li class="devsite-nav-item"> <a href="//web.archive.org/web/20230314181749/https://developer.android.com/google/play/billing/" track-type="nav" track-metadata-eventdetail="//developer.android.com/google/play/billing/" track-metadata-position="nav - products" track-metadata-module="tertiary nav" track-metadata-module_headline="earn" tooltip> <div class="devsite-nav-item-title"> Google Play Billing </div> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20230314181749/https://developers.google.com/interactive-media-ads" track-type="nav" track-metadata-eventdetail="https://developers.google.com/interactive-media-ads" track-metadata-position="nav - products" track-metadata-module="tertiary nav" track-metadata-module_headline="earn" tooltip> <div class="devsite-nav-item-title"> Interactive Media Ads </div> </a> </li> </ul> </div> </div> </div> </tab> <tab> <a href="http://web.archive.org/web/20230314181749/https://developers.google.com/events" track-metadata-eventdetail="https://developers.google.com/events" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - events" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Events" track-name="events"> Events </a> </tab> <tab> <a href="http://web.archive.org/web/20230314181749/https://developers.google.com/learn" track-metadata-eventdetail="https://developers.google.com/learn" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - learn" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Learn" track-name="learn"> Learn </a> </tab> <tab dropdown> <a href="http://web.archive.org/web/20230314181749/https://developers.google.com/community" track-metadata-eventdetail="https://developers.google.com/community" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - community" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Community" track-name="community"> Community </a> <a href="#" role="button" aria-haspopup="true" aria-expanded="false" aria-label="Dropdown menu for Community" track-type="nav" track-metadata-eventdetail="https://developers.google.com/community" track-metadata-position="nav - community" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Community" track-name="community" class="devsite-tabs-dropdown-toggle devsite-icon devsite-icon-arrow-drop-down"></a> <div class="devsite-tabs-dropdown" aria-label="submenu" hidden> <div class="devsite-tabs-dropdown-content"> <div class="devsite-tabs-dropdown-column "> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-title" role="heading" tooltip>Groups</li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20230314181749/https://developers.google.com/community/gdg" track-type="nav" track-metadata-eventdetail="https://developers.google.com/community/gdg" track-metadata-position="nav - community" track-metadata-module="tertiary nav" track-metadata-module_headline="groups" tooltip> <div class="devsite-nav-item-title"> Google Developer Groups </div> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20230314181749/https://developers.google.com/community/gdsc" track-type="nav" track-metadata-eventdetail="https://developers.google.com/community/gdsc" track-metadata-position="nav - community" track-metadata-module="tertiary nav" track-metadata-module_headline="groups" tooltip> <div class="devsite-nav-item-title"> Google Developer Student Clubs </div> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20230314181749/https://developers.google.com/womentechmakers" track-type="nav" track-metadata-eventdetail="https://developers.google.com/womentechmakers" track-metadata-position="nav - community" track-metadata-module="tertiary nav" track-metadata-module_headline="groups" tooltip> <div class="devsite-nav-item-title"> Women Techmakers </div> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20230314181749/https://developers.google.com/community/experts" track-type="nav" track-metadata-eventdetail="https://developers.google.com/community/experts" track-metadata-position="nav - community" track-metadata-module="tertiary nav" track-metadata-module_headline="groups" tooltip> <div class="devsite-nav-item-title"> Google Developers Experts </div> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20230314181749/https://www.techequitycollective.com/" track-type="nav" track-metadata-eventdetail="https://www.techequitycollective.com" track-metadata-position="nav - community" track-metadata-module="tertiary nav" track-metadata-module_headline="groups" tooltip> <div class="devsite-nav-item-title"> Tech Equity Collective </div> </a> </li> </ul> </div> <div class="devsite-tabs-dropdown-column "> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-title" role="heading" tooltip>Programs</li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20230314181749/https://developers.google.com/community/accelerators" track-type="nav" track-metadata-eventdetail="https://developers.google.com/community/accelerators" track-metadata-position="nav - community" track-metadata-module="tertiary nav" track-metadata-module_headline="programs" tooltip> <div class="devsite-nav-item-title"> Accelerator </div> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20230314181749/https://codingcompetitions.withgoogle.com/" track-type="nav" track-metadata-eventdetail="https://codingcompetitions.withgoogle.com/" track-metadata-position="nav - community" track-metadata-module="tertiary nav" track-metadata-module_headline="programs" tooltip> <div class="devsite-nav-item-title"> Coding Competitions </div> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20230314181749/https://developers.google.com/community/gdsc-solution-challenge" track-type="nav" track-metadata-eventdetail="https://developers.google.com/community/gdsc-solution-challenge" track-metadata-position="nav - community" track-metadata-module="tertiary nav" track-metadata-module_headline="programs" tooltip> <div class="devsite-nav-item-title"> Solution Challenge </div> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20230314181749/https://developers.google.com/community/devfest" track-type="nav" track-metadata-eventdetail="https://developers.google.com/community/devfest" track-metadata-position="nav - community" track-metadata-module="tertiary nav" track-metadata-module_headline="programs" tooltip> <div class="devsite-nav-item-title"> DevFest </div> </a> </li> </ul> </div> <div class="devsite-tabs-dropdown-column "> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-title" role="heading" tooltip>Stories</li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20230314181749/https://developers.google.com/community/stories" track-type="nav" track-metadata-eventdetail="https://developers.google.com/community/stories" track-metadata-position="nav - community" track-metadata-module="tertiary nav" track-metadata-module_headline="stories" tooltip> <div class="devsite-nav-item-title"> All Stories </div> </a> </li> </ul> </div> </div> </div> </tab> <tab> <a href="http://web.archive.org/web/20230314181749/https://developers.google.com/profile/u/me" track-metadata-eventdetail="https://developers.google.com/profile/u/me" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - developer profile" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Developer Profile" track-name="developer profile"> Developer Profile </a> </tab> <tab> <a href="http://web.archive.org/web/20230314181749/https://developers.googleblog.com/" track-metadata-eventdetail="https://developers.googleblog.com" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - blog" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Blog" track-name="blog"> Blog </a> </tab> </nav> </devsite-tabs> </div> <devsite-search aria-expanded="false" aria-haspopup="listbox" enable-signin enable-search enable-suggestions enable-query-completion project-name="Google Developers" tenant-name="Google Developers" role="combobox"> <form class="devsite-search-form" action="http://web.archive.org/web/20230314181749/https://developers.google.com/s/results" method="GET"> <div class="devsite-search-container"> <div class="devsite-searchbox"> <input aria-activedescendant="" aria-autocomplete="list" aria-label="Search" aria-haspopup="false" aria-multiline="false" aria-label="Search box" autocomplete="off" class="devsite-search-field devsite-search-query" name="q" placeholder="Search" role="searchbox" type="text" value=""> <div class="devsite-search-image material-icons" aria-hidden="true"></div> </div> <button type="button" search-open class="devsite-search-button devsite-header-icon-button button-flat material-icons" aria-label="Open search"></button> </div> </form> <button type="button" search-close class="devsite-search-button devsite-header-icon-button button-flat material-icons" aria-label="Close search"></button> </devsite-search> </div> <devsite-language-selector> <ul role="presentation"> <li role="presentation"> <a role="menuitem" lang="en">English</a> </li> <li role="presentation"> <a role="menuitem" lang="id">Bahasa Indonesia</a> </li> <li role="presentation"> <a role="menuitem" lang="de">Deutsch</a> </li> <li role="presentation"> <a role="menuitem" lang="es">Español</a> </li> <li role="presentation"> <a role="menuitem" lang="es_419">Español – América Latina</a> </li> <li role="presentation"> <a role="menuitem" lang="fr">Français</a> </li> <li role="presentation"> <a role="menuitem" lang="it">Italiano</a> </li> <li role="presentation"> <a role="menuitem" lang="pl">Polski</a> </li> <li role="presentation"> <a role="menuitem" lang="pt_br">Português – Brasil</a> </li> <li role="presentation"> <a role="menuitem" lang="vi">Tiếng Việt</a> </li> <li role="presentation"> <a role="menuitem" lang="tr">Türkçe</a> </li> <li role="presentation"> <a role="menuitem" lang="ru">Русский</a> </li> <li role="presentation"> <a role="menuitem" lang="he">עברית</a> </li> <li role="presentation"> <a role="menuitem" lang="ar">العربيّة</a> </li> <li role="presentation"> <a role="menuitem" lang="fa">فارسی</a> </li> <li role="presentation"> <a role="menuitem" lang="hi">हिंदी</a> </li> <li role="presentation"> <a role="menuitem" lang="bn">বাংলা</a> </li> <li role="presentation"> <a role="menuitem" lang="th">ภาษาไทย</a> </li> <li role="presentation"> <a role="menuitem" lang="zh_cn">中文 – 简体</a> </li> <li role="presentation"> <a role="menuitem" lang="zh_tw">中文 – 繁體</a> </li> <li role="presentation"> <a role="menuitem" lang="ja">日本語</a> </li> <li role="presentation"> <a role="menuitem" lang="ko">한국어</a> </li> </ul> </devsite-language-selector> <devsite-user enable-profiles fp-auth id="devsite-user"> <span class="button devsite-top-button" aria-hidden="true" visually-hidden>Sign in</span> </devsite-user> </div> </div> </div> <div class="devsite-collapsible-section devsite-header-no-lower-tabs "> <div class="devsite-header-background"> </div> </div> </div> </devsite-header> <devsite-book-nav scrollbars hidden> <div class="devsite-book-nav-filter hidden"> <input type="text" placeholder="Filter" aria-label="Type to filter" role="searchbox"> <span class="filter-clear-button hidden" data-title="Clear filter" aria-label="Clear filter" role="button" tabindex="0"></span> </div> <nav class="devsite-book-nav devsite-nav nocontent" aria-label="Side menu"> <div class="devsite-mobile-header"> <button type="button" id="devsite-close-nav" class="devsite-header-icon-button button-flat material-icons gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Close navigation" aria-label="Close navigation"> </button> <div class="devsite-product-name-wrapper"> <a href="/web/20230314181749/https://developers.google.com/" class="devsite-site-logo-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Site logo" track-type="globalNav" track-name="googleDevelopers" track-metadata-position="nav" track-metadata-eventdetail="nav"> <img src="http://web.archive.org/web/20230314181749im_/https://www.gstatic.com/devrel-devsite/prod/v8643e450826640c4e83cddfb72d4164f3407c33263e3070ba2a32acb4c849a5f/developers/images/lockup.svg" class="devsite-site-logo" alt="Google Developers"> </a> <span class="devsite-product-name"> <ul class="devsite-breadcrumb-list"> <li class="devsite-breadcrumb-item devsite-has-google-wordmark"> </li> </ul> </span> </div> </div> <div class="devsite-book-nav-wrapper"> <div class="devsite-mobile-nav-top"> <ul class="devsite-nav-list"> <li class="devsite-nav-item"> <a href="/web/20230314181749/https://developers.google.com/products" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: Products" track-name="products" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Products" track-type="globalNav" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Products </span> </a> <ul class="devsite-nav-responsive-tabs devsite-nav-has-menu "> <li class="devsite-nav-item"> <span class="devsite-nav-title" tooltip data-category="Site-Wide Custom Events" data-label="Tab: Products" track-name="products"> <span class="devsite-nav-text" tooltip menu="Products"> More </span> <span class="devsite-nav-icon material-icons" data-icon="forward" menu="Products"> </span> </span> </li> </ul> </li> <li class="devsite-nav-item"> <a href="/web/20230314181749/https://developers.google.com/events" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: Events" track-name="events" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Events" track-type="globalNav" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Events </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20230314181749/https://developers.google.com/learn" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: Learn" track-name="learn" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Learn" track-type="globalNav" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Learn </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20230314181749/https://developers.google.com/community" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: Community" track-name="community" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Community" track-type="globalNav" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Community </span> </a> <ul class="devsite-nav-responsive-tabs devsite-nav-has-menu "> <li class="devsite-nav-item"> <span class="devsite-nav-title" tooltip data-category="Site-Wide Custom Events" data-label="Tab: Community" track-name="community"> <span class="devsite-nav-text" tooltip menu="Community"> More </span> <span class="devsite-nav-icon material-icons" data-icon="forward" menu="Community"> </span> </span> </li> </ul> </li> <li class="devsite-nav-item"> <a href="/web/20230314181749/https://developers.google.com/profile/u/me" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: Developer Profile" track-name="developer profile" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Developer Profile" track-type="globalNav" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Developer Profile </span> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20230314181749/https://developers.googleblog.com/" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: Blog" track-name="blog" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Blog" track-type="globalNav" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Blog </span> </a> </li> </ul> </div> <div class="devsite-mobile-nav-bottom" role="navigation"> <ul class="devsite-nav-list" menu="Products" aria-label="Side menu" hidden> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip> <span class="devsite-nav-text" tooltip> Develop </span> </span> </li> <li class="devsite-nav-item"> <a href="//web.archive.org/web/20230314181749/https://developer.android.com/" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Android" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Android </span> </a> </li> <li class="devsite-nav-item"> <a href="//web.archive.org/web/20230314181749/https://chromeos.dev/" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: ChromeOS" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> ChromeOS </span> </a> </li> <li class="devsite-nav-item"> <a href="//web.archive.org/web/20230314181749/https://cloud.google.com/" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Cloud" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Cloud </span> </a> </li> <li class="devsite-nav-item"> <a href="//web.archive.org/web/20230314181749/https://firebase.google.com/" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Firebase" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Firebase </span> </a> </li> <li class="devsite-nav-item"> <a href="//web.archive.org/web/20230314181749/https://flutter.dev/" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Flutter" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Flutter </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20230314181749/https://developers.google.com/assistant" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Assistant" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Google Assistant </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20230314181749/https://developers.google.com/workspace" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Workspace" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Google Workspace </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20230314181749/https://developers.google.com/maps" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Maps Platform" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Maps Platform </span> </a> </li> <li class="devsite-nav-item"> <a href="//web.archive.org/web/20230314181749/https://www.tensorflow.org/" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: TensorFlow" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> TensorFlow </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20230314181749/https://developers.google.com/web" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Web" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Web </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20230314181749/https://developers.google.com/youtube" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: YouTube" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> YouTube </span> </a> </li> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip> <span class="devsite-nav-text" tooltip> Grow </span> </span> </li> <li class="devsite-nav-item"> <a href="//web.archive.org/web/20230314181749/https://firebase.google.com/" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Firebase" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Firebase </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20230314181749/https://developers.google.com/google-ads" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Ads" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Google Ads </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20230314181749/https://developers.google.com/analytics" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Analytics" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Google Analytics </span> </a> </li> <li class="devsite-nav-item"> <a href="//web.archive.org/web/20230314181749/https://developer.android.com/distribute/" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Play" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Google Play </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20230314181749/https://developers.google.com/search" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Search" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Search </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20230314181749/https://developers.google.com/web/fundamentals/engage-and-retain/push-notifications" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Web Push and Notification APIs" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Web Push and Notification APIs </span> </a> </li> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip> <span class="devsite-nav-text" tooltip> Earn </span> </span> </li> <li class="devsite-nav-item"> <a href="/web/20230314181749/https://developers.google.com/admob" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: AdMob" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> AdMob </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20230314181749/https://developers.google.com/google-ads/api" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Ads API" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Google Ads API </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20230314181749/https://developers.google.com/pay" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Pay" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Google Pay </span> </a> </li> <li class="devsite-nav-item"> <a href="//web.archive.org/web/20230314181749/https://developer.android.com/google/play/billing/" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Play Billing" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Google Play Billing </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20230314181749/https://developers.google.com/interactive-media-ads" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Interactive Media Ads" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Interactive Media Ads </span> </a> </li> </ul> <ul class="devsite-nav-list" menu="Community" aria-label="Side menu" hidden> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip> <span class="devsite-nav-text" tooltip> Groups </span> </span> </li> <li class="devsite-nav-item"> <a href="/web/20230314181749/https://developers.google.com/community/gdg" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Developer Groups" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Google Developer Groups </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20230314181749/https://developers.google.com/community/gdsc" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Developer Student Clubs" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Google Developer Student Clubs </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20230314181749/https://developers.google.com/womentechmakers" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Women Techmakers" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Women Techmakers </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20230314181749/https://developers.google.com/community/experts" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Developers Experts" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Google Developers Experts </span> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20230314181749/https://www.techequitycollective.com/" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Tech Equity Collective" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Tech Equity Collective </span> </a> </li> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip> <span class="devsite-nav-text" tooltip> Programs </span> </span> </li> <li class="devsite-nav-item"> <a href="/web/20230314181749/https://developers.google.com/community/accelerators" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Accelerator" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Accelerator </span> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20230314181749/https://codingcompetitions.withgoogle.com/" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Coding Competitions" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Coding Competitions </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20230314181749/https://developers.google.com/community/gdsc-solution-challenge" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Solution Challenge" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Solution Challenge </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20230314181749/https://developers.google.com/community/devfest" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: DevFest" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> DevFest </span> </a> </li> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip> <span class="devsite-nav-text" tooltip> Stories </span> </span> </li> <li class="devsite-nav-item"> <a href="/web/20230314181749/https://developers.google.com/community/stories" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: All Stories" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> All Stories </span> </a> </li> </ul> </div> </div> </nav> </devsite-book-nav> <section id="gc-wrapper"> <main role="main" class="devsite-main-content"> <div class="devsite-sidebar"> <div class="devsite-sidebar-content"> <devsite-toc class="devsite-nav" role="navigation" aria-label="On this page" depth="2" scrollbars disabled></devsite-toc> <devsite-recommendations-sidebar class="nocontent devsite-nav"> </devsite-recommendations-sidebar> </div> </div> <devsite-content> <article class="devsite-article"><style> /* Styles inlined from /site-assets/styles/landing.css */ /* Home page template - hero promo full bleed */ .dgc-hero-promo-full-bleed, .dgc-hero-promo-full-bleed-black-text { padding: 0; } .dgc-hero-promo-full-bleed-black-text .devsite-landing-row-item-description-content { color: black; } .dgc-hero-promo-full-bleed .devsite-landing-row-inner, .dgc-hero-promo-full-bleed-black-text .devsite-landing-row-inner{ padding: 0 2.5rem; } .dgc-hero-promo-full-bleed-black-text a { color: black !important; } .dgc-hero-promo-full-bleed img, .dgc-hero-promo-full-bleed-black-text img { border-radius: .6rem; } .dgc-hero-promo-full-bleed .dgc-hero-promo-full-bleed-button { background-color: transparent !important; border: 1px solid var(--tenant-inverted-text-color, white) !important; color: var(--tenant-inverted-text-color, white) !important; } .dgc-hero-promo-full-bleed-black-text .dgc-hero-promo-full-bleed-button { background-color: transparent !important; border: 1px solid var(--tenant-primary-text-color, black) !important; color: var(--tenant-primary-text-color, black) !important; } .dgc-hero-promo-full-bleed-button:hover, .dgc-hero-promo-full-bleed-button:focus { background-color: rgb(0,0,0,.15) !important; } @media screen and (max-width: 870px) { .dgc-hero-promo-full-bleed, .dgc-hero-promo-full-bleed-black-text { padding: 24px 0; } } @media screen and (max-width: 600px) { .dgc-hero-promo-full-bleed, .dgc-hero-promo-full-bleed-black-text { padding: 1px 0 36px; } } /* Home page template - hero promo full bleed with animation */ .dgc-hero-promo-animated figure { background-image: url(/web/20230314181749im_/https://developers.google.com/homepage-assets/images/build-anything-with-google.png) !important; background-size: contain !important; border-radius: .6rem; } .dgc-hero-promo-animated img { animation: heroPromo 4s; } @keyframes heroPromo { 0%, 50% { opacity: 0; } 100% { opacity: 1; } } /* Home page template - hero promo stories offset */ .dgc-hero-offset-inner > div:first-child { margin-inline-start: -10vw; min-width: 50vw; width: 880px; } /* [1] Ensure the row item description slightly overlaps its media. */ .dgc-hero-offset-inner > div:last-child { background-color: var(--tenant-background-1); border-radius: 8px; box-shadow: 0 0 30px -10px grey; padding: 32px; z-index: 1 /* [1] */; } .dgc-hero-offset > div { padding: 0 48px; } .dgc-hero-offset img { border-radius: 8px; height: 400px; object-fit: cover; } @media screen and (max-width: 1310px) { .dgc-hero-offset-inner > div:first-child { margin-inline-start: -14vw; width: 78vw; } .dgc-hero-offset-inner > div:last-child { width: 40vw; } .dgc-hero-offset-inner h3 a { display: inline-block; font-size: 24px; line-height: 28px; } } @media screen and (max-width: 840px) { .dgc-hero-offset > div { padding: 0; } /* [1] Forces hero to display in a column with flex centering rather than a * row at 840px width */ .dgc-hero-offset-inner { display: flex !important; /* [1] */ } /* [1] Forces image container width to full screen width when resized to 840px * rather than having small amounts of whitespace on each side. */ .dgc-hero-offset-inner > div:first-child { margin-inline-start: 0; width: 100% !important /* [1] */; } .dgc-hero-offset img { border-radius: 0; height: 50vh; } /* [1] Pull the description up in order to to overlap the image. */ /* [2] Adds padding to header/description card at lower resolution width * because mobile breakpoints remove all padding. */ .dgc-hero-offset-inner > div:last-child { margin-top: -144px !important; /* [1] */ padding: 32px !important; /* [2] */ width: calc(100% - 64px); } } /* Home page template - I/O Fullscreen takeover */ .dgc-hero-fullscreen { --dgc-hero-grid: '. . . .' 3fr '. heading . .' '. item . .' '. . . .' .4fr / 65px 500px 5fr 65px; --dgc-hero-heading-font-size: 60px; --dgc-hero-heading-line-height: 64px; --dgc-hero-margin: 0 calc(-50vw + 50%); } .dgc-hero-fullscreen-item { --dgc-hero-fullscreen-item-padding: 24px; } .dgc-hero-fullscreen-row::after { --dgc-hero-background: url(/web/20230314181749im_/https://developers.google.com/homepage-assets/images/io-promo-2023-badge.svg) no-repeat top 38px left 38px / 300px, url(/web/20230314181749im_/https://developers.google.com/homepage-assets/images/io-promo-2023.png) no-repeat top right 10vw / auto 100vh #202124 } /* Hide the banner on the homepage while DevCenter experiments are running. */ .dgc-hero-fullscreen .devsite-banner-announcement { display: none; } @media screen and (min-width: 2000px) { .dgc-hero-fullscreen { --dgc-hero-grid: '. . . .' 1.5fr '. heading . .' '. item . .' '. . . .' .4fr / 80px 25vw 5fr 80px; } .dgc-hero-fullscreen-row::after { --dgc-hero-background: url(/web/20230314181749im_/https://developers.google.com/homepage-assets/images/io-promo-2023-badge.svg) no-repeat top 38px left 38px / 18vw auto, url(/web/20230314181749im_/https://developers.google.com/homepage-assets/images/io-promo-2023.png) no-repeat top right 10vw / contain #202124 } .dgc-hero-fullscreen-row h2 { --dgc-hero-heading-font-size: 3vw; --dgc-hero-heading-line-height: 3vw; } .dgc-hero-fullscreen-item { --dgc-hero-fullscreen-item-padding: 1.5vw; } } @media screen and (max-width: 1440px) { .dgc-hero-fullscreen-row::after { --dgc-hero-background: url(/web/20230314181749im_/https://developers.google.com/homepage-assets/images/io-promo-2023-badge.svg) no-repeat top 38px left 38px / 300px, url(/web/20230314181749im_/https://developers.google.com/homepage-assets/images/io-promo-2023.png) no-repeat top right / cover #202124; } } @media screen and (max-width: 800px) { .dgc-hero-fullscreen { --dgc-hero-grid: '. .' 7fr '. .' 'item .' '. .' .75fr / 5fr 1fr; --dgc-hero-margin: 0; } .dgc-hero-fullscreen-row::after { --dgc-hero-background: url(/web/20230314181749im_/https://developers.google.com/homepage-assets/images/io-promo-2023-badge.svg) no-repeat top left / 300px, url(/web/20230314181749im_/https://developers.google.com/homepage-assets/images/io-promo-2023-tablet.png) no-repeat top left / cover #202124; } } @media screen and (max-width: 600px) { .dgc-hero-fullscreen { --dgc-hero-grid: '.' 5fr '.' 'item' '.' .75fr / 1fr; --dgc-hero-heading-font-size: 40px; --dgc-hero-heading-line-height: 42px; } .dgc-hero-fullscreen-row::after { --dgc-hero-background: url(/web/20230314181749im_/https://developers.google.com/homepage-assets/images/io-promo-2023-badge.svg) no-repeat top 6px left 4px / 50vw, url(/web/20230314181749im_/https://developers.google.com/homepage-assets/images/io-promo-2023-mobile.png) no-repeat top left / cover #202124; } } @media screen and (max-width: 600px) and (max-height: 410px) { .dgc-hero-fullscreen { --dgc-hero-heading-font-size: 32px; --dgc-hero-heading-line-height: 34px; } .dgc-hero-fullscreen-item { --dgc-hero-fullscreen-item-padding: 12px; } } /* [1] Override default overflow hidden property to allow sticky properties, * which allows fullscreen takeover to slide over the below content. */ .dgc-hero-fullscreen .devsite-wrapper { overflow: unset !important; /* [1] */ } /* [1] Override primary color background so that the row has a transparent * background that doesn't cover up the background image. */ .dgc-hero-fullscreen-row { background: transparent !important; /* [1] */ overflow: hidden; padding: 0; position: relative; z-index: 1; } .dgc-hero-fullscreen-row::after, .dgc-hero-fullscreen-row .devsite-landing-row-html { height: calc(100vh - 48px); } .dgc-hero-fullscreen-row::after { background: var(--dgc-hero-background); content: ''; position: absolute; top: 0; width: 100vw; } .dgc-hero-fullscreen-row .devsite-landing-row-html { display: grid; grid: var(--dgc-hero-grid); margin: var(--dgc-hero-margin); } .dgc-hero-fullscreen-row h2, .dgc-hero-fullscreen-item { z-index: 1; } .dgc-hero-fullscreen-row h2 { font-size: var(--dgc-hero-heading-font-size); font-weight: 500; grid-area: heading; line-height: var(--dgc-hero-heading-line-height); margin-block: unset; } .dgc-hero-fullscreen-item { background: var(--tenant-background-1); border: var(--tenant-primary-border); border-radius: 8px; font: normal 20px 'Google Sans'; grid-area: item; padding: var(--dgc-hero-fullscreen-item-padding); } .dgc-hero-fullscreen-item p { margin-block: var(--dgc-hero-fullscreen-item-padding); } .dgc-hero-fullscreen-row a { background: #fbbc04; border: 1px solid #202124; color: #202124; } .dgc-hero-fullscreen-row a.button:hover { background: #f9ab00; border: 1px solid #202124; color: #202124; } .dgc-hero-fullscreen-row a.button:focus, .dgc-hero-fullscreen-row a.button:active { background: #f29900; border: 1px solid #202124; color: #202124; } /* Home page - logo garden following fullscreen hero */ .dgc-hero-fullscreen-row + .dgc-logo-garden { bottom: -30vh; position: sticky; } .dgc-hero-fullscreen-row + .dgc-recs-carousel { bottom: -10vh; position: sticky; } /* Home page - hero */ /* Add a border between the hero and any following row other than .dgc-recs */ .dgc-hero + .devsite-landing-row:not(.dgc-recs) { border-top: 2px solid #f1f3f4; } .dgc-hero img { aspect-ratio: 720 / 416; } .dgc-hero .devsite-landing-row-item .devsite-landing-row-item-body h3 { font-size: 32px; line-height: 40px; } .dgc-hero .devsite-landing-row-item-image { margin: 40px auto; } .dgc-hero .devsite-landing-row-item-buttons { padding-top: 38px; } .dgc-recs-fallback { padding-top: 46px; } /* Reduce bottom padding for row to compensate for the extra space taken up by * carousel markers. */ .dgc-recs-carousel { padding-bottom: 16px; } /* Markers are only visible above 600px, so normalize the row padding for * mobile. */ @media screen and (max-width: 600px) { .dgc-recs-carousel { padding: 16px 26px; } } /* Home page - recommended content fallback */ .dgc-recs-fallback h2 { display: flex; font-size: 16px; line-height: 24px; margin-block: 0 24px; } .dgc-recs-fallback[header-position='top'] .devsite-landing-row-header + .devsite-landing-row-group { margin: 0; } .dgc-recs-fallback .devsite-landing-row-item-no-media h3 { font-size: 20px; line-height: 28px; } .dgc-recs-fallback .devsite-landing-row-item-icon-container[size], .dgc-recs-fallback [size] .devsite-landing-row-item-icon { height: 32px; width: 32px; } /* Home page - logo garden */ .dgc-logo-garden .devsite-landing-row-item-custom-image-icon { width: 64px; } .dgc-logo-garden-cta { padding-bottom: 100px; } @media screen and (max-width: 600px) { .dgc-hero-fullscreen-row + .dgc-logo-garden { bottom: -70vh; } .dgc-logo-garden-cta { margin-top: 40px; } } /* Home page - programs */ .dgc-programs.devsite-landing-row-item { overflow: visible; } .dgc-programs .devsite-landing-row-item-image { position: relative; } .dgc-programs .devsite-landing-row-item-image::before { background: center / contain no-repeat; content: ''; display: block; height: 160px; position: absolute; right: 8px; top: 50%; transform: translateY(-50%); width: 160px; } .dgc-programs--events .devsite-landing-row-item-image::before { background-image: url(/web/20230314181749im_/https://developers.google.com/site-assets/images/home/events-graphic.png); } .dgc-programs--community .devsite-landing-row-item-image::before { background-image: url(/web/20230314181749im_/https://developers.google.com/site-assets/images/home/community-graphic.png); } @media screen and (max-width: 840px) { .dgc-programs .devsite-landing-row-item-media { overflow: visible !important; } } /* Home page - experts */ .devsite-directory__wrapper { padding: 0 12px 0; } .devsite-directory__content { display: grid; grid-gap: 24px; grid-template-columns: repeat(var(--directory-columns, 4), 1fr); } .devsite-directory__content__item { background-color: #fff; margin: 0; padding: 0; } .experts-row { overflow: hidden; } .experts-directory__item__profile { padding: 20px 20px 0; text-align: center; } .experts-directory__item__profile-pic-holder { background-size: cover; border-radius: 50%; display: block; height: 100px; margin: 0 auto 20px; overflow: hidden; position: relative; width: 100px; } .experts-directory__item__name { margin: 0; } .experts-directory__item__name h3 { font-size: 12px; font-style: normal; font-weight: 500; padding-top: 15px; text-align: center; } .experts-directory__item__location, .experts-directory__item__experience { font: 400 14px/20px; margin-top: 0; } .experts-directory__item__expertise { color: gray; } .experts-directory__item__view-profile { margin: auto auto 16px; } @media screen and (max-width: 1000px) { .devsite-directory__content { --directory-columns: 2; } } @media screen and (max-width: 500px) { .devsite-directory__content { --directory-columns: 1; } } </style> <div class="devsite-banner devsite-banner-announcement"> <div class="devsite-banner-message"> <div class="devsite-banner-message-text"> <style> .devsite-banner-announcement { background: #e1f3fc; color: #02527e; font-size: 16px; font-weight: 500; } .devsite-banner-announcement a { color: #02527e; font-weight: 700; } .devsite-banner-announcement a:link:not(.button), .devsite-banner-announcement a:visited:not(.button) { background: 0; } .devsite-banner-announcement a:hover, .devsite-banner-announcement a:focus { text-decoration: none; } .devsite-banner-announcement .devsite-banner-message-text { margin: 0 auto; } </style> <span class="nocontent">Work smarter and build faster - <a href="http://web.archive.org/web/20230314181749/https://developers.google.com/events" class="gc-analytics-event nocontent" data-category="Announcement" data-label="Events promotion">see how at a developer event</a> </span> </div> </div> </div> <div class="devsite-article-meta nocontent" role="navigation"> <ul class="devsite-breadcrumb-list" aria-label="Breadcrumb"> <li class="devsite-breadcrumb-item "> <a href="http://web.archive.org/web/20230314181749/https://developers.google.com/" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Breadcrumbs" data-value="1" track-type="globalNav" track-name="breadcrumb" track-metadata-position="1" track-metadata-eventdetail="Google Developers"> Google Developers </a> </li> <li class="devsite-breadcrumb-item "> <div class="devsite-breadcrumb-guillemet material-icons" aria-hidden="true"></div> <a href="http://web.archive.org/web/20230314181749/https://developers.google.com/products" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Breadcrumbs" data-value="2" track-type="globalNav" track-name="breadcrumb" track-metadata-position="2" track-metadata-eventdetail=""> Products </a> </li> </ul> </div> <devsite-feature-tooltip ack-key="AckCollectionsBookmarkTooltipDismiss" analytics-category="Site-Wide Custom Events" analytics-action-show="Callout Profile displayed" analytics-action-close="Callout Profile dismissed" analytics-label="Create Collection Callout" class="devsite-page-bookmark-tooltip" dismiss-button="true" id="devsite-collections-dropdown" dismiss-button-text="Dismiss" close-button-text="Got it"> <devsite-bookmark></devsite-bookmark> <span slot="popout-heading"> Stay organized with collections </span> <span slot="popout-contents"> Save and categorize content based on your preferences. </span> </devsite-feature-tooltip> <devsite-toc class="devsite-nav" depth="2" devsite-toc-embedded disabled> </devsite-toc> <div class="devsite-article-body clearfix devsite-no-page-title"> <section class="devsite-landing-row devsite-landing-row-1-up dgc-hero-fullscreen-row" header-position="top"> <div class="devsite-landing-row-inner"> <div class="devsite-landing-row-html"> <div class="dgc-hero-fullscreen-item"> <h2 id="lets-goits-google-iomay-10,-2023" data-text="Let's goIt's Google I/OMay 10, 2023">Let's go<br>It's Google I/O<br>May 10, 2023</h2> <p>Tune in online to learn about the latest solutions, products, and technologies that help you work smarter and simplify your development workflow.</p> <a href="http://web.archive.org/web/20230314181749/https://io.google/2023/?utm_source=devsite-hpp&amp;utm_medium=embedded_marketing&amp;utm_campaign=hpp_svd&amp;utm_content=" class="button gc-analytics-event" data-category="Homepage Hero Banner" data-label="Google I/O 2023, Register now">Register now</a> </div> </div> </div> </section> <section class="devsite-landing-row devsite-landing-row-4-up devsite-landing-row-header-centered devsite-landing-row-large-headings devsite-landing-row-logos dgc-logo-garden" background="/web/20230314181749im_/https://developers.google.com/white" header-position="top"> <div class="devsite-landing-row-inner"> <header class="devsite-landing-row-header"> <div class="devsite-landing-row-header-text"> <h2 id="build-stronganythingstrong-with-google" data-text="Build anything with Google" tabindex="0"> Build <strong>anything</strong> with Google </h2> </div> </header> <div class="devsite-landing-row-group"> <div class="devsite-landing-row-item" description-position="bottom"> <div class="devsite-landing-row-item-media "> <figure class="devsite-landing-row-item-custom-image"> <div class="devsite-landing-row-item-custom-image-icon-wrapper"> <a href="http://web.archive.org/web/20230314181749/https://developer.android.com/" data-category="Homepage Logo Garden" data-label="Android"> <div class="devsite-landing-row-item-custom-image-icon-container" size="medium"> <img class="devsite-landing-row-item-custom-image-icon" alt="" src="http://web.archive.org/web/20230314181749im_/https://developer.android.com/images/brand/Android_Robot.png" srcset="http://web.archive.org/web/20230314181749im_/https://developer.android.com/images/brand/Android_Robot_36.png 36w, http://web.archive.org/web/20230314181749im_/https://developer.android.com/images/brand/Android_Robot_48.png 48w, http://web.archive.org/web/20230314181749im_/https://developer.android.com/images/brand/Android_Robot_72.png 72w, http://web.archive.org/web/20230314181749im_/https://developer.android.com/images/brand/Android_Robot_96.png 96w, http://web.archive.org/web/20230314181749im_/https://developer.android.com/images/brand/Android_Robot_480.png 480w, http://web.archive.org/web/20230314181749im_/https://developer.android.com/images/brand/Android_Robot_720.png 720w, http://web.archive.org/web/20230314181749im_/https://developer.android.com/images/brand/Android_Robot_856.png 856w, http://web.archive.org/web/20230314181749im_/https://developer.android.com/images/brand/Android_Robot_960.png 960w, http://web.archive.org/web/20230314181749im_/https://developer.android.com/images/brand/Android_Robot_1440.png 1440w, http://web.archive.org/web/20230314181749im_/https://developer.android.com/images/brand/Android_Robot_1920.png 1920w, http://web.archive.org/web/20230314181749im_/https://developer.android.com/images/brand/Android_Robot_2880.png 2880w" sizes="192px" loading="lazy"> </div> </a> </div> </figure> </div> <div class="devsite-landing-row-item-description"> <div class="devsite-landing-row-item-body"> <div class="devsite-landing-row-item-description-content"> Android </div> </div> </div> </div> <div class="devsite-landing-row-item" description-position="bottom"> <div class="devsite-landing-row-item-media "> <figure class="devsite-landing-row-item-custom-image"> <div class="devsite-landing-row-item-custom-image-icon-wrapper"> <a href="http://web.archive.org/web/20230314181749/https://cloud.google.com/developers" data-category="Homepage Logo Garden" data-label="Google Cloud"> <div class="devsite-landing-row-item-custom-image-icon-container" size="medium"> <img class="devsite-landing-row-item-custom-image-icon" alt="" src="//web.archive.org/web/20230314181749im_/https://www.gstatic.com/images/branding/product/2x/google_cloud_64dp.png" srcset="" sizes="192px" loading="lazy"> </div> </a> </div> </figure> </div> <div class="devsite-landing-row-item-description"> <div class="devsite-landing-row-item-body"> <div class="devsite-landing-row-item-description-content"> Google Cloud </div> </div> </div> </div> <div class="devsite-landing-row-item" description-position="bottom"> <div class="devsite-landing-row-item-media "> <figure class="devsite-landing-row-item-custom-image"> <div class="devsite-landing-row-item-custom-image-icon-wrapper"> <a href="http://web.archive.org/web/20230314181749/https://firebase.google.com/docs" data-category="Homepage Logo Garden" data-label="Firebase"> <div class="devsite-landing-row-item-custom-image-icon-container" size="medium"> <img class="devsite-landing-row-item-custom-image-icon" alt="" src="http://web.archive.org/web/20230314181749im_/https://www.gstatic.com/images/branding/product/2x/firebase_64dp.png" srcset="" sizes="192px" loading="lazy"> </div> </a> </div> </figure> </div> <div class="devsite-landing-row-item-description"> <div class="devsite-landing-row-item-body"> <div class="devsite-landing-row-item-description-content"> Firebase </div> </div> </div> </div> <div class="devsite-landing-row-item" description-position="bottom"> <div class="devsite-landing-row-item-media "> <figure class="devsite-landing-row-item-custom-image"> <div class="devsite-landing-row-item-custom-image-icon-wrapper"> <a href="http://web.archive.org/web/20230314181749/https://flutter.dev/docs" data-category="Homepage Logo Garden" data-label="Flutter"> <div class="devsite-landing-row-item-custom-image-icon-container" size="medium"> <img class="devsite-landing-row-item-custom-image-icon" alt="" src="http://web.archive.org/web/20230314181749im_/https://www.gstatic.com/images/branding/product/2x/flutter_64dp.png" srcset="" sizes="192px" loading="lazy"> </div> </a> </div> </figure> </div> <div class="devsite-landing-row-item-description"> <div class="devsite-landing-row-item-body"> <div class="devsite-landing-row-item-description-content"> Flutter </div> </div> </div> </div> <div class="devsite-landing-row-item" description-position="bottom"> <div class="devsite-landing-row-item-media "> <figure class="devsite-landing-row-item-custom-image"> <div class="devsite-landing-row-item-custom-image-icon-wrapper"> <a href="http://web.archive.org/web/20230314181749/https://developers.google.com/assistant" data-category="Homepage Logo Garden" data-label="Google Assistant"> <div class="devsite-landing-row-item-custom-image-icon-container" size="medium"> <img class="devsite-landing-row-item-custom-image-icon" alt="" src="http://web.archive.org/web/20230314181749im_/https://www.gstatic.com/images/branding/product/2x/assistant_64dp.png" srcset="" sizes="192px" loading="lazy"> </div> </a> </div> </figure> </div> <div class="devsite-landing-row-item-description"> <div class="devsite-landing-row-item-body"> <div class="devsite-landing-row-item-description-content"> Google Assistant </div> </div> </div> </div> <div class="devsite-landing-row-item" description-position="bottom"> <div class="devsite-landing-row-item-media "> <figure class="devsite-landing-row-item-custom-image"> <div class="devsite-landing-row-item-custom-image-icon-wrapper"> <a href="http://web.archive.org/web/20230314181749/https://developers.google.com/maps" data-category="Homepage Logo Garden" data-label="Maps"> <div class="devsite-landing-row-item-custom-image-icon-container" size="medium"> <img class="devsite-landing-row-item-custom-image-icon" alt="" src="http://web.archive.org/web/20230314181749im_/https://www.gstatic.com/images/branding/product/2x/maps_64dp.png" srcset="" sizes="192px" loading="lazy"> </div> </a> </div> </figure> </div> <div class="devsite-landing-row-item-description"> <div class="devsite-landing-row-item-body"> <div class="devsite-landing-row-item-description-content"> Maps Platform </div> </div> </div> </div> <div class="devsite-landing-row-item" description-position="bottom"> <div class="devsite-landing-row-item-media "> <figure class="devsite-landing-row-item-custom-image"> <div class="devsite-landing-row-item-custom-image-icon-wrapper"> <a href="http://web.archive.org/web/20230314181749/https://www.tensorflow.org/tutorials" data-category="Homepage Logo Garden" data-label="TensorFlow"> <div class="devsite-landing-row-item-custom-image-icon-container" size="medium"> <img class="devsite-landing-row-item-custom-image-icon" alt="" src="http://web.archive.org/web/20230314181749im_/https://developers.google.com/static/site-assets/images/products/tensorflow-logo-196.png" srcset="http://web.archive.org/web/20230314181749im_/https://developers.google.com/static/site-assets/images/products/tensorflow-logo-196_36.png 36w, http://web.archive.org/web/20230314181749im_/https://developers.google.com/static/site-assets/images/products/tensorflow-logo-196_48.png 48w, http://web.archive.org/web/20230314181749im_/https://developers.google.com/static/site-assets/images/products/tensorflow-logo-196_72.png 72w, http://web.archive.org/web/20230314181749im_/https://developers.google.com/static/site-assets/images/products/tensorflow-logo-196_96.png 96w, http://web.archive.org/web/20230314181749im_/https://developers.google.com/static/site-assets/images/products/tensorflow-logo-196_480.png 480w, http://web.archive.org/web/20230314181749im_/https://developers.google.com/static/site-assets/images/products/tensorflow-logo-196_720.png 720w, http://web.archive.org/web/20230314181749im_/https://developers.google.com/static/site-assets/images/products/tensorflow-logo-196_856.png 856w, http://web.archive.org/web/20230314181749im_/https://developers.google.com/static/site-assets/images/products/tensorflow-logo-196_960.png 960w, http://web.archive.org/web/20230314181749im_/https://developers.google.com/static/site-assets/images/products/tensorflow-logo-196_1440.png 1440w, http://web.archive.org/web/20230314181749im_/https://developers.google.com/static/site-assets/images/products/tensorflow-logo-196_1920.png 1920w, http://web.archive.org/web/20230314181749im_/https://developers.google.com/static/site-assets/images/products/tensorflow-logo-196_2880.png 2880w" sizes="192px" loading="lazy"> </div> </a> </div> </figure> </div> <div class="devsite-landing-row-item-description"> <div class="devsite-landing-row-item-body"> <div class="devsite-landing-row-item-description-content"> TensorFlow </div> </div> </div> </div> <div class="devsite-landing-row-item" description-position="bottom"> <div class="devsite-landing-row-item-media "> <figure class="devsite-landing-row-item-custom-image"> <div class="devsite-landing-row-item-custom-image-icon-wrapper"> <a href="http://web.archive.org/web/20230314181749/https://developers.google.com/web" data-category="Homepage Logo Garden" data-label="Web"> <div class="devsite-landing-row-item-custom-image-icon-container" size="medium"> <img class="devsite-landing-row-item-custom-image-icon" alt="" src="http://web.archive.org/web/20230314181749im_/https://developers.google.com/static/web/images/web-fundamentals-icon192x192.png" srcset="http://web.archive.org/web/20230314181749im_/https://developers.google.com/static/web/images/web-fundamentals-icon192x192_36.png 36w, http://web.archive.org/web/20230314181749im_/https://developers.google.com/static/web/images/web-fundamentals-icon192x192_48.png 48w, http://web.archive.org/web/20230314181749im_/https://developers.google.com/static/web/images/web-fundamentals-icon192x192_72.png 72w, http://web.archive.org/web/20230314181749im_/https://developers.google.com/static/web/images/web-fundamentals-icon192x192_96.png 96w, http://web.archive.org/web/20230314181749im_/https://developers.google.com/static/web/images/web-fundamentals-icon192x192_480.png 480w, http://web.archive.org/web/20230314181749im_/https://developers.google.com/static/web/images/web-fundamentals-icon192x192_720.png 720w, http://web.archive.org/web/20230314181749im_/https://developers.google.com/static/web/images/web-fundamentals-icon192x192_856.png 856w, http://web.archive.org/web/20230314181749im_/https://developers.google.com/static/web/images/web-fundamentals-icon192x192_960.png 960w, http://web.archive.org/web/20230314181749im_/https://developers.google.com/static/web/images/web-fundamentals-icon192x192_1440.png 1440w, http://web.archive.org/web/20230314181749im_/https://developers.google.com/static/web/images/web-fundamentals-icon192x192_1920.png 1920w, http://web.archive.org/web/20230314181749im_/https://developers.google.com/static/web/images/web-fundamentals-icon192x192_2880.png 2880w" sizes="192px" loading="lazy"> </div> </a> </div> </figure> </div> <div class="devsite-landing-row-item-description"> <div class="devsite-landing-row-item-body"> <div class="devsite-landing-row-item-description-content"> Web </div> </div> </div> </div> <div class="devsite-landing-row-item" description-position="bottom"> <div class="devsite-landing-row-item-media "> <figure class="devsite-landing-row-item-custom-image"> <div class="devsite-landing-row-item-custom-image-icon-wrapper"> <a href="http://web.archive.org/web/20230314181749/https://developers.google.com/google-ads" data-category="Homepage Logo Garden" data-label="Google Ads"> <div class="devsite-landing-row-item-custom-image-icon-container" size="medium"> <img class="devsite-landing-row-item-custom-image-icon" alt="" src="http://web.archive.org/web/20230314181749im_/https://developers.google.com/static/ads/images/ads_192px_clr.svg" srcset="" sizes="192px" loading="lazy"> </div> </a> </div> </figure> </div> <div class="devsite-landing-row-item-description"> <div class="devsite-landing-row-item-body"> <div class="devsite-landing-row-item-description-content"> Google Ads </div> </div> </div> </div> <div class="devsite-landing-row-item" description-position="bottom"> <div class="devsite-landing-row-item-media "> <figure class="devsite-landing-row-item-custom-image"> <div class="devsite-landing-row-item-custom-image-icon-wrapper"> <a href="http://web.archive.org/web/20230314181749/https://chromeos.dev/" data-category="Homepage Logo Garden" data-label="ChromeOS"> <div class="devsite-landing-row-item-custom-image-icon-container" size="medium"> <img class="devsite-landing-row-item-custom-image-icon" alt="" src="http://web.archive.org/web/20230314181749im_/https://developers.google.com/static/homepage-assets/images/chromeos-logo.svg" srcset="" sizes="192px" loading="lazy"> </div> </a> </div> </figure> </div> <div class="devsite-landing-row-item-description"> <div class="devsite-landing-row-item-body"> <div class="devsite-landing-row-item-description-content"> ChromeOS </div> </div> </div> </div> <div class="devsite-landing-row-item" description-position="bottom"> <div class="devsite-landing-row-item-media "> <figure class="devsite-landing-row-item-custom-image"> <div class="devsite-landing-row-item-custom-image-icon-wrapper"> <a href="http://web.archive.org/web/20230314181749/https://play.google.com/console/about/" data-category="Homepage Logo Garden" data-label="Google Play"> <div class="devsite-landing-row-item-custom-image-icon-container" size="medium"> <img class="devsite-landing-row-item-custom-image-icon" alt="" src="http://web.archive.org/web/20230314181749im_/https://www.gstatic.com/images/branding/product/2x/play_prism_64dp.png" srcset="" sizes="192px" loading="lazy"> </div> </a> </div> </figure> </div> <div class="devsite-landing-row-item-description"> <div class="devsite-landing-row-item-body"> <div class="devsite-landing-row-item-description-content"> Google Play </div> </div> </div> </div> <div class="devsite-landing-row-item" description-position="bottom"> <div class="devsite-landing-row-item-media "> <figure class="devsite-landing-row-item-custom-image"> <div class="devsite-landing-row-item-custom-image-icon-wrapper"> <a href="http://web.archive.org/web/20230314181749/https://developers.google.com/youtube" data-category="Homepage Logo Garden" data-label="YouTube"> <div class="devsite-landing-row-item-custom-image-icon-container" size="medium"> <img class="devsite-landing-row-item-custom-image-icon" alt="" src="http://web.archive.org/web/20230314181749im_/https://www.gstatic.com/images/branding/product/2x/youtube_64dp.png" srcset="" sizes="192px" loading="lazy"> </div> </a> </div> </figure> </div> <div class="devsite-landing-row-item-description"> <div class="devsite-landing-row-item-body"> <div class="devsite-landing-row-item-description-content"> YouTube </div> </div> </div> </div> </div> </div> </section> <section class="devsite-landing-row devsite-landing-row-1-up devsite-landing-row-item-centered devsite-landing-row-100 dgc-logo-garden-cta" header-position="top"> <div class="devsite-landing-row-inner"> <div class="devsite-landing-row-group"> <div class="devsite-landing-row-item devsite-landing-row-item-no-media" description-position="bottom"> <div class="devsite-landing-row-item-description"> <div class="devsite-landing-row-item-body"> <div class="devsite-landing-row-item-buttons"> <a href="http://web.archive.org/web/20230314181749/https://developers.google.com/products" class="button button-primary " data-label="View all developer products" data-category="Homepage Logo Garden">View all developer products</a> </div> </div> </div> </div> </div> </div> </section> <section class="devsite-landing-row devsite-landing-row-1-up devsite-landing-row-cta" header-position="top"> <div class="devsite-landing-row-inner"> <div class="devsite-landing-row-group"> <div class="devsite-landing-row-item devsite-landing-row-item-no-media" description-position="bottom"> <div class="devsite-landing-row-item-description"> <div class="devsite-landing-row-item-body"> <h3 id="work-smarter-and-build-faster" data-text="Work smarter and build faster" class="hide-from-toc no-link" tabindex="0"> <a href="http://web.archive.org/web/20230314181749/https://developers.google.com/events"> Work smarter and build faster </a> </h3> <div class="devsite-landing-row-item-buttons"> <a href="http://web.archive.org/web/20230314181749/https://developers.google.com/events" class="button gc-analytics-event " data-category="Banner Announcement" data-label="Capella promotion">See how at a developer event</a> </div> </div> </div> </div> </div> </div> </section> <section class="devsite-landing-row devsite-landing-row-2-up devsite-landing-row-cards devsite-landing-row-header-centered devsite-landing-row-no-image-background" header-position="top"> <div class="devsite-landing-row-inner"> <div class="devsite-landing-row-group"> <div class="devsite-landing-row-item dgc-programs dgc-programs--events" description-position="bottom"> <div class="devsite-landing-row-item-media "> <figure class="devsite-landing-row-item-image"> <a href="http://web.archive.org/web/20230314181749/https://developers.google.com/events" data-category="Homepage Promo Banner" data-label="Events, Main Title" data-action="link"> <img alt="" src="http://web.archive.org/web/20230314181749im_/https://developers.google.com/static/site-assets/images/home/card-header-grid.png" srcset="http://web.archive.org/web/20230314181749im_/https://developers.google.com/static/site-assets/images/home/card-header-grid_36.png 36w, http://web.archive.org/web/20230314181749im_/https://developers.google.com/static/site-assets/images/home/card-header-grid_48.png 48w, http://web.archive.org/web/20230314181749im_/https://developers.google.com/static/site-assets/images/home/card-header-grid_72.png 72w, http://web.archive.org/web/20230314181749im_/https://developers.google.com/static/site-assets/images/home/card-header-grid_96.png 96w, http://web.archive.org/web/20230314181749im_/https://developers.google.com/static/site-assets/images/home/card-header-grid_480.png 480w, http://web.archive.org/web/20230314181749im_/https://developers.google.com/static/site-assets/images/home/card-header-grid_720.png 720w, http://web.archive.org/web/20230314181749im_/https://developers.google.com/static/site-assets/images/home/card-header-grid_856.png 856w, http://web.archive.org/web/20230314181749im_/https://developers.google.com/static/site-assets/images/home/card-header-grid_960.png 960w, http://web.archive.org/web/20230314181749im_/https://developers.google.com/static/site-assets/images/home/card-header-grid_1440.png 1440w, http://web.archive.org/web/20230314181749im_/https://developers.google.com/static/site-assets/images/home/card-header-grid_1920.png 1920w, http://web.archive.org/web/20230314181749im_/https://developers.google.com/static/site-assets/images/home/card-header-grid_2880.png 2880w" sizes="(max-width: 600px) 100vw, (max-width: 840px) 50vw, 708px" loading="lazy"> </a> </figure> </div> <div class="devsite-landing-row-item-description"> <div class="devsite-landing-row-item-body"> <h3 id="events" data-text="Events" class="hide-from-toc no-link" tabindex="0"> <a href="http://web.archive.org/web/20230314181749/https://developers.google.com/events" data-category="Homepage Promo Banner" data-label="Events, Main Title" data-action="link"> Events </a> </h3> <div class="devsite-landing-row-item-description-content"> Bringing developers together in-person and online. Stay in the know about upcoming events, catch up on content you missed, and connect with Google experts. </div> <div class="devsite-landing-row-item-buttons"> <a href="http://web.archive.org/web/20230314181749/https://developers.google.com/events" class="button " data-label="Events, See Events" data-category="Homepage Promo Banner">See events</a> </div> </div> </div> </div> <div class="devsite-landing-row-item dgc-programs dgc-programs--community" description-position="bottom"> <div class="devsite-landing-row-item-media "> <figure class="devsite-landing-row-item-image"> <a href="http://web.archive.org/web/20230314181749/https://developers.google.com/community" data-category="Homepage Promo Banner" data-label="Community, Main Title" data-action="link"> <img alt="" src="http://web.archive.org/web/20230314181749im_/https://developers.google.com/static/site-assets/images/home/card-header-grid.png" srcset="http://web.archive.org/web/20230314181749im_/https://developers.google.com/static/site-assets/images/home/card-header-grid_36.png 36w, http://web.archive.org/web/20230314181749im_/https://developers.google.com/static/site-assets/images/home/card-header-grid_48.png 48w, http://web.archive.org/web/20230314181749im_/https://developers.google.com/static/site-assets/images/home/card-header-grid_72.png 72w, http://web.archive.org/web/20230314181749im_/https://developers.google.com/static/site-assets/images/home/card-header-grid_96.png 96w, http://web.archive.org/web/20230314181749im_/https://developers.google.com/static/site-assets/images/home/card-header-grid_480.png 480w, http://web.archive.org/web/20230314181749im_/https://developers.google.com/static/site-assets/images/home/card-header-grid_720.png 720w, http://web.archive.org/web/20230314181749im_/https://developers.google.com/static/site-assets/images/home/card-header-grid_856.png 856w, http://web.archive.org/web/20230314181749im_/https://developers.google.com/static/site-assets/images/home/card-header-grid_960.png 960w, http://web.archive.org/web/20230314181749im_/https://developers.google.com/static/site-assets/images/home/card-header-grid_1440.png 1440w, http://web.archive.org/web/20230314181749im_/https://developers.google.com/static/site-assets/images/home/card-header-grid_1920.png 1920w, http://web.archive.org/web/20230314181749im_/https://developers.google.com/static/site-assets/images/home/card-header-grid_2880.png 2880w" sizes="(max-width: 600px) 100vw, (max-width: 840px) 50vw, 708px" loading="lazy"> </a> </figure> </div> <div class="devsite-landing-row-item-description"> <div class="devsite-landing-row-item-body"> <h3 id="community" data-text="Community" class="hide-from-toc no-link" tabindex="0"> <a href="http://web.archive.org/web/20230314181749/https://developers.google.com/community" data-category="Homepage Promo Banner" data-label="Community, Main Title" data-action="link"> Community </a> </h3> <div class="devsite-landing-row-item-description-content"> Connect with fellow developers and startups in your area, hear from industry experts, share your skills, and learn new ones. </div> <div class="devsite-landing-row-item-buttons"> <a href="http://web.archive.org/web/20230314181749/https://developers.google.com/community" class="button " data-label="Community, Find community" data-category="Homepage Promo Banner">Find community</a> </div> </div> </div> </div> </div> </div> </section> <section class="devsite-landing-row devsite-landing-row-4-up devsite-landing-row-cards devsite-landing-row-header-centered" background="/web/20230314181749im_/https://developers.google.com/grey" header-position="top"> <div class="devsite-landing-row-inner"> <header class="devsite-landing-row-header"> <div class="devsite-landing-row-header-text"> <h2 id="news" data-text="News" tabindex="0"> News </h2> </div> </header> <div class="devsite-landing-row-group"> <div class="devsite-landing-row-item" description-position="bottom"> <div class="devsite-landing-row-item-media "> <figure class="devsite-landing-row-item-custom-image" background="/web/20230314181749im_/https://developers.google.com/white"> <div class="devsite-landing-row-item-custom-image-icon-wrapper"> <a href="http://web.archive.org/web/20230314181749/https://android-developers.googleblog.com/2022/05/whats-new-in-jetpack-compose.html" data-category="Homepage Promo Banner" data-label="Compose 1.2 Beta, Main title" data-action="link"> <div class="devsite-landing-row-item-custom-image-icon-container" background="/web/20230314181749im_/https://developers.google.com/white" size="medium"> <img class="devsite-landing-row-item-custom-image-icon" alt="" src="http://web.archive.org/web/20230314181749im_/https://developer.android.com/images/brand/Android_Robot.png" srcset="http://web.archive.org/web/20230314181749im_/https://developer.android.com/images/brand/Android_Robot_36.png 36w, http://web.archive.org/web/20230314181749im_/https://developer.android.com/images/brand/Android_Robot_48.png 48w, http://web.archive.org/web/20230314181749im_/https://developer.android.com/images/brand/Android_Robot_72.png 72w, http://web.archive.org/web/20230314181749im_/https://developer.android.com/images/brand/Android_Robot_96.png 96w, http://web.archive.org/web/20230314181749im_/https://developer.android.com/images/brand/Android_Robot_480.png 480w, http://web.archive.org/web/20230314181749im_/https://developer.android.com/images/brand/Android_Robot_720.png 720w, http://web.archive.org/web/20230314181749im_/https://developer.android.com/images/brand/Android_Robot_856.png 856w, http://web.archive.org/web/20230314181749im_/https://developer.android.com/images/brand/Android_Robot_960.png 960w, http://web.archive.org/web/20230314181749im_/https://developer.android.com/images/brand/Android_Robot_1440.png 1440w, http://web.archive.org/web/20230314181749im_/https://developer.android.com/images/brand/Android_Robot_1920.png 1920w, http://web.archive.org/web/20230314181749im_/https://developer.android.com/images/brand/Android_Robot_2880.png 2880w" sizes="192px" loading="lazy"> </div> </a> </div> </figure> </div> <div class="devsite-landing-row-item-description"> <div class="devsite-landing-row-item-body"> <h3 id="compose-12-beta" data-text="Compose 1.2 Beta" class="hide-from-toc no-link" tabindex="0"> <a href="http://web.archive.org/web/20230314181749/https://android-developers.googleblog.com/2022/05/whats-new-in-jetpack-compose.html" data-category="Homepage Promo Banner" data-label="Compose 1.2 Beta, Main title" data-action="link"> Compose 1.2 Beta </a> </h3> <div class="devsite-landing-row-item-description-content"> Learn about the features and APIs added in the new 1.2 beta release. </div> <div class="devsite-landing-row-item-buttons"> <a href="http://web.archive.org/web/20230314181749/https://android-developers.googleblog.com/2022/05/whats-new-in-jetpack-compose.html" class="button button-white " data-label="Compose 1.2 Beta, Learn more" data-category="Homepage Promo Banner" data-action="button">Learn more</a> </div> </div> </div> </div> <div class="devsite-landing-row-item" description-position="bottom"> <div class="devsite-landing-row-item-media "> <figure class="devsite-landing-row-item-custom-image" background="/web/20230314181749im_/https://developers.google.com/white"> <div class="devsite-landing-row-item-custom-image-icon-wrapper"> <a href="http://web.archive.org/web/20230314181749/https://m3.material.io/foundations/accessible-design/overview" data-category="Homepage Promo Banner" data-label="Design for everyone, Main title" data-action="link"> <div class="devsite-landing-row-item-custom-image-icon-container" background="/web/20230314181749im_/https://developers.google.com/white" size="medium"> <img class="devsite-landing-row-item-custom-image-icon" alt="" src="http://web.archive.org/web/20230314181749im_/https://developers.google.com/static/homepage-assets/images/material-design.png" srcset="http://web.archive.org/web/20230314181749im_/https://developers.google.com/static/homepage-assets/images/material-design_36.png 36w, http://web.archive.org/web/20230314181749im_/https://developers.google.com/static/homepage-assets/images/material-design_48.png 48w, http://web.archive.org/web/20230314181749im_/https://developers.google.com/static/homepage-assets/images/material-design_72.png 72w, http://web.archive.org/web/20230314181749im_/https://developers.google.com/static/homepage-assets/images/material-design_96.png 96w, http://web.archive.org/web/20230314181749im_/https://developers.google.com/static/homepage-assets/images/material-design_480.png 480w, http://web.archive.org/web/20230314181749im_/https://developers.google.com/static/homepage-assets/images/material-design_720.png 720w, http://web.archive.org/web/20230314181749im_/https://developers.google.com/static/homepage-assets/images/material-design_856.png 856w, http://web.archive.org/web/20230314181749im_/https://developers.google.com/static/homepage-assets/images/material-design_960.png 960w, http://web.archive.org/web/20230314181749im_/https://developers.google.com/static/homepage-assets/images/material-design_1440.png 1440w, http://web.archive.org/web/20230314181749im_/https://developers.google.com/static/homepage-assets/images/material-design_1920.png 1920w, http://web.archive.org/web/20230314181749im_/https://developers.google.com/static/homepage-assets/images/material-design_2880.png 2880w" sizes="192px" loading="lazy"> </div> </a> </div> </figure> </div> <div class="devsite-landing-row-item-description"> <div class="devsite-landing-row-item-body"> <h3 id="design-for-everyone" data-text="Design for everyone" class="hide-from-toc no-link" tabindex="0"> <a href="http://web.archive.org/web/20230314181749/https://m3.material.io/foundations/accessible-design/overview" data-category="Homepage Promo Banner" data-label="Design for everyone, Main title" data-action="link"> Design for everyone </a> </h3> <div class="devsite-landing-row-item-description-content"> Create beautiful, usable experiences that scale with Material Design 3's new accessibility guidance and patterns. </div> <div class="devsite-landing-row-item-buttons"> <a href="http://web.archive.org/web/20230314181749/https://m3.material.io/foundations/accessible-design/overview" class="button button-white " data-action="button" data-category="Homepage Promo Banner" data-label="Design for everyone, Learn more">Learn more</a> </div> </div> </div> </div> <div class="devsite-landing-row-item" description-position="bottom"> <div class="devsite-landing-row-item-media "> <figure class="devsite-landing-row-item-custom-image" background="/web/20230314181749im_/https://developers.google.com/white"> <div class="devsite-landing-row-item-custom-image-icon-wrapper"> <a href="http://web.archive.org/web/20230314181749/https://medium.com/flutter/whats-next-for-flutter-b94ce089f49c" data-category="Homepage Promo Banner" data-label="Explore Flutter 3.7, Main title" data-action="link"> <div class="devsite-landing-row-item-custom-image-icon-container" background="/web/20230314181749im_/https://developers.google.com/white" size="medium"> <img class="devsite-landing-row-item-custom-image-icon" alt="" src="http://web.archive.org/web/20230314181749im_/https://developers.google.com/static/site-assets/logo-flutter.svg" srcset="" sizes="192px" loading="lazy"> </div> </a> </div> </figure> </div> <div class="devsite-landing-row-item-description"> <div class="devsite-landing-row-item-body"> <h3 id="explore-flutter-37" data-text="Explore Flutter 3.7" class="hide-from-toc no-link" tabindex="0"> <a href="http://web.archive.org/web/20230314181749/https://medium.com/flutter/whats-next-for-flutter-b94ce089f49c" data-category="Homepage Promo Banner" data-label="Explore Flutter 3.7, Main title" data-action="link"> Explore Flutter 3.7 </a> </h3> <div class="devsite-landing-row-item-description-content"> Download the latest version for enhanced Material 3 support, adaptive layout, menu bars, cascading menus, and more. </div> <div class="devsite-landing-row-item-buttons"> <a href="http://web.archive.org/web/20230314181749/https://medium.com/flutter/whats-next-for-flutter-b94ce089f49c" class="button button-white " data-label="Explore Flutter 3.7, Learn more" data-category="Homepage Promo Banner" data-action="button">Learn more</a> </div> </div> </div> </div> <div class="devsite-landing-row-item" description-position="bottom"> <div class="devsite-landing-row-item-media "> <figure class="devsite-landing-row-item-custom-image" background="/web/20230314181749im_/https://developers.google.com/white"> <div class="devsite-landing-row-item-custom-image-icon-wrapper"> <a href="http://web.archive.org/web/20230314181749/https://developers.google.com/wallet" data-category="Homepage Promo Banner" data-label="New Google Wallet documentation, Main title" data-action="link"> <div class="devsite-landing-row-item-custom-image-icon-container" background="/web/20230314181749im_/https://developers.google.com/white" size="medium"> <img class="devsite-landing-row-item-custom-image-icon" alt="" src="http://web.archive.org/web/20230314181749im_/https://fonts.gstatic.com/s/i/productlogos/wallet/v8/192px.svg" srcset="" sizes="192px" loading="lazy"> </div> </a> </div> </figure> </div> <div class="devsite-landing-row-item-description"> <div class="devsite-landing-row-item-body"> <h3 id="new-google-wallet-documentation" data-text="New Google Wallet documentation" class="hide-from-toc no-link" tabindex="0"> <a href="http://web.archive.org/web/20230314181749/https://developers.google.com/wallet" data-category="Homepage Promo Banner" data-label="New Google Wallet documentation, Main title" data-action="link"> New Google Wallet documentation </a> </h3> <div class="devsite-landing-row-item-description-content"> Explore new use cases and developer documentation for Google Wallet. </div> <div class="devsite-landing-row-item-buttons"> <a href="http://web.archive.org/web/20230314181749/https://developers.google.com/wallet" class="button button-white " data-label="New Google Wallet documentation, Learn more" data-action="button" data-category="Homepage Promo Banner">Learn more</a> </div> </div> </div> </div> <div class="devsite-landing-row-item" description-position="bottom"> <div class="devsite-landing-row-item-media "> <figure class="devsite-landing-row-item-custom-image" background="/web/20230314181749im_/https://developers.google.com/white"> <div class="devsite-landing-row-item-custom-image-icon-wrapper"> <a href="http://web.archive.org/web/20230314181749/https://android-developers.googleblog.com/2023/01/control-when-changes-to-your-app-are-sent-for-review-with-new-play-console-features.html" data-category="Homepage Promo Banner" data-label="Better manage your app changes on Play, Main title" data-action="link"> <div class="devsite-landing-row-item-custom-image-icon-container" background="/web/20230314181749im_/https://developers.google.com/white" size="medium"> <img class="devsite-landing-row-item-custom-image-icon" alt="" src="http://web.archive.org/web/20230314181749im_/https://developers.google.com/static/site-assets/images/news/new-play-logo.png" srcset="http://web.archive.org/web/20230314181749im_/https://developers.google.com/static/site-assets/images/news/new-play-logo_36.png 36w, http://web.archive.org/web/20230314181749im_/https://developers.google.com/static/site-assets/images/news/new-play-logo_48.png 48w, http://web.archive.org/web/20230314181749im_/https://developers.google.com/static/site-assets/images/news/new-play-logo_72.png 72w, http://web.archive.org/web/20230314181749im_/https://developers.google.com/static/site-assets/images/news/new-play-logo_96.png 96w, http://web.archive.org/web/20230314181749im_/https://developers.google.com/static/site-assets/images/news/new-play-logo_480.png 480w, http://web.archive.org/web/20230314181749im_/https://developers.google.com/static/site-assets/images/news/new-play-logo_720.png 720w, http://web.archive.org/web/20230314181749im_/https://developers.google.com/static/site-assets/images/news/new-play-logo_856.png 856w, http://web.archive.org/web/20230314181749im_/https://developers.google.com/static/site-assets/images/news/new-play-logo_960.png 960w, http://web.archive.org/web/20230314181749im_/https://developers.google.com/static/site-assets/images/news/new-play-logo_1440.png 1440w, http://web.archive.org/web/20230314181749im_/https://developers.google.com/static/site-assets/images/news/new-play-logo_1920.png 1920w, http://web.archive.org/web/20230314181749im_/https://developers.google.com/static/site-assets/images/news/new-play-logo_2880.png 2880w" sizes="192px" loading="lazy"> </div> </a> </div> </figure> </div> <div class="devsite-landing-row-item-description"> <div class="devsite-landing-row-item-body"> <h3 id="better-manage-your-app-changes-on-play" data-text="Better manage your app changes on Play" class="hide-from-toc no-link" tabindex="0"> <a href="http://web.archive.org/web/20230314181749/https://android-developers.googleblog.com/2023/01/control-when-changes-to-your-app-are-sent-for-review-with-new-play-console-features.html" data-category="Homepage Promo Banner" data-label="Better manage your app changes on Play, Main title" data-action="link"> Better manage your app changes on Play </a> </h3> <div class="devsite-landing-row-item-description-content"> New Play Console features help you see what can be published immediately and what needs to be submitted for review. </div> <div class="devsite-landing-row-item-buttons"> <a href="http://web.archive.org/web/20230314181749/https://android-developers.googleblog.com/2023/01/control-when-changes-to-your-app-are-sent-for-review-with-new-play-console-features.html" class="button button-white " data-category="Homepage Promo Banner" data-label="Better manage your app changes on Play, Learn more" data-action="button">Learn more</a> </div> </div> </div> </div> <div class="devsite-landing-row-item" description-position="bottom"> <div class="devsite-landing-row-item-media "> <figure class="devsite-landing-row-item-custom-image" background="/web/20230314181749im_/https://developers.google.com/white"> <div class="devsite-landing-row-item-custom-image-icon-wrapper"> <a href="http://web.archive.org/web/20230314181749/https://opensource.google/projects" data-category="Homepage Promo Banner" data-label="Innovate now with open source, Main title" data-action="link"> <div class="devsite-landing-row-item-custom-image-icon-container" background="/web/20230314181749im_/https://developers.google.com/white" size="medium"> <img class="devsite-landing-row-item-custom-image-icon" alt="" src="http://web.archive.org/web/20230314181749im_/https://developers.google.com/static/homepage-assets/images/open-source.png" srcset="http://web.archive.org/web/20230314181749im_/https://developers.google.com/static/homepage-assets/images/open-source_36.png 36w, http://web.archive.org/web/20230314181749im_/https://developers.google.com/static/homepage-assets/images/open-source_48.png 48w, http://web.archive.org/web/20230314181749im_/https://developers.google.com/static/homepage-assets/images/open-source_72.png 72w, http://web.archive.org/web/20230314181749im_/https://developers.google.com/static/homepage-assets/images/open-source_96.png 96w, http://web.archive.org/web/20230314181749im_/https://developers.google.com/static/homepage-assets/images/open-source_480.png 480w, http://web.archive.org/web/20230314181749im_/https://developers.google.com/static/homepage-assets/images/open-source_720.png 720w, http://web.archive.org/web/20230314181749im_/https://developers.google.com/static/homepage-assets/images/open-source_856.png 856w, http://web.archive.org/web/20230314181749im_/https://developers.google.com/static/homepage-assets/images/open-source_960.png 960w, http://web.archive.org/web/20230314181749im_/https://developers.google.com/static/homepage-assets/images/open-source_1440.png 1440w, http://web.archive.org/web/20230314181749im_/https://developers.google.com/static/homepage-assets/images/open-source_1920.png 1920w, http://web.archive.org/web/20230314181749im_/https://developers.google.com/static/homepage-assets/images/open-source_2880.png 2880w" sizes="192px" loading="lazy"> </div> </a> </div> </figure> </div> <div class="devsite-landing-row-item-description"> <div class="devsite-landing-row-item-body"> <h3 id="innovate-now-with-open-source" data-text="Innovate now with open source" class="hide-from-toc no-link" tabindex="0"> <a href="http://web.archive.org/web/20230314181749/https://opensource.google/projects" data-category="Homepage Promo Banner" data-label="Innovate now with open source, Main title" data-action="link"> Innovate now with open source </a> </h3> <div class="devsite-landing-row-item-description-content"> From machine learning to mobile and beyond, browse Google's open source projects to use, share, and build on. </div> <div class="devsite-landing-row-item-buttons"> <a href="http://web.archive.org/web/20230314181749/https://opensource.google/projects" class="button button-white " data-action="button" data-label="Innovate now with open source, Learn more" data-category="Homepage Promo Banner">Learn more</a> </div> </div> </div> </div> <div class="devsite-landing-row-item" description-position="bottom"> <div class="devsite-landing-row-item-media "> <figure class="devsite-landing-row-item-custom-image" background="/web/20230314181749im_/https://developers.google.com/white"> <div class="devsite-landing-row-item-custom-image-icon-wrapper"> <a href="http://web.archive.org/web/20230314181749/https://developer.android.com/ml" data-category="Homepage Promo Banner" data-label="Smarter apps with on-device ML, Main title" data-action="link"> <div class="devsite-landing-row-item-custom-image-icon-container" background="/web/20230314181749im_/https://developers.google.com/white" size="medium"> <img class="devsite-landing-row-item-custom-image-icon" alt="" src="http://web.archive.org/web/20230314181749im_/https://developers.google.com/static/site-assets/logo-tensorflow.svg" srcset="" sizes="192px" loading="lazy"> </div> </a> </div> </figure> </div> <div class="devsite-landing-row-item-description"> <div class="devsite-landing-row-item-body"> <h3 id="smarter-apps-with-on-device-ml" data-text="Smarter apps with on-device ML" class="hide-from-toc no-link" tabindex="0"> <a href="http://web.archive.org/web/20230314181749/https://developer.android.com/ml" data-category="Homepage Promo Banner" data-label="Smarter apps with on-device ML, Main title" data-action="link"> Smarter apps with on-device ML </a> </h3> <div class="devsite-landing-row-item-description-content"> Enable custom features with essential APIs and services in Android's ML stack featuring TensorFlow Lite. </div> <div class="devsite-landing-row-item-buttons"> <a href="http://web.archive.org/web/20230314181749/https://developer.android.com/ml" class="button button-white " data-label="Smarter apps with on-device ML, Learn more" data-action="button" data-category="Homepage Promo Banner">Learn more</a> </div> </div> </div> </div> <div class="devsite-landing-row-item" description-position="bottom"> <div class="devsite-landing-row-item-media "> <figure class="devsite-landing-row-item-custom-image" background="/web/20230314181749im_/https://developers.google.com/white"> <div class="devsite-landing-row-item-custom-image-icon-wrapper"> <a href="http://web.archive.org/web/20230314181749/https://devlibrary.withgoogle.com/" data-category="Homepage Promo Banner" data-label="Find inspiration for your next project, Main title" data-action="link"> <div class="devsite-landing-row-item-custom-image-icon-container" background="/web/20230314181749im_/https://developers.google.com/white" size="medium"> <img class="devsite-landing-row-item-custom-image-icon" alt="" src="http://web.archive.org/web/20230314181749im_/https://developers.google.com/static/site-assets/developers-logo-color.svg" srcset="" sizes="192px" loading="lazy"> </div> </a> </div> </figure> </div> <div class="devsite-landing-row-item-description"> <div class="devsite-landing-row-item-body"> <h3 id="find-inspiration-for-your-next-project" data-text="Find inspiration for your next project" class="hide-from-toc no-link" tabindex="0"> <a href="http://web.archive.org/web/20230314181749/https://devlibrary.withgoogle.com/" data-category="Homepage Promo Banner" data-label="Find inspiration for your next project, Main title" data-action="link"> Find inspiration for your next project </a> </h3> <div class="devsite-landing-row-item-description-content"> Find out what the developer community is building with Google Dev Library. </div> <div class="devsite-landing-row-item-buttons"> <a href="http://web.archive.org/web/20230314181749/https://devlibrary.withgoogle.com/" class="button button-white " data-label="Find inspiration for your next project, Learn more" data-action="button" data-category="Homepage Promo Banner">Learn more</a> </div> </div> </div> </div> </div> </div> </section> <section class="devsite-landing-row devsite-landing-row-1-up devsite-landing-row-header-centered" header-position="top"> <div class="devsite-landing-row-inner"> <header class="devsite-landing-row-header"> <div class="devsite-landing-row-header-text"> <h2 id="find-a-google-developer-expert" data-text="Find a Google developer expert" tabindex="0"> Find a Google developer expert </h2> <div class="devsite-landing-row-description"> Browse our directory of developer experts who have been recognized by Google for their depth of tech knowledge and skills. </div> </div> <div class="devsite-landing-row-header-buttons"> <a href="http://web.archive.org/web/20230314181749/https://developers.google.com/community/experts/directory" class="button " data-category="Homepage Google Developers Expert" data-label="Find a Google Developers Expert">View all developer experts</a> </div> </header> </div> </section> <section class="devsite-landing-row devsite-landing-row-1-up experts-row" header-position="top"> <div class="devsite-landing-row-inner"> <div class="devsite-landing-row-html"> <devsite-iframe><iframe src="http://web.archive.org/web/20230314181749if_/https://developers.google.com/frame/root_7cf188d65b4b79fd6a11af1f8db957b5692e99134c002f6102ee852a65a656cc.frame" class="framebox inherit-locale devsite-directory" allow="clipboard-write https://developers-dot-devsite-v2-prod.appspot.com" allowfullscreen is-upgraded></iframe></devsite-iframe> </div> </div> </section> <devsite-hats-survey class="nocontent" hats-id="5Djwt4Azw0iQ84LPiVd0QYQ4sHzc" listnr-id="5123748"></devsite-hats-survey> </div> </article> <devsite-notification> </devsite-notification> <div class="devsite-content-data"> <template class="devsite-thumb-rating-down-categories"> [{ "type": "thumb-down", "id": "missingTheInformationINeed", "label":"Missing the information I need" },{ "type": "thumb-down", "id": "tooComplicatedTooManySteps", "label":"Too complicated / too many steps" },{ "type": "thumb-down", "id": "outOfDate", "label":"Out of date" },{ "type": "thumb-down", "id": "samplesCodeIssue", "label":"Samples / code issue" },{ "type": "thumb-down", "id": "otherDown", "label":"Other" }] </template> <template class="devsite-thumb-rating-up-categories"> [{ "type": "thumb-up", "id": "easyToUnderstand", "label":"Easy to understand" },{ "type": "thumb-up", "id": "solvedMyProblem", "label":"Solved my problem" },{ "type": "thumb-up", "id": "otherUp", "label":"Other" }] </template> </div> </devsite-content> </main> <devsite-footer-promos class="devsite-footer"> </devsite-footer-promos> <devsite-footer-linkboxes class="devsite-footer"> <nav class="devsite-footer-linkboxes nocontent" aria-label="Footer links"> <ul class="devsite-footer-linkboxes-list"> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Connect</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="//web.archive.org/web/20230314181749/https://googledevelopers.blogspot.com/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)"> Blog </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//web.archive.org/web/20230314181749/https://www.facebook.com/Google-Developers-967415219957038" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)"> Facebook </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//web.archive.org/web/20230314181749/https://medium.com/google-developers" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 3)"> Medium </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//web.archive.org/web/20230314181749/https://twitter.com/googledevs" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 4)"> Twitter </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//web.archive.org/web/20230314181749/https://www.youtube.com/user/GoogleDevelopers" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 5)"> YouTube </a> </li> </ul> </li> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Programs</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="//web.archive.org/web/20230314181749/https://www.womentechmakers.com/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)"> Women Techmakers </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/web/20230314181749/https://developers.google.com/community/gdg" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)"> Google Developer Groups </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/web/20230314181749/https://developers.google.com/community/experts" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 3)"> Google Developers Experts </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/web/20230314181749/https://developers.google.com/community/accelerators" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 4)"> Accelerators </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/web/20230314181749/https://developers.google.com/community/gdsc" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 5)"> Google Developer Student Clubs </a> </li> </ul> </li> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Developer consoles</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="//web.archive.org/web/20230314181749/https://console.developers.google.com/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)"> Google API Console </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//web.archive.org/web/20230314181749/https://console.cloud.google.com/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)"> Google Cloud Platform Console </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//web.archive.org/web/20230314181749/https://play.google.com/apps/publish" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 3)"> Google Play Console </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//web.archive.org/web/20230314181749/https://console.firebase.google.com/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 4)"> Firebase Console </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//web.archive.org/web/20230314181749/https://console.actions.google.com/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 5)"> Actions on Google Console </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//web.archive.org/web/20230314181749/https://cast.google.com/publish" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 6)"> Cast SDK Developer Console </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//web.archive.org/web/20230314181749/https://chrome.google.com/webstore/developer/dashboard" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 7)"> Chrome Web Store Dashboard </a> </li> </ul> </li> </ul> </nav> </devsite-footer-linkboxes> <devsite-footer-utility class="devsite-footer"> <div class="devsite-footer-utility nocontent"> <nav class="devsite-footer-sites" aria-label="Other Google Developers websites"> <a href="http://web.archive.org/web/20230314181749/https://developers.google.com/" class="devsite-footer-sites-logo-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Google Developers Link"> <picture> <source srcset="http://web.archive.org/web/20230314181749im_/https://www.gstatic.com/devrel-devsite/prod/v8643e450826640c4e83cddfb72d4164f3407c33263e3070ba2a32acb4c849a5f/developers/images/lockup-developers-dark-theme.svg" media="(prefers-color-scheme: none)" class="devsite-dark-theme" loading="lazy" alt="Google Developers"> <img class="devsite-footer-sites-logo" src="http://web.archive.org/web/20230314181749im_/https://www.gstatic.com/devrel-devsite/prod/v8643e450826640c4e83cddfb72d4164f3407c33263e3070ba2a32acb4c849a5f/developers/images/lockup-developers.svg" loading="lazy" alt="Google Developers"> </picture> </a> <ul class="devsite-footer-sites-list"> <li class="devsite-footer-sites-item"> <a href="//web.archive.org/web/20230314181749/https://developer.android.com/" class="devsite-footer-sites-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Android Link"> Android </a> </li> <li class="devsite-footer-sites-item"> <a href="//web.archive.org/web/20230314181749/https://developer.chrome.com/home" class="devsite-footer-sites-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Chrome Link"> Chrome </a> </li> <li class="devsite-footer-sites-item"> <a href="//web.archive.org/web/20230314181749/https://firebase.google.com/" class="devsite-footer-sites-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Firebase Link"> Firebase </a> </li> <li class="devsite-footer-sites-item"> <a href="//web.archive.org/web/20230314181749/https://cloud.google.com/" class="devsite-footer-sites-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Google Cloud Platform Link"> Google Cloud Platform </a> </li> <li class="devsite-footer-sites-item"> <a href="/web/20230314181749/https://developers.google.com/products" class="devsite-footer-sites-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer All products Link"> All products </a> </li> </ul> </nav> <nav class="devsite-footer-utility-links" aria-label="Utility links"> <ul class="devsite-footer-utility-list"> <li class="devsite-footer-utility-item "> <a class="devsite-footer-utility-link gc-analytics-event" href="/web/20230314181749/https://developers.google.com/terms/site-terms" data-category="Site-Wide Custom Events" data-label="Footer Terms link"> Terms </a> </li> <li class="devsite-footer-utility-item "> <a class="devsite-footer-utility-link gc-analytics-event" href="//web.archive.org/web/20230314181749/https://policies.google.com/privacy" data-category="Site-Wide Custom Events" data-label="Footer Privacy link"> Privacy </a> </li> <li class="devsite-footer-utility-item devsite-footer-utility-button"> <span class="devsite-footer-utility-description">Sign up for the Google Developers newsletter</span> <a class="devsite-footer-utility-link gc-analytics-event" href="//web.archive.org/web/20230314181749/https://services.google.com/fb/forms/googledevelopersnews" data-category="Site-Wide Custom Events" data-label="Footer Subscribe link"> Subscribe </a> </li> </ul> <devsite-language-selector> <ul role="presentation"> <li role="presentation"> <a role="menuitem" lang="en">English</a> </li> <li role="presentation"> <a role="menuitem" lang="id">Bahasa Indonesia</a> </li> <li role="presentation"> <a role="menuitem" lang="de">Deutsch</a> </li> <li role="presentation"> <a role="menuitem" lang="es">Español</a> </li> <li role="presentation"> <a role="menuitem" lang="es_419">Español – América Latina</a> </li> <li role="presentation"> <a role="menuitem" lang="fr">Français</a> </li> <li role="presentation"> <a role="menuitem" lang="it">Italiano</a> </li> <li role="presentation"> <a role="menuitem" lang="pl">Polski</a> </li> <li role="presentation"> <a role="menuitem" lang="pt_br">Português – Brasil</a> </li> <li role="presentation"> <a role="menuitem" lang="vi">Tiếng Việt</a> </li> <li role="presentation"> <a role="menuitem" lang="tr">Türkçe</a> </li> <li role="presentation"> <a role="menuitem" lang="ru">Русский</a> </li> <li role="presentation"> <a role="menuitem" lang="he">עברית</a> </li> <li role="presentation"> <a role="menuitem" lang="ar">العربيّة</a> </li> <li role="presentation"> <a role="menuitem" lang="fa">فارسی</a> </li> <li role="presentation"> <a role="menuitem" lang="hi">हिंदी</a> </li> <li role="presentation"> <a role="menuitem" lang="bn">বাংলা</a> </li> <li role="presentation"> <a role="menuitem" lang="th">ภาษาไทย</a> </li> <li role="presentation"> <a role="menuitem" lang="zh_cn">中文 – 简体</a> </li> <li role="presentation"> <a role="menuitem" lang="zh_tw">中文 – 繁體</a> </li> <li role="presentation"> <a role="menuitem" lang="ja">日本語</a> </li> <li role="presentation"> <a role="menuitem" lang="ko">한국어</a> </li> </ul> </devsite-language-selector> </nav> </div> </devsite-footer-utility> <devsite-panel></devsite-panel> </section></section> <devsite-sitemask></devsite-sitemask> <devsite-snackbar> </devsite-snackbar> <devsite-tooltip></devsite-tooltip> <devsite-heading-link></devsite-heading-link> <devsite-analytics analytics-iframe> <script type="application/json" analytics>[{&#34;dimensions&#34;: {&#34;dimension4&#34;: &#34;Google Developers&#34;, &#34;dimension1&#34;: &#34;Signed out&#34;, &#34;dimension6&#34;: &#34;en&#34;, &#34;dimension3&#34;: false, &#34;dimension5&#34;: &#34;en&#34;, &#34;dimension11&#34;: false}, &#34;gaid&#34;: &#34;UA-24532603-1&#34;, &#34;metrics&#34;: {&#34;ratings_count&#34;: &#34;metric2&#34;, &#34;ratings_value&#34;: &#34;metric1&#34;}}, {&#34;dimensions&#34;: {&#34;dimension0&#34;: &#34;39300012,39300251,39300191&#34;}, &#34;gaid&#34;: &#34;&#34;, &#34;metrics&#34;: {}}]</script> <script type="application/json" tag-management gtm>{&#34;ga4&#34;: [], &#34;gtm&#34;: [], &#34;parameters&#34;: {&#34;internalUser&#34;: &#34;False&#34;, &#34;language&#34;: {&#34;machineTranslated&#34;: &#34;False&#34;, &#34;requested&#34;: &#34;en&#34;, &#34;served&#34;: &#34;en&#34;}, &#34;pageType&#34;: &#34;article&#34;, &#34;projectName&#34;: &#34;Google Developers&#34;, &#34;signedIn&#34;: &#34;False&#34;, &#34;tenant&#34;: &#34;developers&#34;, &#34;recommendations&#34;: {&#34;sourcePage&#34;: &#34;&#34;, &#34;sourceType&#34;: 0, &#34;sourceRank&#34;: 0, &#34;sourceIdenticalDescriptions&#34;: 0, &#34;sourceTitleWords&#34;: 0, &#34;sourceDescriptionWords&#34;: 0, &#34;experiment&#34;: &#34;&#34;}, &#34;experiment&#34;: {&#34;ids&#34;: &#34;39300462,39300427&#34;}}, &#34;tags&#34;: []}</script> </devsite-analytics> <devsite-badger></devsite-badger> <script nonce="kCnD1v7hdKvgiqy1PQ9ivm/DthIc98"> (function(d,e,v,s,i,t,E){d['GoogleDevelopersObject']=i; t=e.createElement(v);t.async=1;t.src=s;E=e.getElementsByTagName(v)[0]; E.parentNode.insertBefore(t,E);})(window, document, 'script', 'http://web.archive.org/web/20230314181749/https://www.gstatic.com/devrel-devsite/prod/v8643e450826640c4e83cddfb72d4164f3407c33263e3070ba2a32acb4c849a5f/developers/js/app_loader.js', '[1,"en",null,"/js/devsite_app_module.js","http://web.archive.org/web/20230314181749/https://www.gstatic.com/devrel-devsite/prod/v8643e450826640c4e83cddfb72d4164f3407c33263e3070ba2a32acb4c849a5f","http://web.archive.org/web/20230314181749/https://www.gstatic.com/devrel-devsite/prod/v8643e450826640c4e83cddfb72d4164f3407c33263e3070ba2a32acb4c849a5f/developers","http://web.archive.org/web/20230314181749/https://developers-dot-devsite-v2-prod.appspot.com",1,null,["/_pwa/developers/manifest.json","http://web.archive.org/web/20230314181749/https://www.gstatic.com/devrel-devsite/prod/v8643e450826640c4e83cddfb72d4164f3407c33263e3070ba2a32acb4c849a5f/images/video-placeholder.svg","http://web.archive.org/web/20230314181749/https://www.gstatic.com/devrel-devsite/prod/v8643e450826640c4e83cddfb72d4164f3407c33263e3070ba2a32acb4c849a5f/developers/images/favicon.png","http://web.archive.org/web/20230314181749/https://www.gstatic.com/devrel-devsite/prod/v8643e450826640c4e83cddfb72d4164f3407c33263e3070ba2a32acb4c849a5f/developers/images/lockup.svg","http://web.archive.org/web/20230314181749/https://fonts.googleapis.com/css?family=Google+Sans:400,500|Roboto:400,400italic,500,500italic,700,700italic|Roboto+Mono:400,500,700&display=swap"],1,null,[1,6,8,12,14,17,21,25,40,50,52,63,70,75,76,80,87,91,92,93,97,98,100,101,102,103,104,105,107,108,109,110,111,112,113,115,117,118,120,122,124,125,126,127,129,130,131,132,133,134,135,136,138,140,141,144,147,148,149,150,151,152,154,155,156,157,158,159,161,163,164,165,168,169,170,172,173,179,180,182,183,186,190,191,193,196],"AIzaSyAP-jjEJBzmIyKR4F-3XITp8yM9T1gEEI8","AIzaSyB6xiKGDR5O3Ak2okS4rLkauxGUG7XP0hg","developers.google.com","AIzaSyAQk0fBONSGUqCNznf6Krs82Ap1-NV6J4o","AIzaSyCCxcqdrZ_7QMeLCRY20bh_SXdAYqy70KY",null,null,null,["Search__enable_acl_suggestions","BookNav__enable_collapsible_book_nav","Badges__enable_delete_badges","Badges__enable_hide_badges","Badges__enable_drag_and_drop_badges","Cloud__enable_cloudx_experiment_ids","Experiments__reqs_query_experiments","Significatio__enable_by_tenant","MiscFeatureFlags__emergency_css","Profiles__enable_page_saving","Search__enable_page_map","Profiles__enable_developer_profiles_dashboard_recommendations","Search__enable_devsite_serp","Cloud__enable_cloud_shell_fte_user_flow","Significatio__enable_experiment_id_caching","Profiles__enable_developer_profiles_interests","Cloud__enable_cloud_shell","Profiles__require_profile_eligibility_for_signin","Search__enable_faceted_search","MiscFeatureFlags__enable_footprints_record_views","SignIn__enable_auto_signin_oauth","Profiles__enable_developer_profiles_callout","Profiles__enable_public_developer_profiles","Cloud__enable_cloud_dlp_service","Cloud__enable_cloudx_ping","Profiles__enable_profile_collections","Experiments__enable_experiments","Cloud__enable_cloud_facet_chat","Localization__enable_locale_redirects","Profiles__enable_profile_notifications_ui","Search__enable_suggestions_from_borg","Profiles__enable_profile_communities","MiscFeatureFlags__enable_tls_version_for_gaia_calls","BookNav__enable_book_nav_filtering"]]') </script> <devsite-a11y-announce></devsite-a11y-announce> </body> </html><!-- FILE ARCHIVED ON 18:17:49 Mar 14, 2023 AND RETRIEVED FROM THE INTERNET ARCHIVE ON 02:27:26 Nov 29, 2024. JAVASCRIPT APPENDED BY WAYBACK MACHINE, COPYRIGHT INTERNET ARCHIVE. ALL OTHER CONTENT MAY ALSO BE PROTECTED BY COPYRIGHT (17 U.S.C. SECTION 108(a)(3)). --> <!-- playback timings (ms): captures_list: 0.584 exclusion.robots: 0.024 exclusion.robots.policy: 0.014 esindex: 0.01 cdx.remote: 13.62 LoadShardBlock: 163.724 (6) PetaboxLoader3.datanode: 138.294 (7) load_resource: 149.275 PetaboxLoader3.resolve: 95.954 -->

Pages: 1 2 3 4 5 6 7 8 9 10