CINXE.COM
Developer Stories: Inspiration and Ideas - Google for 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/community/stories","20231009111754","http://web.archive.org/","web","/_static/", "1696850274"); </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 for Developers"> <meta property="og:type" content="website"><meta name="theme-color" content="#1a73e8"><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/20231009111754/https://developers.google.com/_pwa/developers/manifest.json" crossorigin="use-credentials"> <link rel="preconnect" href="//web.archive.org/web/20231009111754/https://www.gstatic.com/" crossorigin> <link rel="preconnect" href="//web.archive.org/web/20231009111754/https://fonts.gstatic.com/" crossorigin> <link rel="preconnect" href="//web.archive.org/web/20231009111754/https://fonts.googleapis.com/" crossorigin> <link rel="preconnect" href="//web.archive.org/web/20231009111754/https://apis.google.com/" crossorigin> <link rel="preconnect" href="//web.archive.org/web/20231009111754/https://www.google-analytics.com/" crossorigin><link rel="stylesheet" href="//web.archive.org/web/20231009111754cs_/https://fonts.googleapis.com/css?family=Google+Sans:400,500|Roboto:400,400italic,500,500italic,700,700italic|Roboto+Mono:400,500,700&display=swap"> <link rel="stylesheet" href="//web.archive.org/web/20231009111754cs_/https://fonts.googleapis.com/css2?family=Material+Icons&family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=block"><link rel="stylesheet" href="http://web.archive.org/web/20231009111754cs_/https://www.gstatic.com/devrel-devsite/prod/v85a00308211ae0e76f4048e4f8440e0b4d866dea310d9c231254526f46e6d3e3/developers/css/app.css"> <link rel="shortcut icon" href="http://web.archive.org/web/20231009111754im_/https://www.gstatic.com/devrel-devsite/prod/v85a00308211ae0e76f4048e4f8440e0b4d866dea310d9c231254526f46e6d3e3/developers/images/favicon-new.png"> <link rel="apple-touch-icon" href="http://web.archive.org/web/20231009111754im_/https://www.gstatic.com/devrel-devsite/prod/v85a00308211ae0e76f4048e4f8440e0b4d866dea310d9c231254526f46e6d3e3/developers/images/touchicon-180-new.png"><link rel="canonical" href="http://web.archive.org/web/20231009111754/https://developers.google.com/community/stories"><link rel="search" type="application/opensearchdescription+xml" title="Google for Developers" href="http://web.archive.org/web/20231009111754/https://developers.google.com/s/opensearch.xml"> <link rel="alternate" hreflang="en" href="http://web.archive.org/web/20231009111754/https://developers.google.com/community/stories"/><link rel="alternate" hreflang="x-default" href="http://web.archive.org/web/20231009111754/https://developers.google.com/community/stories"/><link rel="alternate" hreflang="ar" href="http://web.archive.org/web/20231009111754/https://developers.google.com/community/stories?hl=ar"/><link rel="alternate" hreflang="bn" href="http://web.archive.org/web/20231009111754/https://developers.google.com/community/stories?hl=bn"/><link rel="alternate" hreflang="zh-Hans" href="http://web.archive.org/web/20231009111754/https://developers.google.com/community/stories?hl=zh-cn"/><link rel="alternate" hreflang="zh-Hant" href="http://web.archive.org/web/20231009111754/https://developers.google.com/community/stories?hl=zh-tw"/><link rel="alternate" hreflang="fa" href="http://web.archive.org/web/20231009111754/https://developers.google.com/community/stories?hl=fa"/><link rel="alternate" hreflang="fr" href="http://web.archive.org/web/20231009111754/https://developers.google.com/community/stories?hl=fr"/><link rel="alternate" hreflang="de" href="http://web.archive.org/web/20231009111754/https://developers.google.com/community/stories?hl=de"/><link rel="alternate" hreflang="he" href="http://web.archive.org/web/20231009111754/https://developers.google.com/community/stories?hl=he"/><link rel="alternate" hreflang="hi" href="http://web.archive.org/web/20231009111754/https://developers.google.com/community/stories?hl=hi"/><link rel="alternate" hreflang="id" href="http://web.archive.org/web/20231009111754/https://developers.google.com/community/stories?hl=id"/><link rel="alternate" hreflang="it" href="http://web.archive.org/web/20231009111754/https://developers.google.com/community/stories?hl=it"/><link rel="alternate" hreflang="ja" href="http://web.archive.org/web/20231009111754/https://developers.google.com/community/stories?hl=ja"/><link rel="alternate" hreflang="ko" href="http://web.archive.org/web/20231009111754/https://developers.google.com/community/stories?hl=ko"/><link rel="alternate" hreflang="pl" href="http://web.archive.org/web/20231009111754/https://developers.google.com/community/stories?hl=pl"/><link rel="alternate" hreflang="pt-BR" href="http://web.archive.org/web/20231009111754/https://developers.google.com/community/stories?hl=pt-br"/><link rel="alternate" hreflang="ru" href="http://web.archive.org/web/20231009111754/https://developers.google.com/community/stories?hl=ru"/><link rel="alternate" hreflang="es-419" href="http://web.archive.org/web/20231009111754/https://developers.google.com/community/stories?hl=es-419"/><link rel="alternate" hreflang="th" href="http://web.archive.org/web/20231009111754/https://developers.google.com/community/stories?hl=th"/><link rel="alternate" hreflang="tr" href="http://web.archive.org/web/20231009111754/https://developers.google.com/community/stories?hl=tr"/><link rel="alternate" hreflang="vi" href="http://web.archive.org/web/20231009111754/https://developers.google.com/community/stories?hl=vi"/><title>Developer Stories: Inspiration and Ideas - Google for Developers</title> <meta property="og:title" content="Developer Stories: Inspiration and Ideas - Google for Developers"><meta name="description" content="Read developer stories and ideas from Google's developer community. Be inspired by all the clever ways technology is being used to solve problems."> <meta property="og:description" content="Read developer stories and ideas from Google's developer community. Be inspired by all the clever ways technology is being used to solve problems."><meta property="og:url" content="http://web.archive.org/web/20231009111754/https://developers.google.com/community/stories"><meta property="og:locale" content="en"><script type="application/ld+json"> { "@context": "http://web.archive.org/web/20231009111754/https://schema.org", "@type": "Article", "headline": "Developer Stories: Inspiration and Ideas - Google for Developers" } </script> <link rel="stylesheet" href="/web/20231009111754cs_/https://developers.google.com/extras.css"></head> <body class="community-stories" template="landing" theme="google-blue" type="article" layout="full" pending> <devsite-progress type="indeterminate" id="app-progress"></devsite-progress> <section class="devsite-wrapper"><devsite-header role="banner"> <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/20231009111754/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="googleForDevelopers" track-metadata-position="nav" track-metadata-eventdetail="nav"> <img src="http://web.archive.org/web/20231009111754im_/https://www.gstatic.com/devrel-devsite/prod/v85a00308211ae0e76f4048e4f8440e0b4d866dea310d9c231254526f46e6d3e3/developers/images/lockup-new.svg" class="devsite-site-logo" alt="Google for Developers"> </a> </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/20231009111754/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/20231009111754/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/20231009111754/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/20231009111754/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/20231009111754/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/20231009111754/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/20231009111754/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/20231009111754/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"> Google Maps Platform </div> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231009111754/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="//web.archive.org/web/20231009111754/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/20231009111754/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/20231009111754/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/20231009111754/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/20231009111754/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/20231009111754/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/20231009111754/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/20231009111754/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/20231009111754/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/20231009111754/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/20231009111754/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/20231009111754/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/20231009111754/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/20231009111754/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/20231009111754/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/20231009111754/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" aria-label="Learning Catalog"> Learn </a> </tab> <tab dropdown> <a href="http://web.archive.org/web/20231009111754/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/20231009111754/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/20231009111754/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/20231009111754/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/20231009111754/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 Developer Experts </div> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231009111754/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/20231009111754/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/20231009111754/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/20231009111754/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/20231009111754/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/20231009111754/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/20231009111754/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 tenant-name="Google for Developers" role="combobox"> <form class="devsite-search-form" action="http://web.archive.org/web/20231009111754/https://developers.google.com/s/results" method="GET"> <div class="devsite-search-container"> <button type="button" search-open class="devsite-search-button devsite-header-icon-button button-flat material-icons" aria-label="Open search"></button> <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> </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> </devsite-header> <devsite-book-nav scrollbars hidden> <div class="devsite-book-nav-filter hidden"> <span class="filter-list-icon material-icons" aria-hidden="true"></span> <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/20231009111754/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="googleForDevelopers" track-metadata-position="nav" track-metadata-eventdetail="nav"> <img src="http://web.archive.org/web/20231009111754im_/https://www.gstatic.com/devrel-devsite/prod/v85a00308211ae0e76f4048e4f8440e0b4d866dea310d9c231254526f46e6d3e3/developers/images/lockup-new.svg" class="devsite-site-logo" alt="Google for Developers"> </a> </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/20231009111754/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/20231009111754/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/20231009111754/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" aria-label="Learning Catalog" 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/20231009111754/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/20231009111754/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/20231009111754/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"> <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/20231009111754/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/20231009111754/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/20231009111754/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/20231009111754/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/20231009111754/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/20231009111754/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/20231009111754/https://developers.google.com/maps" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Maps Platform" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Google Maps Platform </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20231009111754/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.archive.org/web/20231009111754/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/20231009111754/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/20231009111754/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/20231009111754/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/20231009111754/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/20231009111754/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/20231009111754/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/20231009111754/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/20231009111754/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/20231009111754/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/20231009111754/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/20231009111754/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/20231009111754/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/20231009111754/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/20231009111754/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/20231009111754/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/20231009111754/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/20231009111754/https://developers.google.com/community/experts" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Developer Experts" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Google Developer Experts </span> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231009111754/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/20231009111754/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="/web/20231009111754/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/20231009111754/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/20231009111754/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 /community/css/developer-programs-styles.css */ @media screen and (max-width: 840px) { .community-faq { --community-faq-margin-bottom: 24px; } } @media screen and (max-width: 600px) { .community-faq { --community-faq-margin-bottom: 16px; } } .devsite-landing-page-with-side-navs .devsite-page-nav { display: none; } /* Generic classes */ .devsite-event-map { padding-bottom: 100%; position: relative; } @media only screen and (min-width: 720px) { .devsite-event-map { padding-bottom: 50%; } } .devsite-event-map iframe { left: 0; position: absolute; top: 0; } .programs-landing-page b.programs-extra-bold { font-weight: 500; } .programs-landing-page-center-image { margin: auto; } /* Devsite overrides */ .programs-row-no-top-padding { padding-top: 0 !important; } .programs-landing-row-pad-top { padding-top: 40px !important; } .programs-landing-row-pad-bottom { padding-bottom: 40px !important; } .programs-landing-row-pad-sides { padding-left: 100px !important; padding-right: 100px !important; } .programs-landing-row-pad-sides-except-mobile { padding-left: 100px !important; padding-right: 100px !important; } @media only screen and (max-width: 841px) { .programs-landing-row-pad-sides-except-mobile { padding-left: 0 !important; padding-right: 0 !important; } } .programs-landing-row-width-60 { flex-basis: 60%; } .programs-landing-row-border-top { border-top: 1px solid #d8d8d8; } .devsite-landing-row-item-no-media { border: none !important; } /* Force full-width on tablet */ @media only screen and (min-width: 600px) and (max-width: 841px) { .programs-tablet-full-width .devsite-landing-row-item-no-media { -webkit-box-flex: 0; -ms-flex: 0 0 100%; flex: 0 0 100%; } .programs-tablet-full-width .devsite-landing-row-item { -webkit-box-orient: vertical !important; -webkit-box-direction: normal !important; -ms-flex-direction: column !important; flex-direction: column !important; } } /* For bulleted lists that are created using icon classes */ .programs-landing-page .devsite-list-item-bullet-disc .devsite-landing-row-item-icon { font-size: 12px; padding: 20px; } .devsite-landing-row-item-list-item-icon-container[size=large] .devsite-landing-row-item-list-item-icon { font-size: 64px; height: 64px; width: 64px; } /* Assign corresponding colors depending on program */ .programs-landing-page.community-program .devsite-landing-row-item-icon-container { color: #4285f4; } .programs-landing-page.launchpad-program .devsite-landing-row-item-icon-container { color: #db4437; } .programs-landing-page.experts-program .devsite-landing-row-item-icon-container { color: #4285f4; } .programs-landing-page .devsite-landing-row-item-list-item:not(:first-child) { margin-top: 12px; } .programs-landing-page .devsite-landing-row-item-list { margin-top: 0; } .programs-landing-page .launchpad-program-mentors .devsite-landing-row-item-description-content .mentors-illo { margin-top: 50px; } /* Gives some breathing room. */ .programs-landing-page .programs-map-comfy-description .devsite-landing-row-description { margin-bottom: 40px; } .programs-landing-page .launchpad-program-locations .devsite-landing-row-item-list { display: -webkit-box; display: -ms-flexbox; display: flex; -ms-flex-wrap: wrap; flex-wrap: wrap; -webkit-box-pack: justify; -ms-flex-pack: justify; justify-content: space-between; } .programs-landing-page .launchpad-program-locations .devsite-landing-row-item-list .devsite-landing-row-item-list-item { -webkit-box-flex: 0; -ms-flex: 0 0 calc(50% - 10px); flex: 0 0 calc(50% - 10px); } .programs-landing-page .launchpad-program-locations .devsite-landing-row-item-list .devsite-landing-row-item-list-item h4 { font-size: 22px; line-height: 30px; } .programs-landing-page .launchpad-program-locations .devsite-landing-row-item-list .devsite-landing-row-item-list-item p { font-size: 16px; line-height: 26px; } /* Fixes alignment of image with empty description */ .programs-landing-page .launchpad-program-locations-image .devsite-landing-row-item-description:empty { display: none; } .programs-landing-page .launchpad-program-locations-image .devsite-landing-row-item-image { margin: auto; } .programs-map-header .devsite-landing-row-header { margin: 0; } .programs-landing-page .programs-winners-list .devsite-landing-row-item-list { margin-bottom: 0; } .programs-landing-page .programs-winners-list .devsite-landing-row-item-list h4 { font-size: 14px; } /* * Typography overrides */ body.programs-landing-page, .programs-landing-page h3.programs-list-heading, [background=grey], [background=grey] h3, [background=grey] .devsite-landing-row-description { color: #676c72; } .programs-landing-page .devsite-landing-row:not(.programs-hero) h2, .programs-landing-page .devsite-landing-row-large-headings .devsite-landing-row-item-description h3 { color: var(--tenant-primary-text-color); font: 400 34px/40px Google Sans, sans-serif; letter-spacing: -.5px; } .programs-landing-page small { display: inline-block; line-height: 1.25; } .programs-landing-page .disclaimer { color: #babfc5; font-style: italic; font-size: 13px; } .programs-landing-page .devsite-landing-row-large-headings .devsite-landing-row-item-list h4 { font: 400 16px/26px Google Sans, sans-serif; } .programs-landing-page .devsite-landing-row-large-headings.connect-with-developers .devsite-landing-row-item-list .devsite-landing-row-item-list-item-description h4 { font: 400 20px/32px Google Sans, sans-serif; letter-spacing: -.01em; } .programs-landing-page .programs-heading-blue h2 { color: #4285f4; } .programs-text-blue { color: #4285f4 !important; } /* Sign-in banner styles */ .programs-landing-page .programs-banner { padding-top: 0 !important; } .programs-landing-page .programs-banner .devsite-banner { color: #fff; } .programs-landing-page .programs-banner .devsite-banner a { color: #fff; font-weight: 600; } .programs-landing-page.community-program .programs-banner .devsite-banner { background-color: #4285f4; } .programs-landing-page.launchpad-program .programs-banner .devsite-banner { background-color: #db4437; } .programs-landing-page.gdsc-program .programs-banner .devsite-banner { background-color: #4285f4; } .programs-landing-page.gdg-program .programs-banner .devsite-banner { background-color: #4285f4; } .programs-landing-page .banner-image { left: 50%; max-width: 100vw; position: relative; -webkit-transform: translateX(-50%); transform: translateX(-50%); width: 100vw; } /* * CTA rows */ .programs-landing-page.gdsc-program .devsite-landing-row-cta { background-color: #4285f4; color: #fff; } .programs-landing-page.gdg-program .devsite-landing-row-cta { background-color: #4285f4; color: #fff; } /* * Programs hero */ .programs-landing-page .programs-hero h2, .programs-landing-page .programs-hero.devsite-landing-row-large-headings .devsite-landing-row-item-description h3 { font: 400 44px/52px Google Sans, sans-serif; letter-spacing: -.5px; } .programs-landing-page .devsite-landing-row.programs-hero:not(.devsite-background):not([background]):not(.devsite-landing-row-cta):not(.devsite-landing-row-marquee):not(:first-child) .devsite-landing-row-header-text>h2:first-child { margin-top: 0; } .programs-landing-page.community-program .programs-hero h2, .programs-landing-page.community-program .programs-hero.devsite-landing-row-large-headings .devsite-landing-row-item-description h3 { color: #4285f4; } .programs-landing-page li .compare-yes::before { margin-right: 6px; } .programs-landing-page.launchpad-program .programs-hero h2, .programs-landing-page.launchpad-program .programs-hero.devsite-landing-row-large-headings .devsite-landing-row-item-description h3, .programs-landing-page.launchpad-program .compare-yes::before { color: #db4437; } .programs-landing-page.developer-agency .programs-hero h2, .programs-landing-page.developer-agency .programs-hero.devsite-landing-row-large-headings .devsite-landing-row-item-description h3, .programs-landing-page.developer-agency .compare-yes::before { color: #4285f4; } .programs-landing-page.gdsc-program .programs-hero h2, .programs-landing-page.gdsc-program .programs-hero.devsite-landing-row-large-headings .devsite-landing-row-item-description h3 { color: #4285f4; } .programs-landing-page.gdg-program .programs-hero h2, .programs-landing-page.gdg-program .programs-hero.devsite-landing-row-large-headings .devsite-landing-row-item-description h3 { color: #4285f4; } .programs-landing-page.experts-program .programs-hero h2, .programs-landing-page.experts-program .programs-hero.devsite-landing-row-large-headings .devsite-landing-row-item-description h3, .programs-landing-page.experts-program .compare-yes::before { color: #4285f4; } .programs-landing-page .programs-hero-list ul { list-style: none outside; padding-left: 0; } .programs-landing-page .programs-list-heading { font-family: Roboto, sans-serif; font-size: 20px; line-height: 32px; margin-bottom: 12px; } .community-hero { margin: auto; max-width: 680px; } /* [1] Overrides black text on community guidelines banner */ .accelerators-community-guidelines h3 a, .accelerators-community-guidelines h3 + div { color: white !important; /* [1] */ } .programs-landing-page .devsite-landing-row:not(.programs-hero).accelerators-hero h2 { font-size: 48px; margin-bottom: 24px; } .accelerators-hero h2 + div { font-size: 20px; } .mentors-applications-banner, .accelerators-community-guidelines { background: #1a73e8; border-radius: 8px; color: white; font-size: 18px; padding: 24px; text-align: center; } .experts-profile-wrapper { align-items: center; color: var(--tenant-primary-text-color); } .experts-profile-wrapper:has(.gde-mentor-quote) { margin: 0 auto 30px auto; max-width: 950px; } #social-links { font-size: 20px; margin: 32px 0 16px; } .stay-in-touch h3 { font-size: 32px; text-align: center; } .stay-in-touch h3 + div { display: flex; gap: 12px; justify-content: center; } .stay-in-touch a { align-items: center; border-radius: 2px; display: flex; justify-content: center; height: 28px; width: 28px; } .stay-in-touch img { width: 20px; } .stay-in-touch a:hover { background: #f1f3f4; } .stay-in-touch a:focus img { filter: brightness(.5); } .community-quote { margin: auto; } .community-profile-image { width: 60px; } .community-avatar { max-width: 60px; border-radius: 50%; } .community-button { align-self: flex-end; } .community-faq { margin-bottom: var(--community-faq-margin-bottom, 96px); } .community-faq devsite-expandable .expand-control { flex-direction: row-reverse; } .community-organizers { margin: auto; } .community-organizers h3 { font-size: 32px !important; } .community-organizers .devsite-landing-row-item-buttons { margin-top: 24px; } .community-story-row img { border-radius: 8px; } .community-story-quote { padding-top: 40px !important; } .community-quote { text-align: center; margin: auto; } .community-quote h3 { margin-bottom: 24px; } .community-landing-row-video devsite-video { max-height: 500px; } .community-landing-row-video .devsite-landing-row-item-image img { max-height: 500px; width: auto; } .community-landing-row-video { text-align: center; } .community-story-row .story-qan-item { margin-bottom: 24px; } .community-story-label { background-color: #e8f0fe; color: #1967d2 !important; } [appearance='dark'] .community-story-label { background-color: #1967d2; color: #e8f0fe !important; } @media (prefers-color-scheme: dark) { [appearance='device'] .community-story-label { background-color: #1967d2; color: #e8f0fe !important; } } .community-footer-icon-cta { display: flex; align-items: center; } .community-footer-icon-cta .button-icon { width: 100%; min-width: 32px; min-height: 32px; } .community-faq { padding-bottom: 10px; } .map-disclaimer { font-size: 12px; font-style: italic; } @media only screen and (min-width: 720px) { .programs-landing-page .programs-hero-list ul { -webkit-column-count: 2; -moz-column-count: 2; column-count: 2; -webkit-column-gap: 40px; -moz-column-gap: 40px; column-gap: 40px; } } .programs-landing-page .programs-hero-list li { display: -webkit-box; display: -ms-flexbox; display: flex; margin-top: 0; margin-bottom: 16px; } /* * Community hero styling */ .programs-community-header-hero > .devsite-landing-row-inner { padding-right: 0; } .programs-community-header-lockup-image { display: block; padding-bottom: 2rem; width: 25rem; } .programs-community-header > .devsite-landing-row-item-media { align-self: flex-end !important; } .programs-gdsc-header > .devsite-landing-row-item-media { justify-self: flex-end !important; width: 80%; } .programs-gdsc-button { color: #0f9d58 !important; } @media screen and (max-width: 600px) { .programs-community-header > .devsite-landing-row-item-media { width: 100% !important; } } @media only screen and (min-width: 600px) and (max-width: 841px) { .programs-community-header-lockup-image { padding-top: 2rem; } .programs-community-header > .devsite-landing-row-item-media { width: 70% !important; } } @media screen and (max-width: 840px) { .programs-community-header-lockup-image { padding-bottom: 1rem; } .programs-community-header { display: flex !important; flex-direction: column-reverse !important; } .programs-community-header > .devsite-landing-row-item-description { padding-right: 1rem !important; } } /* * Programs features */ .programs-landing-page .programs-features-item .devsite-landing-row-item-list .devsite-landing-row-item-list-item .devsite-landing-row-item-list-item-description h4 { line-height: 24px; } .programs-landing-page .program-features { padding-bottom: 20px; padding-top: 20px; } .programs-landing-page .program-features .devsite-landing-row-item-list, .programs-landing-page .program-features .devsite-landing-row-item-list .devsite-landing-row-item-list-item-description-content { margin-bottom: 0; } .programs-landing-page .compare-no::before, .programs-landing-page .compare-yes::before { color: #757575; } .programs-landing-page.community-program .compare-no::before, .programs-landing-page.community-program .compare-yes::before { color: #4285f4; } .programs-landing-page.launchpad-program .compare-no::before, .programs-landing-page.launchpad-program .compare-yes::before { color: #db4437; } .programs-landing-page.experts-program .compare-no::before, .programs-landing-page.experts-program .compare-yes::before { color: #4285f4; } .launchpad-program .programs-nested-list ul { -webkit-column-count: 2; -moz-column-count: 2; column-count: 2; list-style-position: inside; } .launchpad-program .programs-checklist .devsite-landing-row-item-list { -webkit-column-gap: 40px; -moz-column-gap: 40px; column-gap: 40px; } .launchpad-program .programs-checklist .devsite-landing-row-item-list-item:not(:first-child) { margin: 8px 0 0; } .launchpad-program .launchpad-regional-row-cta .devsite-landing-row-item-description-content { color: #676c72; margin: 0 auto; width: 70%; } .gdg-program .programs-checklist .devsite-landing-row-item-list h4 , .community-program .programs-checklist .devsite-landing-row-item-list h4 , .gdsc-program .programs-checklist .devsite-landing-row-item-list h4 { display: -webkit-box; display: -ms-flexbox; display: flex; } .programs-landing-page-blue-headers h3 { color: #039be5 } body[theme] .programs-landing-page-blue-headers h3 { color: #1a73e8; } /* * Program membership table */ .program-membership-table { border-bottom: 1px solid #eff0f2; } .program-membership-table tr { background: none; border-color: #eff0f2; } .program-membership-table th { color: #212121; font-size: 14px; } .program-membership-table td { background: none; color: #676c72; vertical-align: middle; } .program-membership-table td.program-membership-table-category { vertical-align: top; } .program-membership-table thead tr { border-top: none; } .program-membership-table thead h5 { font-size: 20px; margin-bottom: 0; text-transform: uppercase; } .program-membership-table thead .program-membership-table-standard h5 { color: #e09108; } .program-membership-table thead .program-membership-table-gdg h5 { color: #4285f4; } .program-membership-table tbody tr h4 { font-weight: 500; } .program-membership-table tbody .program-membership-table-standard { background-color: #f9ce4f; color: #212121; } .program-membership-table tbody .program-membership-table-gdg { background-color: #a4c3f7; color: #212121; } .program-membership-table tbody td:empty { background: none; } /* * Stories */ .programs-landing-page.programs-stories .devsite-content-footer { display: none; } .programs-landing-page.programs-stories h1 { color: #4285f4; font-weight: 400; } .programs-landing-page.programs-stories .programs-stories-profile-wrapper { display: -webkit-box; display: -ms-flexbox; display: flex; } .programs-landing-page.programs-stories .programs-stories-profile { -ms-flex-preferred-size: 15%; flex-basis: 15%; margin: 0 20px 0 0; text-align: center; } .programs-landing-page.programs-stories .programs-stories-profile-pic-bg { background-position: center; background-repeat: no-repeat; background-size: cover; border-radius: 50%; display: inline-block; height: 100px; width: 100px; } .programs-landing-page.programs-stories .programs-stories-profile-pic { display: block; margin: 0 auto; } .programs-landing-page.programs-stories .programs-stories-profile-name { display: block; margin: 0 auto; } /* * Programs Resources */ .programs-resources .devsite-landing-row-item-list-item-content img { height: 100%; } .programs-resources-guidelines--dos .devsite-landing-row-item-list-item-icon-container { background-color: #34a853; } .programs-resources-guidelines--donts .devsite-landing-row-item-list-item-icon-container { background-color: #db4437; } .programs-resources-guidelines.programs-resources-guidelines--lockups .devsite-landing-row-item-list-item:nth-of-type(odd) { margin-bottom: 24px; } .programs-resources-guidelines.programs-resources-guidelines--lockups .devsite-landing-row-item-list-item:nth-of-type(odd):not(:first-of-type) { margin-top: 60px; } /* * Programs Brand Guidelines */ .programs-brand-guidelines .devsite-landing-row-item-image { -webkit-box-align: center; -ms-flex-align: center; align-items: center; background: none !important; display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; overflow: hidden; } .programs-brand-guidelines .devsite-landing-row-item-image img { height: auto; width: 100%; } /* 841px is where layout breaks into 2-columns with images at top */ @media screen and (min-width: 841px) { .programs-brand-guidelines .devsite-landing-row-item-image { height: 400px; } } @media screen and (max-width: 840px) { .programs-brand-guidelines .programs-brand-guidelines--lockups { -webkit-box-pack: end; -ms-flex-pack: end; justify-content: flex-end; } } @media screen and (max-width: 600px) { .programs-brand-guidelines.devsite-landing-row:not(.devsite-landing-row-logos) .devsite-landing-row-group { -webkit-box-align: center; -ms-flex-align: center; align-items: center; display: -webkit-box !important; display: -ms-flexbox !important; display: flex !important; } .programs-brand-guidelines.devsite-landing-row:not(.devsite-landing-row-logos) .devsite-landing-row-group .programs-brand-guidelines--image-only { -webkit-box-ordinal-group: 0; -ms-flex-order: -1; order: -1; } } /* * Full bleed */ .devsite-landing-row[background].programs-landing-page-full-row { margin: -40px calc(50% - 50vw) 0; padding: 0; } .programs-landing-page-full-row .programs-map { width: 100vw } /* * Mentor photos */ /* Force visual text alignment with cta */ .programs-landing-page.launchpad-program .launchpad-round-images h3, .programs-landing-page.launchpad-program .launchpad-round-images p { text-indent: 8px; margin-bottom: 8px; } .programs-landing-page.launchpad-program .launchpad-round-images .devsite-landing-row-item-description { -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; margin: auto; width: auto; } .programs-landing-page.launchpad-program .launchpad-round-images .devsite-landing-row-description { text-indent: 0; } .programs-landing-page.launchpad-program .launchpad-round-images .devsite-landing-row-item-media { margin: 0; } .programs-landing-page.launchpad-program .launchpad-round-images .devsite-landing-row-item-image { border-radius: 100%; margin: 0 16px 0 0; overflow: hidden; width: 128px; } .programs-landing-page.launchpad-program .launchpad-round-images .devsite-landing-row-item { -webkit-box-orient: horizontal; -webkit-box-direction: normal; -ms-flex-direction: row; flex-direction: row; } /* * Community apply custom tabs */ .programs-landing-page .ds-selector-tabs.programs-apply-tabs .kd-buttonbar { border: none; display: -webkit-box; display: -ms-flexbox; display: flex; height: auto; -webkit-box-pack: justify; -ms-flex-pack: justify; justify-content: space-between; } .programs-landing-page .ds-selector-tabs.programs-apply-tabs .kd-tabbutton { background: #f7f7f7; border-bottom: none; -ms-flex-preferred-size: calc((100% / 2) - 5px); flex-basis: calc((100% / 2) - 5px); height: auto; margin-right: 10px; max-width: unset; padding: 12px; position: relative; text-align: center; text-transform: unset; } .programs-landing-page .ds-selector-tabs.programs-apply-tabs .kd-tabbutton:last-of-type { margin: 0; } .programs-landing-page .ds-selector-tabs.programs-apply-tabs .kd-tabbutton .material-icons { display: none; pointer-events: none; } .programs-landing-page .ds-selector-tabs.programs-apply-tabs .kd-tabbutton .material-icons .shift-down { position: relative; top: 1px; } .programs-landing-page .ui-datasection-main { border: none; font-size: 16px; line-height: 24px; } .programs-landing-page.community-program .ds-selector-tabs.programs-apply-tabs .kd-tabbutton.selected { background: #4285f4; color: #fff; } .programs-landing-page .ds-selector-tabs.programs-apply-tabs > section { background: #f7f7f7; -webkit-box-shadow: 0 -3px 5px rgba(0, 0, 0, .15); box-shadow: 0 -3px 5px rgba(0, 0, 0, .15); margin: 0 -10000px; padding: 40px 10000px; position: relative; } .programs-landing-page.community-program-apply .devsite-landing-row:not(.devsite-background):not([background]):not(.devsite-landing-row-cta):not(.devsite-landing-row-marquee) { padding-bottom: 0; } /* * Events */ .programs-landing-page.launchpad-program .programs-featured-events ul { list-style: none; padding: 0; } /* * Directories */ @media screen and (min-width: 720px) { .programs-landing-page .ds-selector-tabs.programs-apply-tabs .kd-tabbutton { text-align: left; } .programs-landing-page .ds-selector-tabs.programs-apply-tabs .kd-tabbutton .material-icons { display: block; } .programs-landing-page.community-program .ds-selector-tabs.programs-apply-tabs .kd-tabbutton:not(.selected) .material-icons { background: #4285f4; border-radius: 32px; color: #fff; } .programs-landing-page .ds-selector-tabs.programs-apply-tabs .kd-tabbutton.selected .material-icons { -webkit-transform: translateY(-50%) rotate(180deg); -ms-transform: translateY(-50%) rotate(180deg); transform: translateY(-50%) rotate(180deg); } .programs-landing-page .ds-selector-tabs.programs-apply-tabs .kd-tabbutton .material-icons { position: absolute; right: 24px; top: 50%; -webkit-transform: translateY(-50%); -ms-transform: translateY(-50%); transform: translateY(-50%); } .programs-landing-page .programs-winners-list .devsite-landing-row-item-list { -webkit-columns: 3; -moz-columns: 3; columns: 3; } } @media screen and (min-width: 1000px) { .programs-landing-page .ds-selector-tabs.programs-apply-tabs .kd-tabbutton { -ms-flex-preferred-size: 100%; flex-basis: 100%; text-align: left; } .programs-landing-page .ds-selector-tabs.programs-apply-tabs .kd-tabbutton { font-size: 18px; padding: 24px 18px; } .programs-landing-page.launchpad-program .programs-featured-events h3 { min-height: 64px; } .programs-resources .devsite-landing-row-item-list-item-content img { max-width: 80%; } } /* * Footnotes */ .programs-landing-page .programs-footnote { font-size: 14px; } /* * Misc overrides * 1) On IE11 without an explicit flex basis the neighboring item is forced off-screen. */ /* 1 */ .programs-landing-page .programs-flex-override .devsite-landing-row-item-description { -webkit-box-flex: 1; -ms-flex: 1 1 100%; flex: 1 1 100%; } .programs-landing-page .developer-agency-center-text { -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center } .programs-landing-page.developer-agency #agency-program-book { margin: 0 auto; } /* * PDF Download icon */ .programs-landing-page .programs-winners-list a[href$='pdf'] .devsite-landing-row-item-list-item-description h4::after { content: ' [PDF]'; } /* * Experts About page */ .programs-experts-header { color: #6d7278; } .programs-experts-header-logo { margin-right: 8px; max-width: 50px; } .programs-experts-header-logo img { width: inherit; } .programs-experts-process { display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-pack: justify; -ms-flex-pack: justify; justify-content: space-between; list-style: none; padding: 0; position: relative; } .programs-experts-process::before { background-color: #979797; content: ''; display: block; height: 1px; left: 20%; position: absolute; top: 30px; width: 60%; } .programs-experts-process-item { color: #3c4043; -webkit-box-flex: 0; -ms-flex: 0 0 30%; flex: 0 0 30%; font-family: Google Sans, sans-serif; font-size: 16px; font-weight: 500; line-height: 24px; position: relative; text-align: center; } .programs-experts-process-step { display: -webkit-box; display: -ms-flexbox; display: flex; justify-content: center; } .programs-experts-process-step-number { -webkit-box-align: center; -ms-flex-align: center; align-items: center; background-color: #4285f4; border: 2px solid #fff; border-radius: 50%; color: #fff; display: -webkit-box; display: -ms-flexbox; display: flex; font-size: 20px; font-weight: 600; height: 42px; -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; margin-bottom: 10px; overflow: hidden; width: 40px; } /* Social Media */ .programs-experts-social-media { text-align: center; } .programs-experts-social-media svg { color: #3c4043; width: 24px; } .programs-experts-social-media a:not(:last-of-type) { margin-right: 20px; } .programs-experts-social-media a > svg { transition: opacity 0.15s linear; } .programs-experts-social-media a:hover > svg, .programs-experts-social-media a:focus > svg, .programs-experts-social-media a:active > svg { opacity: 0.7; } .programs-experts-social-media a:focus, .programs-experts-social-media a:active { text-decoration: none; } /* * Cards with a fixed image ratio (16x9) */ .programs-cards-fixed-ratio .devsite-landing-row-item-image { overflow: hidden; padding-top: 56.25%; /* 16 x 9 */ position: relative; } .programs-cards-fixed-ratio .devsite-landing-row-item-image img { height: auto; left: 50%; position: absolute; top: 50%; -webkit-transform: translate(-50%, -50%); -ms-transform: translate(-50%, -50%); transform: translate(-50%, -50%); width: 100%; } /** * Launchpad Canada */ /* * Expandable with arrows */ .programs-landing-page .expand-control { -webkit-box-align: center; -ms-flex-align: center; align-items: center; border-bottom: 1px solid #dadce0; display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-pack: justify; -ms-flex-pack: justify; justify-content: space-between; } /* Overrides margin auto for button row */ .programs-landing-row-item-buttons--no-margin-top .devsite-landing-row-item-buttons { margin-top: 0; } .programs-landing-page .launchpad-faq .expand-control h4 { font-family: Google Sans, sans-serif; font-size: 16px; font-weight: 500; margin: 0; padding: 12px 0; } .programs-landing-page .launchpad-faq devsite-expandable .collapser { -webkit-transform: rotate(180deg); -ms-transform: rotate(180deg); transform: rotate(180deg); -webkit-transition: -webkit-transform 0.2s linear; transition: -webkit-transform 0.2s linear; -o-transition: transform 0.2s linear; transition: transform 0.2s linear; transition: transform 0.2s linear, -webkit-transform 0.2s linear; } .programs-landing-page .launchpad-faq devsite-expandable[expanded] .collapser { -webkit-transform: rotate(0); -ms-transform: rotate(0); transform: rotate(0); } .programs-landing-page .launchpad-faq .expand-control { -webkit-transition: color 0.2s linear; -o-transition: color 0.2s linear; transition: color 0.2s linear; } .programs-landing-page .launchpad-faq .expand-control:focus { color: #174ea6 ; outline: none; } .programs-landing-page .launchpad-faq { width: 100%; } .programs-landing-page .launchpad-faq__heading { font-family: Google Sans, sans-serif; font-weight: 500; text-transform: uppercase; } .programs-landing-page .launchpad-faq__body { border-bottom: 1px solid #dadce0; margin-bottom: 0; padding: 16px 0; } .programs-landing-page .launchpad-faq__body p:last-of-type { margin: 0; } .programs-landing-page.launchpad .devsite-landing-row-cta { background-color: #4285f4; color: #fff; } .programs-landing-page.launchpad .devsite-landing-row-cta--no-margin h3 { margin: 0; } .empower { color: #1c5abe; margin-bottom: 15px; font-size: 22px !important; font-weight: 500; } .benefits-card { padding: 5px 40px; font-size: 16px; line-height: 1.8; } .connect-learn-grow h3 { color: black !important; font-size: 22px !important; } .devsite-landing-row.meet-our-experts h2 { color: white !important; } .how-to-apply .devsite-landing-row-item-image { background: transparent; } .how-to-apply h3 { font-size: 38px !important; } .how-to-apply h4 { color: black !important; } .apply, .eligibility-list { padding-right: 150px; } @media only screen and (max-width: 841px) { .apply, .eligibility-list { padding-right: 0; } } .apply { line-height: 2; } .eligibility-list { list-style: none; padding-left: 0; } .eligibility-list > li::before { content: ''; background-image: url('/web/20231009111754im_/https://developers.google.com/community/experts/images/icon-checkmark.svg'); display: inline-block; height: 36px; width: 36px; vertical-align: middle; padding-left: 38px; color: #4285f4; background-size: contain; } .gde-directory { background: url(/web/20231009111754im_/https://developers.google.com/community/images/gde-background-left.svg) no-repeat top left, url(/web/20231009111754im_/https://developers.google.com/community/images/gde-background-right.svg) no-repeat top right; padding: 122px 0; } .gde-directory header > div:first-child { width: 54%; } @media only screen and (max-width: 1500px) { .gde-directory { background: url(/web/20231009111754im_/https://developers.google.com/community/images/gde-background-left.svg) no-repeat top left calc(-500px + 33vw), url(/web/20231009111754im_/https://developers.google.com/community/images/gde-background-right.svg) no-repeat top right calc(-500px + 33vw); } } .gde-directory h2 { font-size: 56px !important; line-height: 64px !important; } @media only screen and (max-width: 840px) { .gde-directory header > div:first-child { width: unset; } .gde-directory { background: unset; } } .gde-mentor-quote p:before { content: '\201C'; color: #1a73e8; font: 400 156px 'Google Sans'; left: -80px; position: absolute; top: -60px; } .gde-mentor-quote p:after { content: '\201D'; color: #1a73e8; font: 400 156px 'Google Sans'; margin-top: -24px; position: absolute; right: -64px; } .gde-mentor-quote p { color: #1a73e8; font: 400 18px/24px 'Roboto'; margin: 0 100px 26px 100px; position: relative; } .gde-mentor-quote-reference { font: 400 16px/20px 'Roboto' !important; margin-left: 100px; text-align: start !important; } @media only screen and (max-width: 720px) { .gde-mentor-quote { margin-top: 20px; } .gde-mentor-quote p { margin: 0 58px 26px 75px; } .gde-mentor-quote-reference { margin-left: 75px; } } @media only screen and (max-width: 841px) { .gde-cta { margin: 0 auto !important; } .application-guide { text-align: center; } } .devsite-landing-row.experts-header1, .devsite-landing-row.experts-header2 { width: 100%; padding: 0; } .devsite-landing-row.experts-header1 { margin-bottom: 45px; } .devsite-landing-row.experts-header2 { margin-top: 45px; } .experts-description { line-height: 2.2; padding-right: 150px; font-size: 16px !important; } @media only screen and (max-width: 841px) { .experts-description { padding-right: 0; } } .meet a:hover, .meet :link>:not(.material-icons):hover { text-decoration: none !important; } .experts-header1 > .devsite-landing-row-inner, .experts-header2 > .devsite-landing-row-inner { padding: 0; margin: 0; width: 100%; max-width: 100%; } .apply-left, .apply-right { display: inline-block; width: 49%; } .apply-left { float: left; } .apply-right { float: right; } .meet { margin: 0 auto; } .meet-left, .meet-right { display: inline-block; font-weight: 600; text-align: center; } .meet-left { width: 150px; margin-left: 15%; } .meet-right { width: 50%; } @media only screen and (max-width: 841px) { .meet-left, .meet-right { margin: 0 auto; display: block; width: 100%; } .meet-experts-description { font-size: 18px; font-weight: 600; } .directory-image { width: 128px; } } /* Community Journeys Shared */ .community-journeys-featured-hero-img, .community-journeys-individual-hero .devsite-landing-row-item-media img { border-radius: 8px; } .community-journeys-stories-redirect, .community-story-journeys-redirect { padding-bottom: 20px; } .community-journeys-stories-redirect .devsite-landing-row-description { font: 16px/24px "Google Sans"; max-width: 497px; } .community-story-journeys-redirect .devsite-landing-row-description { font: 16px/24px Roboto; max-width: 726px; } @media only screen and (min-width: 841px) { .community-story-journeys-redirect .devsite-landing-row-header-buttons { padding-left: 24px; } } .community-journeys-stories-redirect h2, .community-story-journeys-redirect h2 { font: 32px/40px "Google Sans"; } @media only screen and (max-width: 841px) { .community-journeys-stories-redirect h2, .community-story-journeys-redirect h2 { font-size: 22px; } } /* Community Journeys Landing Page */ @media only screen and (min-width: 841px) { .community-journeys-hero-text h2 { font-size: 32px; padding-bottom: 4px; } .community-journeys-hero-text .devsite-landing-row-description { font-size: 22px; } .community-journeys-featured-hero-img, .community-journeys-directory { margin-top: -40px; } .community-journeys-featured-quote, .community-journeys-groups-links { grid-column: 9/span 7 !important; } .community-journeys-featured-description { grid-column: 1/span 8 !important; } .community-journeys-groups-description { grid-column: 1/span 7 !important; } } .community-journeys-hero-text .devsite-landing-row-description, .community-journeys-featured-quote, .community-journeys-groups-links, .community-journeys-group-description { font-family: "Google Sans"; } .community-journeys-featured-text { margin: 0 auto 40px; } .community-journeys-featured-text h3 { font-size: 24px; } .community-journeys-featured-text .devsite-landing-row-item-buttons { margin-top: 24px; } .community-journeys-featured-quote { font-size: 18px; justify-content: center; text-align: center; } .community-journeys-featured-quote, .community-journeys-groups-links { display: flex; flex-direction: column; } .community-journeys-directory .devsite-card-image-container, .community-story-journeys .devsite-card-image-container { border-bottom: 1px solid #dadce0; padding: 0 0 100%; } .community-journeys-directory .devsite-card-image, .community-story-journeys img { height: unset; left: 17%; top: 17%; width: 66%; } .community-journeys-directory .devsite-card-summary { max-height: 164px; -webkit-line-clamp: 7; } .community-journeys-groups-links { font-size: 20px; justify-content: space-between; } .community-journeys-group-description { color: #202124; } .community-journeys-groups-description h3 { font-size: 42px; } .community-journeys-groups-description .devsite-landing-row-item-description-content { font-size: 20px; } @media only screen and (min-width: 601px) { .community-journeys-groups-description { margin: 0 !important; } } .community-journeys-resources .devsite-landing-row-item { border: 1px solid #dadce0 !important; } /* Community Journeys Individual Journeys */ @media only screen and (min-width: 841px) { .community-journeys-individual-hero .devsite-landing-row-item-media { grid-column: 6/span 8; } .community-journeys-individual-hero .devsite-landing-row-item-description { grid-column: 1/span 5; } } .community-journeys-individual-hero .devsite-landing-row-item-description-content { max-width: 485px; } .community-journeys-socials { align-items: center; border: none; color: #5f6368; display: flex; font: 16px/24px Roboto; margin: 4px 4px 4px 0 !important; } .community-journeys-socials:hover { border: none; font-weight: 400 !important; } .community-journeys-individual-hero h3, .community-journeys-questions h2 { font: 32px/40px "Google Sans" !important; } .community-journeys-questions h2 { margin: 12px auto -12px; } .community-journeys-questions .devsite-landing-row-item-list-item-description { font: 24px/40px "Google Sans"; } .community-journeys-questions h4 { font: 500 24px/40px "Google Sans" !important; } .community-journeys-questions a { color: #3c4043; text-decoration: underline; } @media only screen and (max-width: 841px) { .community-journeys-questions h2 { margin: 24px auto -24px; } .community-journeys-individual-hero h3, .community-journeys-questions h2 { font-size: 22px !important; } .community-journeys-questions .devsite-landing-row-item-list-item-description, .community-journeys-questions h4 { font-size: 18px !important; } } </style> <div class="devsite-article-meta nocontent" role="navigation"> <ul class="devsite-breadcrumb-list"> </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 nocontent" 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 "> <div class="devsite-page-title-meta"></div> <section class="devsite-landing-row devsite-landing-row-1-up devsite-landing-row-header-centered devsite-landing-row-item-centered devsite-landing-row-padding-large community-hero" header-position="top"> <div class="devsite-landing-row-inner"> <header class="devsite-landing-row-header"> <div class="devsite-landing-row-header-text"> <h2 id="developer-stories" data-text="Developer stories" tabindex="0"> Developer stories </h2> <div class="devsite-landing-row-description"> Explore inspirational developer stories from all over the world </div> </div> </header> </div> </section> <section class="devsite-landing-row devsite-landing-row-1-up devsite-landing-row-50 devsite-landing-row-padding-medium devsite-landing-row-header-centered" header-position="top"> <div class="devsite-landing-row-inner"> <div class="devsite-landing-row-group"> <div class="devsite-landing-row-item community-organizers" description-position="bottom"> <div class="devsite-landing-row-item-media "> <devsite-video autohide="1" showinfo="0" video-id="23Q7HciuVyM"></devsite-video> </div> <div class="devsite-landing-row-item-description"> <div class="devsite-landing-row-item-body"> <div class="devsite-landing-row-item-labels"> <span class="community-story-label " background="/web/20231009111754im_/https://developers.google.com/community/google-blue">FEATURED STORY</span> </div> <h3 id="div-classprograms-text-bluenazirinis-story-using-machine-learning-to-tackle-crop-diseasediv" data-text="Nazirini’s story - using machine learning to tackle crop disease " class="hide-from-toc no-link" tabindex="0"> <a href="http://web.archive.org/web/20231009111754/https://www.youtube.com/watch?v=23Q7HciuVyM&list=PL1blf2lcaPMQqOZu43o-PVdZ57PpMOONr"> <div class="programs-text-blue">Nazirini’s story - using machine learning to tackle crop disease<div> </a> </h3> <div class="devsite-landing-row-item-description-content"> <p class="featured-story-date">Thursday, May 27, 2021</p> Utilizing learnings from her local Google Developer Groups community, Nazirini Siraji and her small team in Mbale, Uganda created an app that can help farmers tackle crop disease more effectively. </div> <div class="devsite-landing-row-item-buttons"> <a href="http://web.archive.org/web/20231009111754/https://www.youtube.com/watch?v=23Q7HciuVyM&list=PL1blf2lcaPMQqOZu43o-PVdZ57PpMOONr" class="button button-with-icon"><span class="material-icons" aria-hidden="true">play_circle_outlined</span>Watch now</a> </div> </div> </div> </div> </div> </div> </section> <section class="devsite-landing-row devsite-landing-row-1-up devsite-landing-row-no-image-background community-story-row community-story-journeys-redirect" header-position="top"> <div class="devsite-landing-row-inner"> <header class="devsite-landing-row-header"> <div class="devsite-landing-row-header-text"> <h2 id="developer-journey" data-text="Developer Journey" tabindex="0"> Developer Journey </h2> <div class="devsite-landing-row-description"> Developer Journey is a monthly series drawing attention to diverse developers who want to share relatable challenges, opportunities, and wins in their journey. Every month, we spotlight developers around the world, the Google tools they leverage, and the kind of products they are building. </div> </div> <div class="devsite-landing-row-header-buttons"> <a href="http://web.archive.org/web/20231009111754/https://developers.google.com/community/stories/developerjourney" class="button community-button gc-analytics-event " data-label="Community Stories Page, View more Journeys" data-category="Developer Journeys">View more Journeys</a> </div> </header> </div> </section> <section class="devsite-landing-row devsite-landing-row-1-up community-story-journeys" header-position="top"> <div class="devsite-landing-row-inner"> <div class="devsite-landing-row-html"> <devsite-dynamic-content button-label="Learn more" initial-results="4" items-across="4" link-type="both" maxresults="4" pagination-type="button" query="keyword:gdcjourneys" sortorder="recency" template="card"> </devsite-dynamic-content> </div> </div> </section> <section class="devsite-landing-row devsite-landing-row-1-up devsite-landing-row-100 devsite-landing-row-padding-medium community-landing-row-pad-bottom" header-position="top"> <div class="devsite-landing-row-inner"> <header class="devsite-landing-row-header"> <div class="devsite-landing-row-header-text"> <h2 id="stories-from-our-developer-community" data-text="Stories from our developer community" tabindex="0"> Stories from our developer community </h2> <div class="devsite-landing-row-description"> Be inspired by all the clever ways developers are using Google technology. </div> </div> </header> </div> </section> <section class="devsite-landing-row devsite-landing-row-1-up" header-position="top"> <div class="devsite-landing-row-inner"> <div class="devsite-landing-row-html"> <devsite-catalog query="keyword:gdcstories" items-per-page="12" pagination-type="numeric" button-label="Learn more" maxresults="300" initial-checkbox-filters="6"> <select name="programGroup" label="Program" multiple> <option value="CommunityAccelerator">Accelerator</option> <option value="GDG">Google Developer Groups</option> <option value="GDE">Google Developer Experts</option> <option value="GDSC">Google Developer Student Clubs</option> <option value="WTM">Women Techmakers</option> <option value="TEC">Tech Equity Collective</option> </select> <select name="keywords" label="Region" multiple> <option value="gdcstoriesna">North America</option> <option value="gdcstorieslatam">Latin America</option> <option value="gdcstoriesemea">Europe, Middle East, and Africa</option> <option value="gdcstoriesapac">Asia and Pacific</option> <option value="gdcstoriesglobal">Global</option> </select> </devsite-catalog> </div> </div> </section> </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/20231009111754/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="http://web.archive.org/web/20231009111754/https://www.instagram.com/googlefordevs/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)"> Instagram </a> </li> <li class="devsite-footer-linkbox-item"> <a href="http://web.archive.org/web/20231009111754/https://www.linkedin.com/showcase/googledevelopers/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 3)"> LinkedIn </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//web.archive.org/web/20231009111754/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/20231009111754/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/20231009111754/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/20231009111754/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/20231009111754/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 Developer Experts </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/web/20231009111754/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/20231009111754/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/20231009111754/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/20231009111754/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/20231009111754/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/20231009111754/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/20231009111754/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/20231009111754/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/20231009111754/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/20231009111754/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/20231009111754im_/https://www.gstatic.com/devrel-devsite/prod/v85a00308211ae0e76f4048e4f8440e0b4d866dea310d9c231254526f46e6d3e3/developers/images/lockup-google-for-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/20231009111754im_/https://www.gstatic.com/devrel-devsite/prod/v85a00308211ae0e76f4048e4f8440e0b4d866dea310d9c231254526f46e6d3e3/developers/images/lockup-google-for-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/20231009111754/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/20231009111754/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/20231009111754/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/20231009111754/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/20231009111754/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/20231009111754/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/20231009111754/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 for Developers newsletter</span> <a class="devsite-footer-utility-link gc-analytics-event" href="/web/20231009111754/https://developers.google.com/newsletter/subscribe" 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 enable-ga4> <script type="application/json" analytics>[{"dimensions": {"dimension3": false, "dimension6": "en", "dimension11": false, "dimension5": "en", "dimension1": "Signed out"}, "gaid": "UA-24532603-1", "metrics": {"ratings_value": "metric1", "ratings_count": "metric2"}}]</script> <script type="application/json" tag-management gtm>{"ga4": ["G-272J68FCRF"], "ga4p": ["G-272J68FCRF"], "gtm": [], "parameters": {"internalUser": "False", "language": {"machineTranslated": "False", "requested": "en", "served": "en"}, "pageType": "article", "projectName": null, "signedIn": "False", "tenant": "developers", "recommendations": {"sourcePage": "", "sourceType": 0, "sourceRank": 0, "sourceIdenticalDescriptions": 0, "sourceTitleWords": 0, "sourceDescriptionWords": 0, "experiment": ""}, "experiment": {"ids": ""}}, "tags": []}</script> </devsite-analytics> <devsite-badger></devsite-badger> <script nonce="NeYMsqWwqyfV5S56RLg8Ke127E9z0I"> (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/20231009111754/https://www.gstatic.com/devrel-devsite/prod/v85a00308211ae0e76f4048e4f8440e0b4d866dea310d9c231254526f46e6d3e3/developers/js/app_loader.js', '[1,"en",null,"/js/devsite_app_module.js","http://web.archive.org/web/20231009111754/https://www.gstatic.com/devrel-devsite/prod/v85a00308211ae0e76f4048e4f8440e0b4d866dea310d9c231254526f46e6d3e3","http://web.archive.org/web/20231009111754/https://www.gstatic.com/devrel-devsite/prod/v85a00308211ae0e76f4048e4f8440e0b4d866dea310d9c231254526f46e6d3e3/developers","http://web.archive.org/web/20231009111754/https://developers-dot-devsite-v2-prod.appspot.com",1,null,["/_pwa/developers/manifest.json","http://web.archive.org/web/20231009111754/https://www.gstatic.com/devrel-devsite/prod/v85a00308211ae0e76f4048e4f8440e0b4d866dea310d9c231254526f46e6d3e3/images/video-placeholder.svg","http://web.archive.org/web/20231009111754/https://www.gstatic.com/devrel-devsite/prod/v85a00308211ae0e76f4048e4f8440e0b4d866dea310d9c231254526f46e6d3e3/developers/images/favicon-new.png","http://web.archive.org/web/20231009111754/https://www.gstatic.com/devrel-devsite/prod/v85a00308211ae0e76f4048e4f8440e0b4d866dea310d9c231254526f46e6d3e3/developers/images/lockup-new.svg","http://web.archive.org/web/20231009111754/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,116,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,["Profiles__require_profile_eligibility_for_signin","Cloud__enable_cloud_shell","Significatio__enable_experiment_id_caching","ContentExcellence__enable_verified_date","Search__enable_acl_suggestions","ContentExcellence__enable_googler_button","Cloud__enable_cloudx_ping","BookNav__enable_collapsible_book_nav","Profiles__enable_profile_collections","Concierge__enable_pushui","Profiles__enable_profile_communities","Profiles__enable_page_saving","MiscFeatureFlags__developers_footer_dark_image","Cloud__enable_cloudx_experiment_ids","MiscFeatureFlags__emergency_css","Profiles__enable_public_developer_profiles","Search__enable_suggestions_from_borg","Profiles__enable_profile_notifications_ui","Search__enable_devsite_serp","Profiles__enable_developer_profiles_callout","Search__enable_faceted_search","Search__enable_page_map","Concierge__enable_concierge","OpenInReplit__enable_replit","Profiles__enable_searchable_interests","Analytics__enable_ga4_analytics","Experiments__enable_experiments","Cloud__enable_free_trial_server_call","SignIn__enable_auto_signin_oauth","MiscFeatureFlags__developers_footer_image","Profiles__enable_suggested_interests","Badges__enable_delete_badges","MiscFeatureFlags__enable_tls_version_for_gaia_calls","Search__enable_dynamic_content_confidential_banner","Badges__enable_hide_badges","MiscFeatureFlags__content_publisher_push_queue","AuthorPageInsights__enable_author_page_insights","Localization__enable_locale_redirects","Significatio__enable_by_tenant","Profiles__enable_developer_profiles_dashboard_recommendations","Cloud__enable_cloud_shell_fte_user_flow","Cloud__enable_cloud_dlp_service","BookNav__enable_book_nav_filtering","Significatio__enable_footprints","Cloud__enable_cloud_facet_chat","MiscFeatureFlags__devpanel_url","Profiles__enable_developer_profiles_interests","Badges__enable_drag_and_drop_badges","Experiments__reqs_query_experiments"],null,null,"AIzaSyBLEMok-5suZ67qRPzx0qUtbnLmyT_kCVE","http://web.archive.org/web/20231009111754/https://developerscontentserving-pa.clients6.google.com","AIzaSyCM4QpTRSqP5qI4Dvjt4OAScIN8sOUlO-k","http://web.archive.org/web/20231009111754/https://developerscontentsearch-pa.clients6.google.com",1]') </script> <devsite-a11y-announce></devsite-a11y-announce> </body> </html><!-- FILE ARCHIVED ON 11:17:54 Oct 09, 2023 AND RETRIEVED FROM THE INTERNET ARCHIVE ON 16:04:55 Dec 13, 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.445 exclusion.robots: 0.024 exclusion.robots.policy: 0.015 esindex: 0.01 cdx.remote: 27.277 LoadShardBlock: 99.338 (3) PetaboxLoader3.datanode: 84.353 (4) load_resource: 572.017 PetaboxLoader3.resolve: 129.395 -->