CINXE.COM
Home - Google Developers Blog
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8" /> <title> Home - Google Developers Blog </title> <meta property="og:title" content="Home- Google Developers Blog" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> <meta content="https://storage.googleapis.com/gweb-developer-goog-blog-assets/meta/developers-social-media.png" property="og:image"/> <meta content="summary_large_image" name="twitter:card"/> <meta content="Google for Developers Blog - News about Web, Mobile, AI and Cloud" property="twitter:title"/> <script type="application/ld+json"> { "@context": "https://schema.org", "@type": "Article", "headline": "Google for Developers Blog - News about Web, Mobile, AI and Cloud" } </script> <script type="application/ld+json"> { "@context": "http://schema.org/", "@type": "Organization", "name": "Google for Developers Blog", "logo": "https://storage.googleapis.com/gweb-developer-goog-blog-assets/meta/developers-social-media.png", "url": "https://developers.googleblog.com/" } </script> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "WebSite", "name": "Google for Developers Blog", "url": "https://developers.googleblog.com/", "potentialAction": { "@type": "SearchAction", "target": "https://developers.googleblog.com/en/search/?query={search_term_string}", "query-input": "required name=search_term_string" } } </script> <!-- Google Tag Manager --> <script type="text/javascript" nonce="5XD0uMs6NMCR9EjwWE2hBg==" src="https://storage.googleapis.com/gweb-developer-goog-blog-cms-assets/site/20250401-180100/js/analytics.js"></script> <!-- End Google Tag Manager --> <link href="//www.gstatic.com/glue/v27_1/glue.min.css" rel="stylesheet"> <link rel="stylesheet" type="text/css" href="https://storage.googleapis.com/gweb-developer-goog-blog-cms-assets/site/20250401-180100/css/dgc_blog.css"> <link rel="icon" href="https://storage.googleapis.com/gweb-developer-goog-blog-assets/meta/favicon.ico" type="image/x-icon"> <link rel="apple-touch-icon" href="https://storage.googleapis.com/gweb-developer-goog-blog-assets/meta/apple-touch-icon.png"> <link rel="preconnect" href="https://fonts.googleapis.com"> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> <link rel="preload" href="https://fonts.googleapis.com/css2?family=Product+Sans&family=Google+Sans+Display:ital@0;1&family=Google+Sans:ital,wght@0,400;0,500;0,700;1,400;1,500;1,700&family=Google+Sans+Text:ital,wght@0,400;0,500;0,700;1,400;1,500;1,700&display=swap" as="style"> <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Product+Sans&family=Google+Sans+Display:ital@0;1&family=Google+Sans:ital,wght@0,400;0,500;0,700;1,400;1,500;1,700&family=Google+Sans+Text:ital,wght@0,400;0,500;0,700;1,400;1,500;1,700&display=swap"> <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Roboto:wght@400&display=swap"> <link href="https://www.gstatic.com/glue/cookienotificationbar/cookienotificationbar.min.css" rel="stylesheet"> <link rel="stylesheet" type="text/css" href="https://storage.googleapis.com/gweb-developer-goog-blog-cms-assets/site/20250401-180100/css/home_page.css" /> <link rel="stylesheet" type="text/css" href="https://storage.googleapis.com/gweb-developer-goog-blog-cms-assets/site/20250401-180100/css/hero_section.css" /> </head> <body id="main-content" class="glue-body "> <!-- Google Tag Manager (noscript) --> <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-WVTLDSL " height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <!-- End Google Tag Manager (noscript) --> <!-- HTML --> <header class="dgc-header"> <div class="dgc-header-inner"> <button class="hamburger" aria-haspopup="true" aria-expanded="false" aria-label="Open Menu"> <svg role="presentation" aria-hidden="true" class="glue-icon"> <use href="/glue-icon/#menu"></use> </svg> </button> <div class="product-name-wrapper"> <a href="https://developers.google.com/" class="site-logo-link" data-label="Site logo"> <img src="https://storage.googleapis.com/gweb-developer-goog-blog-cms-assets/site/20250401-180100/images/g-dev.svg" class="site-logo" alt="Google for Developers"> </a> </div> <div class="desktop-nav-wrapper"> <div class="upper-tabs-wrapper"> <div class="upper-tabs"> <nav class="tabs" aria-label="Upper Tabs"> <div class="tab" dropdown> <a href="//developers.google.com/products" class="top-nav-title"> Products </a> <a href="#" role="button" aria-haspopup="true" aria-expanded="true" aria-label="Dropdown menu for Products" class="dropdown-toggle"> <svg role="presentation" aria-hidden="true" class="glue-icon"> <use href="/glue-icon/#arrow-drop-down"></use> </svg> </a> <div class="tabs-dropdown" aria-label="Submenu"> <div class="tabs-dropdown-content"> <div class="tabs-dropdown-column"> <ul class="tabs-dropdown-section"> <li class="nav-title" aria-label="Develop Menu">Develop</li> <li class="nav-item"> <a href="//developer.android.com"> <div class="nav-item-title"> Android </div> </a> </li> <li class="nav-item"> <a href="//developer.chrome.com"> <div class="nav-item-title"> Chrome </div> </a> </li> <li class="nav-item"> <a href="//chromeos.dev/"> <div class="nav-item-title"> ChromeOS </div> </a> </li> <li class="nav-item"> <a href="//cloud.google.com"> <div class="nav-item-title"> Cloud </div> </a> </li> <li class="nav-item"> <a href="//firebase.google.com"> <div class="nav-item-title"> Firebase </div> </a> </li> <li class="nav-item"> <a href="//flutter.dev"> <div class="nav-item-title"> Flutter </div> </a> </li> <li class="nav-item"> <a href="//developers.google.com/assistant"> <div class="nav-item-title"> Google Assistant </div> </a> </li> <li class="nav-item"> <a href="//developers.google.com/maps"> <div class="nav-item-title"> Google Maps Platform </div> </a> </li> <li class="nav-item"> <a href="//developers.google.com/workspace"> <div class="nav-item-title"> Google Workspace </div> </a> </li> <li class="nav-item"> <a href="//www.tensorflow.org"> <div class="nav-item-title"> TensorFlow </div> </a> </li> <li class="nav-item"> <a href="//developers.google.com/youtube"> <div class="nav-item-title"> YouTube </div> </a> </li> </ul> </div> <div class="tabs-dropdown-column"> <ul class="tabs-dropdown-section"> <li class="nav-title" aria-label="Grow Menu">Grow</li> <li class="nav-item"> <a href="//firebase.google.com"> <div class="nav-item-title"> Firebase </div> </a> </li> <li class="nav-item"> <a href="//developers.google.com/google-ads"> <div class="nav-item-title"> Google Ads </div> </a> </li> <li class="nav-item"> <a href="//developers.google.com/analytics"> <div class="nav-item-title"> Google Analytics </div> </a> </li> <li class="nav-item"> <a href="//developer.android.com/distribute"> <div class="nav-item-title"> Google Play </div> </a> </li> <li class="nav-item"> <a href="//developers.google.com/search"> <div class="nav-item-title"> Search </div> </a> </li> <li class="nav-item"> <a href="//developers.google.com/web/fundamentals/engage-and-retain/push-notifications"> <div class="nav-item-title"> Web Push and Notification APIs </div> </a> </li> </ul> </div> <div class="tabs-dropdown-column"> <ul class="tabs-dropdown-section"> <li class="nav-title" aria-label="Earn Menu">Earn</li> <li class="nav-item"> <a href="//developers.google.com/admob"> <div class="nav-item-title"> AdMob </div> </a> </li> <li class="nav-item"> <a href="//developers.google.com/google-ads/api"> <div class="nav-item-title"> Google Ads API </div> </a> </li> <li class="nav-item"> <a href="//developers.google.com/pay"> <div class="nav-item-title"> Google Pay </div> </a> </li> <li class="nav-item"> <a href="//developer.android.com/google/play/billing/"> <div class="nav-item-title"> Google Play Billing </div> </a> </li> <li class="nav-item"> <a href="//developers.google.com/interactive-media-ads"> <div class="nav-item-title"> Interactive Media Ads </div> </a> </li> </ul> </div> </div> </div> </div> <div class="tab"> <a href="//developers.google.com/solutions/catalog" class="top-nav-title"> Solutions </a> </div> <div class="tab"> <a href="//developers.google.com/events" class="top-nav-title"> Events </a> </div> <div class="tab"> <a href="//developers.google.com/learn" class="top-nav-title"> Learn </a> </div> <div class="tab" dropdown> <a href="//developers.google.com/community" class="top-nav-title"> Community </a> <a href="#" role="button" aria-haspopup="true" aria-expanded="true" aria-label="Dropdown menu for Community" class="dropdown-toggle"> <svg role="presentation" aria-hidden="true" class="glue-icon"> <use href="/glue-icon/#arrow-drop-down"></use> </svg> </a> <div class="tabs-dropdown" aria-label="Submenu"> <div class="tabs-dropdown-content"> <div class="tabs-dropdown-column"> <ul class="tabs-dropdown-section"> <li class="nav-title" aria-label="Groups Menu">Groups</li> <li class="nav-item"> <a href="//developers.google.com/community/gdg"> <div class="nav-item-title"> Google Developer Groups </div> </a> </li> <li class="nav-item"> <a href="//developers.google.com/community/gdsc"> <div class="nav-item-title"> Google Developer Student Clubs </div> </a> </li> <li class="nav-item"> <a href="//developers.google.com/womentechmakers"> <div class="nav-item-title"> Woman Techmakers </div> </a> </li> <li class="nav-item"> <a href="//developers.google.com/community/experts"> <div class="nav-item-title"> Google Developer Experts </div> </a> </li> <li class="nav-item"> <a href="//www.techequitycollective.com/"> <div class="nav-item-title"> Tech Equity Collective </div> </a> </li> </ul> </div> <div class="tabs-dropdown-column"> <ul class="tabs-dropdown-section"> <li class="nav-title" aria-label="Programs Menu">Programs</li> <li class="nav-item"> <a href="//developers.google.com/community/accelerators"> <div class="nav-item-title"> Accelerator </div> </a> </li> <li class="nav-item"> <a href="//developers.google.com/community/gdsc-solution-challenge"> <div class="nav-item-title"> Solution Challenge </div> </a> </li> <li class="nav-item"> <a href="//developers.google.com/community/devfest"> <div class="nav-item-title"> DevFest </div> </a> </li> </ul> </div> <div class="tabs-dropdown-column"> <ul class="tabs-dropdown-section"> <li class="nav-title" aria-label="Stories Menu">Stories</li> <li class="nav-item"> <a href="//developers.google.com/community/stories"> <div class="nav-item-title"> All Stories </div> </a> </li> </ul> </div> </div> </div> </div> <div class="tab"> <a href="//developers.google.com/profile/u/me" class="top-nav-title"> Developer Program </a> </div> <div class="tab"> <a href="//developers.googleblog.com/" class="top-nav-title"> Blog </a> </div> </nav> </div> </div> </div> </div> <div class="dgc-header-search"> <div class="search-wrapper glue-page"> <div class="glue-grid"> <form id="search-form" action="/en/search/" method="get" class="search-content glue-grid__col glue-grid__col--span-4-sm glue-grid__col--span-9-md glue-grid__col--span-7-lg"> <div class="search-input-wrapper"> <svg role="presentation" aria-hidden="true" class="glue-icon search-icon"> <use href="/glue-icon/#search"></use> </svg> <input type="text" name="query" placeholder="Search all articles..." aria-label="Search" class="search-input-field" /> </div> <button class="glue-button glue-button--high-emphasis"> Search </button> </form> <div class="language-selector glue-grid__col glue-grid__col--span-4-sm glue-grid__col--span-3-md glue-grid__col--span-5-lg" aria-label="Select your language preference"> <button type="button" aria-controls="lang-menu-header" aria-haspopup="true"> <svg role="presentation" aria-hidden="true" class="glue-icon lang-icon"> <use href="/glue-icon/#language"></use> </svg> <span class="lang-label">English</span> <svg role="presentation" aria-hidden="true" class="glue-icon lang-icon"> <use href="/glue-icon/#arrow-drop-down"></use> </svg> </button> <div id="lang-menu-header" class="lang-menu hidden" role="menu"> <ul role="presentation"> <li role="presentation"> <a role="menuitem" lang="en" aria-current="true" href="/en/"> English </a> </li> <li role="presentation"> <a role="menuitem" lang="es" href="/es/"> Español (Latam) </a> </li> <li role="presentation"> <a role="menuitem" lang="id" href="/id/"> Bahasa Indonesia </a> </li> <li role="presentation"> <a role="menuitem" lang="ja" href="/ja/"> 日本語 </a> </li> <li role="presentation"> <a role="menuitem" lang="ko" href="/ko/"> 한국어 </a> </li> <li role="presentation"> <a role="menuitem" lang="pt-br" href="/pt-br/"> Português (Brasil) </a> </li> <li role="presentation"> <a role="menuitem" lang="zh-hans" href="/zh-hans/"> 简体中文 </a> </li> </ul> </div> </div> </div> </div> </div> </header> <div class="mobile-drawer" top-level-nav> <nav class="nav-content" aria-label="Side menu"> <div class="mobile-header"> <button class="nav-close-btn nav-btn" aria-label="Close navigation"> <svg role="presentation" aria-hidden="true" class="glue-icon"> <use href="/glue-icon/#close"></use> </svg> </button> <button class="nav-back-btn nav-btn hidden" aria-label="Back to Menu"> <svg role="presentation" aria-hidden="true" class="glue-icon"> <use href="/glue-icon/#arrow-back"></use> </svg> </button> <div class="product-name-wrapper"> <a href="https://developers.google.com/" class="site-logo-link" data-label="Site logo"> <img src="https://storage.googleapis.com/gweb-developer-goog-blog-cms-assets/site/20250401-180100/images/g-dev.svg" class="site-logo" alt="Google for Developers"> </a> </div> </div> <div class="nav-wrapper"> <div class="mobile-nav-top"> <ul class="nav-list"> <li class="nav-item"> <a href="//developers.google.com/products" class="nav-title" data-label="Tab: Products"> <span class="nav-text" tooltip=""> Products </span> </a> <ul class="nav-responsive-tabs"> <li class="nav-item"> <span tabindex="0" class="nav-title products-btn" data-label="More Products"> <span class="nav-text" menu="Products"> More </span> <span class="nav-icon" menu="Products"> <svg role="presentation" aria-hidden="true" class="glue-icon"> <use href="/glue-icon/#arrow-forward"></use> </svg> </span> </span> </li> </ul> </li> <li class="nav-item"> <a href="//developers.google.com/solutions/catalog" class="nav-title" data-label="Tab: Solutions"> <span class="nav-text" tooltip=""> Solutions </span> </a> </li> <li class="nav-item"> <a href="//developers.google.com/events" class="nav-title" data-label="Tab: Events"> <span class="nav-text" tooltip=""> Events </span> </a> </li> <li class="nav-item"> <a href="//developers.google.com/learn" class="nav-title" data-label="Tab: Learn"> <span class="nav-text" tooltip=""> Learn </span> </a> </li> <li class="nav-item"> <a href="//developers.google.com/community" class="nav-title" data-label="Tab: Community"> <span class="nav-text" tooltip=""> Community </span> </a> <ul class="nav-responsive-tabs"> <li class="nav-item"> <span tabindex="0" class="nav-title community-btn" data-label="More Community"> <span class="nav-text" menu="Community"> More </span> <span class="nav-icon" menu="Community"> <svg role="presentation" aria-hidden="true" class="glue-icon"> <use href="/glue-icon/#arrow-forward"></use> </svg> </span> </span> </li> </ul> </li> <li class="nav-item"> <a href="//developers.google.com/profile/u/me" class="nav-title" data-label="Tab: Developer Program"> <span class="nav-text" tooltip=""> Developer Program </span> </a> </li> <li class="nav-item"> <a href="//developers.googleblog.com/" class="nav-title" data-label="Tab: Blog"> <span class="nav-text" tooltip=""> Blog </span> </a> </li> </ul> </div> <div class="mobile-nav-bottom"> <ul class="nav-list products-submenu" menu="Products" aria-label="Side menu"> <li class="nav-item nav-heading"> <span class="nav-title"> <span class="nav-text"> Develop </span> </span> </li> <li class="nav-item"> <a href="//developer.android.com" class="nav-title"> <span class="nav-text"> Android </span> </a> </li> <li class="nav-item"> <a href="//developer.chrome.com" class="nav-title"> <span class="nav-text"> Chrome </span> </a> </li> <li class="nav-item"> <a href="//chromeos.dev/" class="nav-title"> <span class="nav-text"> ChromeOS </span> </a> </li> <li class="nav-item"> <a href="//cloud.google.com" class="nav-title"> <span class="nav-text"> Cloud </span> </a> </li> <li class="nav-item"> <a href="//firebase.google.com" class="nav-title"> <span class="nav-text"> Firebase </span> </a> </li> <li class="nav-item"> <a href="//flutter.dev" class="nav-title"> <span class="nav-text"> Flutter </span> </a> </li> <li class="nav-item"> <a href="//developers.google.com/assistant" class="nav-title"> <span class="nav-text"> Google Assistant </span> </a> </li> <li class="nav-item"> <a href="//developers.google.com/maps" class="nav-title"> <span class="nav-text"> Google Maps Platform </span> </a> </li> <li class="nav-item"> <a href="//developers.google.com/workspace" class="nav-title"> <span class="nav-text"> Google Workspace </span> </a> </li> <li class="nav-item"> <a href="//www.tensorflow.org" class="nav-title"> <span class="nav-text"> TensorFlow </span> </a> </li> <li class="nav-item"> <a href="//developers.google.com/youtube" class="nav-title"> <span class="nav-text"> YouTube </span> </a> </li> <li class="nav-item nav-heading"> <span class="nav-title"> <span class="nav-text"> Grow </span> </span> </li> <li class="nav-item"> <a href="//firebase.google.com" class="nav-title"> <span class="nav-text"> Firebase </span> </a> </li> <li class="nav-item"> <a href="//developers.google.com/google-ads" class="nav-title"> <span class="nav-text"> Google Ads </span> </a> </li> <li class="nav-item"> <a href="//developers.google.com/analytics" class="nav-title"> <span class="nav-text"> Google Analytics </span> </a> </li> <li class="nav-item"> <a href="//developer.android.com/distribute" class="nav-title"> <span class="nav-text"> Google Play </span> </a> </li> <li class="nav-item"> <a href="//developers.google.com/search" class="nav-title"> <span class="nav-text"> Search </span> </a> </li> <li class="nav-item"> <a href="//developers.google.com/web/fundamentals/engage-and-retain/push-notifications" class="nav-title"> <span class="nav-text"> Web Push and Notification APIs </span> </a> </li> <li class="nav-item nav-heading"> <span class="nav-title"> <span class="nav-text"> Earn </span> </span> </li> <li class="nav-item"> <a href="//developers.google.com/admob" class="nav-title"> <span class="nav-text"> AdMob </span> </a> </li> <li class="nav-item"> <a href="//developers.google.com/google-ads/api" class="nav-title"> <span class="nav-text"> Google Ads API </span> </a> </li> <li class="nav-item"> <a href="//developers.google.com/pay" class="nav-title"> <span class="nav-text"> Google Pay </span> </a> </li> <li class="nav-item"> <a href="//developer.android.com/google/play/billing/" class="nav-title"> <span class="nav-text"> Google Play Billing </span> </a> </li> <li class="nav-item"> <a href="//developers.google.com/interactive-media-ads" class="nav-title"> <span class="nav-text"> Interactive Media Ads </span> </a> </li> </ul> <ul class="nav-list community-submenu hidden" menu="Community" aria-label="Side menu"> <li class="nav-item nav-heading"> <span class="nav-title"> <span class="nav-text"> Groups </span> </span> </li> <li class="nav-item"> <a href="//developers.google.com/community/gdg" class="nav-title"> <span class="nav-text"> Google Developer Groups </span> </a> </li> <li class="nav-item"> <a href="//developers.google.com/community/gdsc" class="nav-title"> <span class="nav-text"> Google Developer Student Clubs </span> </a> </li> <li class="nav-item"> <a href="//developers.google.com/womentechmakers" class="nav-title"> <span class="nav-text"> Woman Techmakers </span> </a> </li> <li class="nav-item"> <a href="//developers.google.com/community/experts" class="nav-title"> <span class="nav-text"> Google Developer Experts </span> </a> </li> <li class="nav-item"> <a href="//www.techequitycollective.com/" class="nav-title"> <span class="nav-text"> Tech Equity Collective </span> </a> </li> <li class="nav-item nav-heading"> <span class="nav-title"> <span class="nav-text"> Programs </span> </span> </li> <li class="nav-item"> <a href="//developers.google.com/community/accelerators" class="nav-title"> <span class="nav-text"> Accelerator </span> </a> </li> <li class="nav-item"> <a href="//developers.google.com/community/gdsc-solution-challenge" class="nav-title"> <span class="nav-text"> Solution Challenge </span> </a> </li> <li class="nav-item"> <a href="//developers.google.com/community/devfest" class="nav-title"> <span class="nav-text"> DevFest </span> </a> </li> <li class="nav-item nav-heading"> <span class="nav-title"> <span class="nav-text"> Stories </span> </span> </li> <li class="nav-item"> <a href="//developers.google.com/community/stories" class="nav-title" aria-label="All Stories"> <span class="nav-text"> All Stories </span> </a> </li> </ul> </div> </div> </nav> <select aria-label="Change language" name="lang-selector" id="lang-selector-nav" class="glue-form__dropdown glue-mobile-nav__lang-dropdown" onchange="window.location.href=this.value" > <option value="/en/" lang="en" selected > English </option> <option value="/es/" lang="es" > Español (Latam) </option> <option value="/id/" lang="id" > Bahasa Indonesia </option> <option value="/ja/" lang="ja" > 日本語 </option> <option value="/ko/" lang="ko" > 한국어 </option> <option value="/pt-br/" lang="pt-br" > Português (Brasil) </option> <option value="/zh-hans/" lang="zh-hans" > 简体中文 </option> </select> </div> <div class="backdrop"></div> <div class="home-container"> <section class="hero-container"> <div class="background"> <img src="https://storage.googleapis.com/gweb-developer-goog-blog-cms-assets/site/20250401-180100/images/hero_section_background_grid_1.png" class="top-right" alt="Hero Section Background Grid Image"> <img src="https://storage.googleapis.com/gweb-developer-goog-blog-cms-assets/site/20250401-180100/images/hero_section_background_grid_2.png" class="bottom-left" alt="Hero Section Background Grid Image"> </div> <div class="hero-content glue-page"> <div class="glue-grid"> <div class="carousel-container glue-grid__col glue-grid__col--span-4-sm glue-grid__col--span-12-md glue-grid__col--span-7-lg"> <div id="glue-carousel-hero" class="glue-carousel glue-carousel--cards glue-carousel__hero" aria-label="Featured articles"> <p class="main-headline glue-headline glue-headline--headline-4 glue-spacer-2-bottom">Featured articles</p> <!-- Previous --> <button class="glue-carousel__button glue-carousel__button--prev" aria-label="Previous slide"> <svg role="presentation" aria-hidden="true" class="glue-icon glue-icon--32px"> <use href="/glue-icon/#chevron-left"></use> </svg> </button> <!-- Next --> <button class="glue-carousel__button glue-carousel__button--next" aria-label="Next slide"> <svg role="presentation" aria-hidden="true" class="glue-icon glue-icon--32px"> <use href="/glue-icon/#chevron-right"></use> </svg> </button> <!-- LIST --> <div class="glue-carousel__viewport"> <div class="glue-carousel__list"> <a class="glue-carousel__item glue-card" href="/en/the-gemini-api-and-the-internet-of-things/"> <div class="article__inner"> <picture class="article__asset"> <img alt="The Gemini API and the Internet of Things" src="https://storage.googleapis.com/gweb-developer-goog-blog-assets/images/Gemini-API-IoT_1.2e16d0ba.fill-1200x600.png"> </picture> <div class="article__content"> <div class="tags glue-spacer-2-top" aria-hidden="true"> <span class="glue-label">Gemini</span> <span class="glue-label">AI</span> <span class="glue-label">AI Homepage</span> <span class="glue-label">How-To Guides</span> <span class="glue-label">Best Practices</span> </div> <span class="glue-headline glue-headline--headline-4 glue-spacer-1-top">The Gemini API and the Internet of Things</span> <p class="glue-caption glue-spacer-1-top">The Gemini API and ESP32 microcontroller simplify custom voice commands for IoT devices, leveraging speech recognition for devices to understand and react to custom commands, bridging the gap between digital and physical worlds.</p> </div> </div> </a> <a class="glue-carousel__item glue-card" href="/en/introducing-txgemma-open-models-improving-therapeutics-development/"> <div class="article__inner"> <picture class="article__asset"> <img alt="Introducing TxGemma: Open models to improve therapeutics development" src="https://storage.googleapis.com/gweb-developer-goog-blog-assets/images/TxGemma-metadata.2e16d0ba.fill-1200x600.png"> </picture> <div class="article__content"> <div class="tags glue-spacer-2-top" aria-hidden="true"> <span class="glue-label">Gemini</span> <span class="glue-label">Gemma</span> <span class="glue-label">AI</span> <span class="glue-label">AI Homepage</span> <span class="glue-label">Announcements</span> <span class="glue-label">Solutions</span> </div> <span class="glue-headline glue-headline--headline-4 glue-spacer-1-top">Introducing TxGemma: Open models to improve therapeutics development</span> <p class="glue-caption glue-spacer-1-top">Google DeepMind releases TxGemma, built on Gemma, which predicts therapeutic properties, and Agentic-Tx, powered by Gemini 2.0 Pro, which tackles complex research problem-solving with advanced tools.</p> </div> </div> </a> <a class="glue-carousel__item glue-card" href="/en/introducing-gemma3/"> <div class="article__inner"> <picture class="article__asset"> <img alt="Introducing Gemma 3: The Developer Guide" src="https://storage.googleapis.com/gweb-developer-goog-blog-assets/images/gemma-3_1.2e16d0ba.fill-1200x600.png"> </picture> <div class="article__content"> <div class="tags glue-spacer-2-top" aria-hidden="true"> <span class="glue-label">Gemma</span> <span class="glue-label">AI</span> <span class="glue-label">AI Homepage</span> <span class="glue-label">Announcements</span> </div> <span class="glue-headline glue-headline--headline-4 glue-spacer-1-top">Introducing Gemma 3: The Developer Guide</span> <p class="glue-caption glue-spacer-1-top">Gemma 3 is a new, advanced version of the Gemma open-model family featuring multimodality, longer context windows, and improved language capabilities, with various sizes and deployment options for developers to experiment.</p> </div> </div> </a> <a class="glue-carousel__item glue-card" href="/en/safer-and-multimodal-responsible-ai-with-gemma/"> <div class="article__inner"> <picture class="article__asset"> <img alt="Safer and Multimodal: Responsible AI with Gemma" src="https://storage.googleapis.com/gweb-developer-goog-blog-assets/images/SheildGemma2_WagtailMDBlog_RD1_V0.2e16d0ba.fill-1200x600.png"> </picture> <div class="article__content"> <div class="tags glue-spacer-2-top" aria-hidden="true"> <span class="glue-label">Gemma</span> <span class="glue-label">AI</span> <span class="glue-label">AI Homepage</span> <span class="glue-label">Announcements</span> <span class="glue-label">Best Practices</span> </div> <span class="glue-headline glue-headline--headline-4 glue-spacer-1-top">Safer and Multimodal: Responsible AI with Gemma</span> <p class="glue-caption glue-spacer-1-top">ShieldGemma 2, built on Gemma 3, is a 4 billion parameter model that can be used as an input filter for vision language models or an output filter for image generation systems, and is designed to respond to a wide range of diverse and nuanced imagery.</p> </div> </div> </a> <a class="glue-carousel__item glue-card" href="/en/experiment-with-gemini-20-flash-native-image-generation/"> <div class="article__inner"> <picture class="article__asset"> <img alt="Experiment with Gemini 2.0 Flash native image generation" src="https://storage.googleapis.com/gweb-developer-goog-blog-assets/images/gemini-image-generation_1.2e16d0ba.fill-1200x600.png"> </picture> <div class="article__content"> <div class="tags glue-spacer-2-top" aria-hidden="true"> <span class="glue-label">Gemini</span> <span class="glue-label">Google AI Studio</span> <span class="glue-label">AI</span> <span class="glue-label">AI Homepage</span> <span class="glue-label">Announcements</span> </div> <span class="glue-headline glue-headline--headline-4 glue-spacer-1-top">Experiment with Gemini 2.0 Flash native image generation</span> <p class="glue-caption glue-spacer-1-top">The experimental native image generation feature of Gemini 2.0 Flash – allowing for the combination of text and images, conversational image editing, and leveraging real-world knowledge for contextual visuals – is now available for developers to test through Google AI Studio and the Gemini API.</p> </div> </div> </a> </div> </div> <!-- Navigation dots --> <div class="glue-carousel__navigation" aria-label="Choose slide to display"></div> </div> </div> <div class="posts-container glue-grid__col glue-grid__col--span-4-sm glue-grid__col--span-12-md glue-grid__col--span-5-lg"> <div class="posts-container-wrapper glue-elevation-level-1"> <div class="latest-posts"> <p class="glue-headline glue-headline--headline-4 glue-spacer-2-bottom">Latest blogs</p> <div class="post-item glue-spacer-1-top"> <div class="post-item__top"> MAR 31, 2025 / Gemini </div> <a href="/en/the-gemini-api-and-the-internet-of-things/" class="post-item__link"> <span class="glue-headline glue-headline--headline-5">The Gemini API and the Internet of Things</span> <p class="glue-caption glue-spacer-1-top">The Gemini API and ESP32 microcontroller simplify custom voice commands for IoT devices, leveraging speech recognition for devices to understand and react to custom commands, bridging the gap between digital and physical worlds.</p> </a> </div> <div class="post-item glue-spacer-1-top"> <div class="post-item__top"> MAR 25, 2025 / Gemini / Gemma </div> <a href="/en/introducing-txgemma-open-models-improving-therapeutics-development/" class="post-item__link"> <span class="glue-headline glue-headline--headline-5">Introducing TxGemma: Open models to improve therapeutics development</span> <p class="glue-caption glue-spacer-1-top">Google DeepMind releases TxGemma, built on Gemma, which predicts therapeutic properties, and Agentic-Tx, powered by Gemini 2.0 Pro, which tackles complex research problem-solving with advanced tools.</p> </a> </div> <div class="post-item glue-spacer-1-top"> <div class="post-item__top"> MAR 13, 2025 / Gemini </div> <a href="/en/unlocking-bonus-worlds-with-gemini-for-the-google-io-puzzle/" class="post-item__link"> <span class="glue-headline glue-headline--headline-5">Unlocking bonus worlds with Gemini for the Google I/O puzzle</span> <p class="glue-caption glue-spacer-1-top">The Google I/O 2025 puzzle used the Gemini API to generate dynamic riddles for bonus worlds, enhancing player engagement and scalability. Here's what our developers learned on using the Gemini API effectively, including creativity, design, and implementation strategies.</p> </a> </div> </div> <div class="search"> <form id="hero-search-form" class="form search-content" action="/en/search/" method="get"> <div class="search-input-wrapper"> <svg role="presentation" aria-hidden="true" class="glue-icon search-icon"> <use href="/glue-icon/#search"></use> </svg> <input type="text" name="query" placeholder="Search blog" aria-label="Search blog" class="search-input-field" /> </div> <button class="glue-button glue-button--medium-emphasis"> Search </button> </form> </div> </div> </div> </div> </div> </section> </div> <section class="blocks-container glue-page glue-spacer-4-top"> <div class="blocks-container__block-item glue-grid glue-spacer-4-bottom"> <div class="blocks-container__cta glue-spacer-2-bottom glue-grid__col glue-grid__col--span-4-sm glue-grid__col--span-12-md glue-grid__col--span-3-lg"> <h3 class="glue-headline glue-headline--headline-4"><span class="glue-font-weight-bold">AI</span></h3> <a class="glue-button glue-button--medium-emphasis glue-button--icon-right post-button" href="/en/search/?technology_categories=AI"> See posts <svg role="presentation" aria-hidden="true" class="glue-icon glue-icon--arrow-forward"> <use href="/glue-icon/#arrow-forward"></use> </svg> </a> </div> <div class="glue-carousel glue-carousel--cards glue-carousel__post-list glue-grid__col glue-grid__col--span-4-sm glue-grid__col--span-12-md glue-grid__col--span-9-lg"> <!-- Previous --> <button class="glue-carousel__button glue-carousel__button--prev" aria-label="Previous slide"> <svg role="presentation" aria-hidden="true" class="glue-icon glue-icon--32px"> <use href="/glue-icon/#chevron-left"></use> </svg> </button> <!-- Next --> <button class="glue-carousel__button glue-carousel__button--next" aria-label="Next slide"> <svg role="presentation" aria-hidden="true" class="glue-icon glue-icon--32px"> <use href="/glue-icon/#chevron-right"></use> </svg> </button> <!-- LIST --> <div class="glue-carousel__viewport"> <div class="glue-carousel__list"> <a class="glue-carousel__item glue-card" href="/en/the-gemini-api-and-the-internet-of-things/"> <h4 class="post-title">The Gemini API and the Internet of Things</h4> <img src="https://storage.googleapis.com/gweb-developer-goog-blog-assets/images/Gemini-API-IoT_1.2e16d0ba.fill-800x400.png" alt="Gemini-API-IoT"> </a> <a class="glue-carousel__item glue-card" href="/en/introducing-txgemma-open-models-improving-therapeutics-development/"> <h4 class="post-title">Introducing TxGemma: Open models to improve therapeutics development</h4> <img src="https://storage.googleapis.com/gweb-developer-goog-blog-assets/images/TxGemma-metadata.2e16d0ba.fill-800x400.png" alt="TxGemma"> </a> <a class="glue-carousel__item glue-card" href="/en/unlocking-bonus-worlds-with-gemini-for-the-google-io-puzzle/"> <h4 class="post-title">Unlocking bonus worlds with Gemini for the Google I/O puzzle</h4> <img src="https://storage.googleapis.com/gweb-developer-goog-blog-assets/images/IO-2025-puzzle-how-its-made.2e16d0ba.fill-800x400.png" alt="IO-2025-puzzle-how-its-made"> </a> <a class="glue-carousel__item glue-card" href="/en/experiment-with-gemini-20-flash-native-image-generation/"> <h4 class="post-title">Experiment with Gemini 2.0 Flash native image generation</h4> <img src="https://storage.googleapis.com/gweb-developer-goog-blog-assets/images/gemini-image-generation_1.2e16d0ba.fill-800x400.png" alt="Gemini 2.0 Flash native image generation"> </a> <a class="glue-carousel__item glue-card" href="/en/gemma-3-on-mobile-and-web-with-google-ai-edge/"> <h4 class="post-title">Gemma 3 on mobile and web with Google AI Edge</h4> <img src="https://storage.googleapis.com/gweb-developer-goog-blog-assets/images/gemma-3-google-ai-edge-1.2e16d0ba.fill-800x400.png" alt="Gemma 3 - Google AI Edge"> </a> <a class="glue-carousel__item glue-card" href="/en/introducing-gemma3/"> <h4 class="post-title">Introducing Gemma 3: The Developer Guide</h4> <img src="https://storage.googleapis.com/gweb-developer-goog-blog-assets/images/gemma-3_1.2e16d0ba.fill-800x400.png" alt="Gemma 3"> </a> <a class="glue-carousel__item glue-card" href="/en/safer-and-multimodal-responsible-ai-with-gemma/"> <h4 class="post-title">Safer and Multimodal: Responsible AI with Gemma</h4> <img src="https://storage.googleapis.com/gweb-developer-goog-blog-assets/images/SheildGemma2_WagtailMDBlog_RD1_V01.2e16d0ba.fill-800x400.png" alt="SheildGemma2"> </a> <a class="glue-carousel__item glue-card" href="/en/gemini-embedding-text-model-now-available-gemini-api/"> <h4 class="post-title">State-of-the-art text embedding via the Gemini API</h4> <img src="https://storage.googleapis.com/gweb-developer-goog-blog-assets/images/Gemini-metadata.2e16d0ba.fill-800x400.png" alt="Gemini spark"> </a> <a class="glue-carousel__item glue-card" href="/en/gemini-20-deep-dive-code-execution/"> <h4 class="post-title">Gemini 2.0 Deep Dive: Code Execution</h4> <img src="https://storage.googleapis.com/gweb-developer-goog-blog-assets/images/code-execution-gemini-api.2e16d0ba.fill-800x400.png" alt="code-execution-gemini-api"> </a> </div> </div> <!-- Navigation dots --> <div class="glue-carousel__navigation" aria-label="Choose slide to display"></div> </div> <div class="blocks-container__cta--mobile glue-spacer-2-top glue-grid__col glue-grid__col--span-4-sm glue-grid__col--span-12-md"> <a class="glue-button glue-button--medium-emphasis glue-button--icon-right post-button" href="/en/search/?technology_categories=AI"> See posts <svg role="presentation" aria-hidden="true" class="glue-icon glue-icon--arrow-forward"> <use href="/glue-icon/#chevron-right"></use> </svg> </a> </div> </div> <div class="blocks-container__block-item glue-grid glue-spacer-4-bottom"> <div class="blocks-container__cta glue-spacer-2-bottom glue-grid__col glue-grid__col--span-4-sm glue-grid__col--span-12-md glue-grid__col--span-3-lg"> <h3 class="glue-headline glue-headline--headline-4"><span class="glue-font-weight-bold">Mobile</span></h3> <a class="glue-button glue-button--medium-emphasis glue-button--icon-right post-button" href="/en/search/?technology_categories=Mobile"> See posts <svg role="presentation" aria-hidden="true" class="glue-icon glue-icon--arrow-forward"> <use href="/glue-icon/#arrow-forward"></use> </svg> </a> </div> <div class="glue-carousel glue-carousel--cards glue-carousel__post-list glue-grid__col glue-grid__col--span-4-sm glue-grid__col--span-12-md glue-grid__col--span-9-lg"> <!-- Previous --> <button class="glue-carousel__button glue-carousel__button--prev" aria-label="Previous slide"> <svg role="presentation" aria-hidden="true" class="glue-icon glue-icon--32px"> <use href="/glue-icon/#chevron-left"></use> </svg> </button> <!-- Next --> <button class="glue-carousel__button glue-carousel__button--next" aria-label="Next slide"> <svg role="presentation" aria-hidden="true" class="glue-icon glue-icon--32px"> <use href="/glue-icon/#chevron-right"></use> </svg> </button> <!-- LIST --> <div class="glue-carousel__viewport"> <div class="glue-carousel__list"> <a class="glue-carousel__item glue-card" href="/en/celebrating-flutters-production-era/"> <h4 class="post-title">Celebrating Flutter’s “Production Era”</h4> <img src="https://storage.googleapis.com/gweb-developer-goog-blog-assets/images/GfD_blog_header_1600x873px.2e16d0ba.fill-800x400.png" alt="Flutter In Production"> </a> <a class="glue-carousel__item glue-card" href="/en/firebase-demo-day-24/"> <h4 class="post-title">Learn to build and run AI powered apps at Firebase Demo Day ‘24</h4> <img src="https://storage.googleapis.com/gweb-developer-goog-blog-assets/images/Newletter_DayOf.2e16d0ba.fill-800x400.jpg" alt="Firebase Demo Day"> </a> <a class="glue-carousel__item glue-card" href="/en/tensorflow-lite-is-now-litert/"> <h4 class="post-title">TensorFlow Lite is now LiteRT</h4> <img src="https://storage.googleapis.com/gweb-developer-goog-blog-assets/images/LiteRT_BlogGraphics_1600x873px_1.2e16d0ba.fill-800x400.jpg" alt="LiteRT_BlogGraphics_1600x873px_1"> </a> <a class="glue-carousel__item glue-card" href="/en/indie-games-fund-google-plays-2m-fund-in-latin-america-is-back/"> <h4 class="post-title">Indie Games Fund: Google Play’s $2m fund in Latin America is back</h4> <img src="https://storage.googleapis.com/gweb-developer-goog-blog-assets/images/Indie-Games-Fund-Feature.2e16d0ba.fill-800x400.png" alt="Indie-Games-Fund-Feature"> </a> <a class="glue-carousel__item glue-card" href="/en/streamlining-llm-inference-at-the-edge-with-tflite/"> <h4 class="post-title">Streamlining LLM Inference at the Edge with TFLite</h4> <img src="https://storage.googleapis.com/gweb-developer-goog-blog-assets/images/TF-Wagtail-Feature.2e16d0ba.fill-800x400.png" alt="TF-Wagtail-Feature"> </a> <a class="glue-carousel__item glue-card" href="/en/model-explorer-simplifying-ml-models-for-edge-devices/"> <h4 class="post-title">Model Explorer: Simplifying ML models for Edge devices</h4> <img src="https://storage.googleapis.com/gweb-developer-goog-blog-assets/images/AI-Edge-Torch_1.2e16d0ba.fill-800x400.png" alt="AI-Edge-Torch (1)"> </a> <a class="glue-carousel__item glue-card" href="/en/ai-edge-torch-generative-api-for-custom-llms-on-device/"> <h4 class="post-title">AI Edge Torch Generative API for Custom LLMs on Device</h4> <img src="https://storage.googleapis.com/gweb-developer-goog-blog-assets/images/AI-Edge.2e16d0ba.fill-800x400.png" alt="AI-Edge"> </a> <a class="glue-carousel__item glue-card" href="/en/everything-google-wallet-at-io-24/"> <h4 class="post-title">Everything you need to know about Google Wallet</h4> <img src="https://storage.googleapis.com/gweb-developer-goog-blog-assets/images/AI-Edge-Torch_4fd1sqj.2e16d0ba.fill-800x400.png" alt="Google Wallet"> </a> <a class="glue-carousel__item glue-card" href="/en/welcome-india-google-wallet-api/"> <h4 class="post-title">Welcome India to the Google Wallet API</h4> <img src="https://storage.googleapis.com/gweb-developer-goog-blog-assets/images/Google-IO-Metadata_5.2e16d0ba.fill-800x400.png" alt="Google-IO-Metadata (5)"> </a> </div> </div> <!-- Navigation dots --> <div class="glue-carousel__navigation" aria-label="Choose slide to display"></div> </div> <div class="blocks-container__cta--mobile glue-spacer-2-top glue-grid__col glue-grid__col--span-4-sm glue-grid__col--span-12-md"> <a class="glue-button glue-button--medium-emphasis glue-button--icon-right post-button" href="/en/search/?technology_categories=Mobile"> See posts <svg role="presentation" aria-hidden="true" class="glue-icon glue-icon--arrow-forward"> <use href="/glue-icon/#chevron-right"></use> </svg> </a> </div> </div> <div class="blocks-container__block-item glue-grid glue-spacer-4-bottom"> <div class="blocks-container__cta glue-spacer-2-bottom glue-grid__col glue-grid__col--span-4-sm glue-grid__col--span-12-md glue-grid__col--span-3-lg"> <h3 class="glue-headline glue-headline--headline-4"><span class="glue-font-weight-bold">Web</span></h3> <a class="glue-button glue-button--medium-emphasis glue-button--icon-right post-button" href="/en/search/?technology_categories=Web"> See posts <svg role="presentation" aria-hidden="true" class="glue-icon glue-icon--arrow-forward"> <use href="/glue-icon/#arrow-forward"></use> </svg> </a> </div> <div class="glue-carousel glue-carousel--cards glue-carousel__post-list glue-grid__col glue-grid__col--span-4-sm glue-grid__col--span-12-md glue-grid__col--span-9-lg"> <!-- Previous --> <button class="glue-carousel__button glue-carousel__button--prev" aria-label="Previous slide"> <svg role="presentation" aria-hidden="true" class="glue-icon glue-icon--32px"> <use href="/glue-icon/#chevron-left"></use> </svg> </button> <!-- Next --> <button class="glue-carousel__button glue-carousel__button--next" aria-label="Next slide"> <svg role="presentation" aria-hidden="true" class="glue-icon glue-icon--32px"> <use href="/glue-icon/#chevron-right"></use> </svg> </button> <!-- LIST --> <div class="glue-carousel__viewport"> <div class="glue-carousel__list"> <a class="glue-carousel__item glue-card" href="/en/building-a-better-smart-home-expanding-access-for-developers-and-users/"> <h4 class="post-title">Building a better smart home</h4> <img src="https://storage.googleapis.com/gweb-developer-goog-blog-assets/images/Google-Home-CES-2025.2e16d0ba.fill-800x400.png" alt="Google-Home-CES-2025"> </a> <a class="glue-carousel__item glue-card" href="/en/unlocking-the-potential-of-quantum-computing-a-developers-guide-to-error-correction/"> <h4 class="post-title">Unlocking the Potential of Quantum Computing</h4> <img src="https://storage.googleapis.com/gweb-developer-goog-blog-assets/images/GeminiXCoursera-Feature.2e16d0ba.fill-800x400.png" alt="Gemini x Coursera"> </a> <a class="glue-carousel__item glue-card" href="/en/sharing-our-latest-differential-privacy-milestones-and-advancements/"> <h4 class="post-title">Sharing our latest differential privacy milestones and advancements</h4> <img src="https://storage.googleapis.com/gweb-developer-goog-blog-assets/images/header.2e16d0ba.fill-800x400.png" alt="security-header"> </a> <a class="glue-carousel__item glue-card" href="/en/chrome-3p-autofill-services/"> <h4 class="post-title">Chrome on Android to support third-party autofill services natively</h4> <img src="https://storage.googleapis.com/gweb-developer-goog-blog-assets/images/Security-GfD.2e16d0ba.fill-800x400.png" alt="Privacy and Security on Google for Developers"> </a> <a class="glue-carousel__item glue-card" href="/en/save-the-date-for-firebase-demo-day-2024/"> <h4 class="post-title">Save the date for Firebase Demo Day 2024!</h4> <img src="https://storage.googleapis.com/gweb-developer-goog-blog-assets/images/Email_Newsletter_SaveTheDate.2e16d0ba.fill-800x400.png" alt="Firebase Demo Day"> </a> <a class="glue-carousel__item glue-card" href="/en/configure-google-pay-payment-options/"> <h4 class="post-title">Want a smoother checkout with Google Pay? Configure your payment options!</h4> <img src="https://storage.googleapis.com/gweb-developer-goog-blog-assets/images/GPay-Smoother-.2e16d0ba.fill-800x400.png" alt="Google Pay Smoother checkout"> </a> <a class="glue-carousel__item glue-card" href="/en/google-photos-picker-api-launch-and-library-api-updates/"> <h4 class="post-title">Updates to the Google Photos APIs: Picker API launch and Library API changes</h4> <img src="https://storage.googleapis.com/gweb-developer-goog-blog-assets/images/Cloud-photo-picker.2e16d0ba.fill-800x400.png" alt="Photo Picker Feature"> </a> <a class="glue-carousel__item glue-card" href="/en/how-we-built-purrfect-code/"> <h4 class="post-title">How We Built Purrfect Code: A Puzzle Game for Developers</h4> <img src="https://storage.googleapis.com/gweb-developer-goog-blog-assets/images/image2_R0cO2EO.2e16d0ba.fill-800x400.png" alt="Purrfect Code Feature"> </a> <a class="glue-carousel__item glue-card" href="/en/checks-now-available-to-all-developers/"> <h4 class="post-title">The power of Checks is now available to all Android and iOS Developers</h4> <img src="https://storage.googleapis.com/gweb-developer-goog-blog-assets/images/Checks.2e16d0ba.fill-800x400.png" alt="Checks-Featured"> </a> </div> </div> <!-- Navigation dots --> <div class="glue-carousel__navigation" aria-label="Choose slide to display"></div> </div> <div class="blocks-container__cta--mobile glue-spacer-2-top glue-grid__col glue-grid__col--span-4-sm glue-grid__col--span-12-md"> <a class="glue-button glue-button--medium-emphasis glue-button--icon-right post-button" href="/en/search/?technology_categories=Web"> See posts <svg role="presentation" aria-hidden="true" class="glue-icon glue-icon--arrow-forward"> <use href="/glue-icon/#chevron-right"></use> </svg> </a> </div> </div> <div class="blocks-container__block-item glue-grid glue-spacer-4-bottom"> <div class="blocks-container__cta glue-spacer-2-bottom glue-grid__col glue-grid__col--span-4-sm glue-grid__col--span-12-md glue-grid__col--span-3-lg"> <h3 class="glue-headline glue-headline--headline-4"><span class="glue-font-weight-bold">Cloud</span></h3> <a class="glue-button glue-button--medium-emphasis glue-button--icon-right post-button" href="/en/search/?technology_categories=Cloud"> See posts <svg role="presentation" aria-hidden="true" class="glue-icon glue-icon--arrow-forward"> <use href="/glue-icon/#arrow-forward"></use> </svg> </a> </div> <div class="glue-carousel glue-carousel--cards glue-carousel__post-list glue-grid__col glue-grid__col--span-4-sm glue-grid__col--span-12-md glue-grid__col--span-9-lg"> <!-- Previous --> <button class="glue-carousel__button glue-carousel__button--prev" aria-label="Previous slide"> <svg role="presentation" aria-hidden="true" class="glue-icon glue-icon--32px"> <use href="/glue-icon/#chevron-left"></use> </svg> </button> <!-- Next --> <button class="glue-carousel__button glue-carousel__button--next" aria-label="Next slide"> <svg role="presentation" aria-hidden="true" class="glue-icon glue-icon--32px"> <use href="/glue-icon/#chevron-right"></use> </svg> </button> <!-- LIST --> <div class="glue-carousel__viewport"> <div class="glue-carousel__list"> <a class="glue-carousel__item glue-card" href="/en/leveraging-bigquery-json-for-optimized-mongodb-dataflow-pipelines/"> <h4 class="post-title">Leveraging BigQuery JSON for Optimized MongoDB Dataflow Pipelines</h4> <img src="https://storage.googleapis.com/gweb-developer-goog-blog-assets/images/MongoDB-BigQuery.2e16d0ba.fill-800x400.png" alt="MongoDB-BigQuery"> </a> <a class="glue-carousel__item glue-card" href="/en/developer-focused-sessions-and-talks-at-google-cloud-next-25/"> <h4 class="post-title">Developer-focused sessions and talks at Google Cloud Next '25</h4> <img src="https://storage.googleapis.com/gweb-developer-goog-blog-assets/images/Google-Cloud-Next-25-Developer-Ses.2e16d0ba.fill-800x400.png" alt="Google Cloud Next '25 Developer Sessions"> </a> <a class="glue-carousel__item glue-card" href="/en/vertex-ai-rag-engine-a-developers-tool/"> <h4 class="post-title">Vertex AI RAG Engine: A developers tool</h4> <img src="https://storage.googleapis.com/gweb-developer-goog-blog-assets/images/Cloud-Vertex-AI-Sequence_5.2e16d0ba.fill-800x400.png" alt="Cloud-Vertex-AI-Sequence-Light"> </a> <a class="glue-carousel__item glue-card" href="/en/build-the-future-of-home-with-google-home-apis/"> <h4 class="post-title">Build the future of home with Google Home APIs</h4> <img src="https://storage.googleapis.com/gweb-developer-goog-blog-assets/images/Generic_16x9.2e16d0ba.fill-800x400.png" alt="Google Home CES 2025"> </a> <a class="glue-carousel__item glue-card" href="/en/apigee-api-hub-is-now-generally-available/"> <h4 class="post-title">Apigee API hub is now generally available</h4> <img src="https://storage.googleapis.com/gweb-developer-goog-blog-assets/images/Apigee-API-Hub-Feature_1.2e16d0ba.fill-800x400.png" alt="Apigee-API-Hub-Feature"> </a> <a class="glue-carousel__item glue-card" href="/en/registration-is-open-for-google-cloud-next-2025/"> <h4 class="post-title">Registration is Open for Google Cloud Next 2025</h4> <img src="https://storage.googleapis.com/gweb-developer-goog-blog-assets/images/Google-Cloud-Next-25.2e16d0ba.fill-800x400.png" alt="Google Cloud Next 2025 Registration is open"> </a> <a class="glue-carousel__item glue-card" href="/en/introducing-the-google-developer-program-premium/"> <h4 class="post-title">Introducing Google Developer Program premium membership</h4> <img src="https://storage.googleapis.com/gweb-developer-goog-blog-assets/images/Google-Developers-program-feature.2e16d0ba.fill-800x400.png" alt="Google-Developers-program-feature"> </a> <a class="glue-carousel__item glue-card" href="/en/inference-with-gemma-using-dataflow-and-vllm/"> <h4 class="post-title">Inference with Gemma using Dataflow and vLLM</h4> <img src="https://storage.googleapis.com/gweb-developer-goog-blog-assets/images/Gemma-Dataflow-ML-vLLM.2e16d0ba.fill-800x400.png" alt="Gemma-Dataflow-ML-vLLM"> </a> <a class="glue-carousel__item glue-card" href="/en/enhancing-chat-apps-with-the-google-chat-api/"> <h4 class="post-title">Now in Developer Preview: Enhancing Chat with the Google Chat API</h4> <img src="https://storage.googleapis.com/gweb-developer-goog-blog-assets/images/social-G4D---Now-in-GA-for-all-Wor.2e16d0ba.fill-800x400.png" alt="Google-Chat-API"> </a> </div> </div> <!-- Navigation dots --> <div class="glue-carousel__navigation" aria-label="Choose slide to display"></div> </div> <div class="blocks-container__cta--mobile glue-spacer-2-top glue-grid__col glue-grid__col--span-4-sm glue-grid__col--span-12-md"> <a class="glue-button glue-button--medium-emphasis glue-button--icon-right post-button" href="/en/search/?technology_categories=Cloud"> See posts <svg role="presentation" aria-hidden="true" class="glue-icon glue-icon--arrow-forward"> <use href="/glue-icon/#chevron-right"></use> </svg> </a> </div> </div> </section> <section class="follow-container glue-spacer-6-top"> <div class="follow-block"> <div class="follow-block__wrapper"> <div class="follow-block__title"> <span class="glue-headline glue-headline--headline-2 glue-font-weight-bold">Follow Google for Developers</span> </div> <div class="follow-block__item"> <img src="https://storage.googleapis.com/gweb-developer-goog-blog-assets/images/yt_1.2e16d0ba.fill-38x38.png" aria-hidden="true"> <p class="glue-spacer-4-top glue-spacer-4-bottom">Subscribe to join a community of creative developers and learn the latest in Google technology.</p> <a href="https://goo.gle/developers" class="glue-button glue-button--medium-emphasis" target="_blank" rel="noopener" >Learn more</a> </div> <div class="follow-block__item"> <img src="https://storage.googleapis.com/gweb-developer-goog-blog-assets/images/ig_1.2e16d0ba.fill-38x38.png" aria-hidden="true"> <p class="glue-spacer-4-top glue-spacer-4-bottom">Follow and discover developer resources, community events, and inspirational stories.</p> <a href="https://goo.gle/googlefordevs" class="glue-button glue-button--medium-emphasis" target="_blank" rel="noopener" >Learn more</a> </div> <div class="follow-block__item"> <img src="https://storage.googleapis.com/gweb-developer-goog-blog-assets/images/li_96_1.2e16d0ba.fill-38x38.png" aria-hidden="true"> <p class="glue-spacer-4-top glue-spacer-4-bottom">Join a community of creative developers and learn how to use the latest in technology.</p> <a href="https://goo.gle/gdevs-li" class="glue-button glue-button--medium-emphasis" target="_blank" rel="noopener" >Learn more</a> </div> <div class="follow-block__item"> <img src="https://storage.googleapis.com/gweb-developer-goog-blog-assets/images/email_gm_grey_24dp_1.2e16d0ba.fill-38x38.png" aria-hidden="true"> <p class="glue-spacer-4-top glue-spacer-4-bottom">Subscribe to Google for Developers news. Your information will be used in accordance with Google’s privacy policy.</p> <a href="https://developers.google.com/newsletter/subscribe" class="glue-button glue-button--medium-emphasis" target="_blank" rel="noopener" >Subscribe</a> </div> </div> </div> </section> <section class="cta-container glue-spacer-6-top"> </section> <div class="footer-linkboxes__wrapper"> <nav class="footer-linkboxes" aria-label="Footer links"> <ul class="footer-linkboxes__list"> <li class="footer-linkbox"> <span class="footer-linkbox-heading"> Connect </span> <ul class="footer-linkbox-list"> <li class="footer-linkbox-list__item"> <a href="//googledevelopers.blogspot.com" class="footer-linkbox-list__link"> Blog </a> </li> <li class="footer-linkbox-list__item"> <a href="https://goo.gle/googlefordevs" class="footer-linkbox-list__link"> Instagram </a> </li> <li class="footer-linkbox-list__item"> <a href="https://goo.gle/gdevs-li" class="footer-linkbox-list__link"> LinkedIn </a> </li> <li class="footer-linkbox-list__item"> <a href="https://goo.gle/gdevs-tw" class="footer-linkbox-list__link"> Twitter </a> </li> <li class="footer-linkbox-list__item"> <a href="https://goo.gle/developers" class="footer-linkbox-list__link"> YouTube </a> </li> </ul> </li> <li class="footer-linkbox"> <span class="footer-linkbox-heading"> Programs </span> <ul class="footer-linkbox-list"> <li class="footer-linkbox-list__item"> <a href="//www.womentechmakers.com" class="footer-linkbox-list__link"> Women Techmakers </a> </li> <li class="footer-linkbox-list__item"> <a href="//developers.google.com/community/gdg" class="footer-linkbox-list__link"> Google Developer Groups </a> </li> <li class="footer-linkbox-list__item"> <a href="//developers.google.com/community/experts" class="footer-linkbox-list__link"> Google Developer Experts </a> </li> <li class="footer-linkbox-list__item"> <a href="//developers.google.com/community/accelerators" class="footer-linkbox-list__link"> Accelerators </a> </li> <li class="footer-linkbox-list__item"> <a href="//developers.google.com/community/gdsc" class="footer-linkbox-list__link"> Google Developer Student Clubs </a> </li> </ul> </li> <li class="footer-linkbox"> <span class="footer-linkbox-heading"> Developer consoles </span> <ul class="footer-linkbox-list"> <li class="footer-linkbox-list__item"> <a href="//console.developers.google.com" class="footer-linkbox-list__link"> Google API Console </a> </li> <li class="footer-linkbox-list__item"> <a href="//console.cloud.google.com" class="footer-linkbox-list__link"> Google Cloud Platform Console </a> </li> <li class="footer-linkbox-list__item"> <a href="//play.google.com/apps/publish" class="footer-linkbox-list__link"> Google Play Console </a> </li> <li class="footer-linkbox-list__item"> <a href="//console.firebase.google.com" class="footer-linkbox-list__link"> Firebase Console </a> </li> <li class="footer-linkbox-list__item"> <a href="//console.actions.google.com" class="footer-linkbox-list__link"> Actions on Google Console </a> </li> <li class="footer-linkbox-list__item"> <a href="//cast.google.com/publish" class="footer-linkbox-list__link"> Cast SDK Developer Console </a> </li> <li class="footer-linkbox-list__item"> <a href="//chrome.google.com/webstore/developer/dashboard" class="footer-linkbox-list__link"> Chrome Web Store Dashboard </a> </li> </ul> </li> </ul> </nav> </div> <div class="footer-utility__wrapper"> <div> <nav class="footer-sites" aria-label="Other Google Developers websites"> <a href="https://developers.google.com/" class="site-logo-link" data-label="Site logo"> <img src="https://storage.googleapis.com/gweb-developer-goog-blog-cms-assets/site/20250401-180100/images/g-dev.svg" class="site-logo" alt="Google for Developers"> </a> <ul class="footer-sites-list"> <li class="footer-sites-item"> <a href="//developer.android.com" class="footer-sites-link"> Android </a> </li> <li class="footer-sites-item"> <a href="//developer.chrome.com/home" class="footer-sites-link"> Chrome </a> </li> <li class="footer-sites-item"> <a href="//firebase.google.com" class="footer-sites-link"> Firebase </a> </li> <li class="footer-sites-item"> <a href="//cloud.google.com" class="footer-sites-link"> Google Cloud Platform </a> </li> <li class="footer-sites-item"> <a href="//developers.google.com/products" class="footer-sites-link"> All products </a> </li> <li class="footer-sites-item"> <button aria-hidden="true" class="glue-cookie-notification-bar-control footer-sites-link"> Manage cookies </button> </li> </ul> </nav> <nav class="footer-utility-links"> <ul class="footer-utility-list"> <li class="footer-utility-item"> <a href="//developers.google.com/terms/site-terms" class="footer-utility-link"> Terms </a> </li> <li class="footer-utility-item"> <a href="//policies.google.com/privacy" class="footer-utility-link"> Privacy </a> </li> </ul> <div class="language-selector footer" aria-label="Select your language preference"> <button type="button" aria-controls="lang-selector-footer" aria-haspopup="true"> <svg role="presentation" aria-hidden="true" class="glue-icon lang-icon"> <use href="/glue-icon/#language"></use> </svg> <span class="lang-label">English</span> <svg role="presentation" aria-hidden="true" class="glue-icon lang-icon"> <use href="/glue-icon/#arrow-drop-down"></use> </svg> </button> <div id="lang-selector-footer" class="lang-menu hidden" role="menu"> <ul role="presentation"> <li role="presentation"> <a role="menuitem" lang="en" aria-current="true" href="/en/"> English </a> </li> <li role="presentation"> <a role="menuitem" lang="es" href="/es/"> Español (Latam) </a> </li> <li role="presentation"> <a role="menuitem" lang="id" href="/id/"> Bahasa Indonesia </a> </li> <li role="presentation"> <a role="menuitem" lang="ja" href="/ja/"> 日本語 </a> </li> <li role="presentation"> <a role="menuitem" lang="ko" href="/ko/"> 한국어 </a> </li> <li role="presentation"> <a role="menuitem" lang="pt-br" href="/pt-br/"> Português (Brasil) </a> </li> <li role="presentation"> <a role="menuitem" lang="zh-hans" href="/zh-hans/"> 简体中文 </a> </li> </ul> </div> </div> </nav> </div> </div> <script nonce="5XD0uMs6NMCR9EjwWE2hBg==" src="https://www.youtube.com/player_api"></script> <script nonce="5XD0uMs6NMCR9EjwWE2hBg==" src="//www.gstatic.com/glue/v27_1/glue.min.js"></script> <script nonce="5XD0uMs6NMCR9EjwWE2hBg==" type="text/javascript" src="https://storage.googleapis.com/gweb-developer-goog-blog-cms-assets/site/20250401-180100/js/dgc_blog.js"></script> <script nonce="5XD0uMs6NMCR9EjwWE2hBg==" src="https://www.gstatic.com/glue/cookienotificationbar/cookienotificationbar.min.js" data-glue-cookie-notification-bar-category="2A" data-glue-cookie-notification-bar-site-id="developers.googleblog.com"></script> <script src="https://storage.googleapis.com/gweb-developer-goog-blog-cms-assets/site/20250401-180100/js/home_page.js" nonce="5XD0uMs6NMCR9EjwWE2hBg=="></script> </body> </html>