CINXE.COM
Monzo reduced over 9,000 lines of code and improved registration dropout by 5x with CameraX | Android 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("https://web.archive.org/web"); __wm.wombat("https://developer.android.com/stories/apps/monzo-camerax","20230328100528","https://web.archive.org/","web","/_static/", "1679997928"); </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="Android Developers"> <meta property="og:type" content="website"><meta name="theme-color" content="#3ddc84"><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/20230328100528/https://developer.android.com/_pwa/android/manifest.json" crossorigin="use-credentials"> <link rel="preconnect" href="//web.archive.org/web/20230328100528/https://www.gstatic.com/" crossorigin> <link rel="preconnect" href="//web.archive.org/web/20230328100528/https://fonts.gstatic.com/" crossorigin> <link rel="preconnect" href="//web.archive.org/web/20230328100528/https://fonts.googleapis.com/" crossorigin> <link rel="preconnect" href="//web.archive.org/web/20230328100528/https://apis.google.com/" crossorigin> <link rel="preconnect" href="//web.archive.org/web/20230328100528/https://www.google-analytics.com/" crossorigin><link rel="stylesheet" href="//web.archive.org/web/20230328100528cs_/https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,500,700&display=swap"> <link rel="stylesheet" href="//web.archive.org/web/20230328100528cs_/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="https://web.archive.org/web/20230328100528cs_/https://www.gstatic.com/devrel-devsite/prod/ve286fa3f99aa90bc7ef7460968844e5bb93251ce750a58802f281151c87037d6/android/css/app.css"> <link rel="shortcut icon" href="https://web.archive.org/web/20230328100528im_/https://www.gstatic.com/devrel-devsite/prod/ve286fa3f99aa90bc7ef7460968844e5bb93251ce750a58802f281151c87037d6/android/images/favicon.png"> <link rel="apple-touch-icon" href="https://web.archive.org/web/20230328100528im_/https://www.gstatic.com/devrel-devsite/prod/ve286fa3f99aa90bc7ef7460968844e5bb93251ce750a58802f281151c87037d6/android/images/touchicon-180.png"><link rel="canonical" href="https://web.archive.org/web/20230328100528/https://developer.android.com/stories/apps/monzo-camerax"><link rel="search" type="application/opensearchdescription+xml" title="Android Developers" href="https://web.archive.org/web/20230328100528/https://developer.android.com/s/opensearch.xml"> <link rel="alternate" hreflang="en" href="https://web.archive.org/web/20230328100528/https://developer.android.com/stories/apps/monzo-camerax"/><link rel="alternate" hreflang="x-default" href="https://web.archive.org/web/20230328100528/https://developer.android.com/stories/apps/monzo-camerax"/><link rel="alternate" hreflang="zh-Hans" href="https://web.archive.org/web/20230328100528/https://developer.android.com/stories/apps/monzo-camerax?hl=zh-cn"/><link rel="alternate" hreflang="id" href="https://web.archive.org/web/20230328100528/https://developer.android.com/stories/apps/monzo-camerax?hl=id"/><link rel="alternate" hreflang="ja" href="https://web.archive.org/web/20230328100528/https://developer.android.com/stories/apps/monzo-camerax?hl=ja"/><link rel="alternate" hreflang="ko" href="https://web.archive.org/web/20230328100528/https://developer.android.com/stories/apps/monzo-camerax?hl=ko"/><link rel="alternate" hreflang="pt-BR" href="https://web.archive.org/web/20230328100528/https://developer.android.com/stories/apps/monzo-camerax?hl=pt-br"/><link rel="alternate" hreflang="es-419" href="https://web.archive.org/web/20230328100528/https://developer.android.com/stories/apps/monzo-camerax?hl=es-419"/><title>Monzo reduced over 9,000 lines of code and improved registration dropout by 5x with CameraX | Android Developers</title> <meta property="og:title" content="Monzo reduced over 9,000 lines of code and improved registration dropout by 5x with CameraX | Android Developers"><meta property="og:url" content="https://web.archive.org/web/20230328100528/https://developer.android.com/stories/apps/monzo-camerax"><meta property="og:image" content="https://web.archive.org/web/20230328100528im_/https://developer.android.com/static/images/social/android-developers.png"> <meta property="og:image:width" content="1200"> <meta property="og:image:height" content="675"><meta property="og:locale" content="en"><meta name="twitter:card" content="summary_large_image"><script type="application/ld+json"> { "@context": "https://web.archive.org/web/20230328100528/https://schema.org", "@type": "Article", "headline": "Monzo reduced over 9,000 lines of code and improved registration dropout by 5x with CameraX" } </script><script type="application/ld+json"> { "@context": "https://web.archive.org/web/20230328100528/https://schema.org", "@type": "BreadcrumbList", "itemListElement": [{ "@type": "ListItem", "position": 1, "name": "Android Developers", "item": "https://web.archive.org/web/20230328100528/https://developer.android.com/stories" },{ "@type": "ListItem", "position": 2, "name": "Monzo reduced over 9,000 lines of code and improved registration dropout by 5x with CameraX", "item": "https://web.archive.org/web/20230328100528/https://developer.android.com/stories/apps/monzo-camerax" }] } </script> <link rel="stylesheet" href="/web/20230328100528cs_/https://developer.android.com/extras.css"></head> <body class="" template="page" theme="android-theme" type="article" layout="docs" pending> <devsite-progress type="indeterminate" id="app-progress"></devsite-progress> <section class="devsite-wrapper"><devsite-header> <div class="devsite-header--inner nocontent"> <div class="devsite-top-logo-row-wrapper-wrapper"> <div class="devsite-top-logo-row-wrapper"> <div class="devsite-top-logo-row"> <button type="button" id="devsite-hamburger-menu" class="devsite-header-icon-button button-flat material-icons gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Navigation menu button" visually-hidden aria-label="Open menu"> </button> <div class="devsite-product-name-wrapper"> <a href="/web/20230328100528/https://developer.android.com/" class="devsite-site-logo-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Site logo" track-type="globalNav" track-name="androidDevelopers" track-metadata-position="nav" track-metadata-eventdetail="nav"> <img src="https://web.archive.org/web/20230328100528im_/https://www.gstatic.com/devrel-devsite/prod/ve286fa3f99aa90bc7ef7460968844e5bb93251ce750a58802f281151c87037d6/android/images/lockup.svg" class="devsite-site-logo" alt="Android Developers"> </a> <span class="devsite-product-name"> <ul class="devsite-breadcrumb-list"> <li class="devsite-breadcrumb-item "> </li> </ul> </span> </div> <div class="devsite-top-logo-row-middle"> <div class="devsite-header-upper-tabs"> </div> <devsite-search aria-expanded="false" aria-haspopup="listbox" enable-signin enable-search enable-suggestions enable-query-completion project-name="Android Developers" tenant-name="Android Developers" role="combobox"> <form class="devsite-search-form" action="https://web.archive.org/web/20230328100528/https://developer.android.com/s/results" method="GET"> <div class="devsite-search-container"> <div class="devsite-searchbox"> <input aria-activedescendant="" aria-autocomplete="list" aria-label="Search" aria-haspopup="false" aria-multiline="false" aria-label="Search box" autocomplete="off" class="devsite-search-field devsite-search-query" name="q" placeholder="Search" role="searchbox" type="text" value=""> <div class="devsite-search-image material-icons" aria-hidden="true"></div> </div> <button type="button" search-open class="devsite-search-button devsite-header-icon-button button-flat material-icons" aria-label="Open search"></button> </div> </form> <button type="button" search-close class="devsite-search-button devsite-header-icon-button button-flat material-icons" aria-label="Close search"></button> </devsite-search> </div> <devsite-language-selector> <ul role="presentation"> <li role="presentation"> <a role="menuitem" lang="en">English</a> </li> <li role="presentation"> <a role="menuitem" lang="id">Bahasa Indonesia</a> </li> <li role="presentation"> <a role="menuitem" lang="es_419">Español – América Latina</a> </li> <li role="presentation"> <a role="menuitem" lang="pt_br">Português – Brasil</a> </li> <li role="presentation"> <a role="menuitem" lang="zh_cn">中文 – 简体</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> <a class="devsite-header-link devsite-top-button button gc-analytics-event" href="https://web.archive.org/web/20230328100528/https://developer.android.com/studio" data-category="Site-Wide Custom Events" data-label="Site header link"> Android Studio </a> <devsite-user enable-profiles id="devsite-user"> <span class="button devsite-top-button" aria-hidden="true" visually-hidden>Sign in</span> </devsite-user> </div> </div> </div> <div class="devsite-collapsible-section devsite-header-no-lower-tabs "> <div class="devsite-header-background"> </div> </div> </div> </devsite-header> <devsite-book-nav scrollbars> <div class="devsite-book-nav-filter "> <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/20230328100528/https://developer.android.com/" class="devsite-site-logo-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Site logo" track-type="globalNav" track-name="androidDevelopers" track-metadata-position="nav" track-metadata-eventdetail="nav"> <img src="https://web.archive.org/web/20230328100528im_/https://www.gstatic.com/devrel-devsite/prod/ve286fa3f99aa90bc7ef7460968844e5bb93251ce750a58802f281151c87037d6/android/images/lockup.svg" class="devsite-site-logo" alt="Android Developers"> </a> <span class="devsite-product-name"> <ul class="devsite-breadcrumb-list"> <li class="devsite-breadcrumb-item "> </li> </ul> </span> </div> </div> <div class="devsite-book-nav-wrapper"> <div class="devsite-mobile-nav-top"> <ul class="devsite-nav-list"> <li class="devsite-nav-item"> <a href="/web/20230328100528/https://developer.android.com/stories" class="devsite-nav-title gc-analytics-event devsite-nav-has-children devsite-nav-active" data-category="Site-Wide Custom Events" data-label="Tab: Stories" track-name="stories" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Stories" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Stories </span> <span class="devsite-nav-icon material-icons" data-icon="forward"> </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20230328100528/https://developer.android.com/studio" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Android Studio" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Android Studio </span> </a> </li> </ul> </div> <div class="devsite-mobile-nav-bottom" role="navigation"> <ul class="devsite-nav-list" menu="_book"> <li class="devsite-nav-item"><a href="/web/20230328100528/https://developer.android.com/stories" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /stories" track-type="bookNav" track-name="click" track-metadata-eventdetail="/stories"><span class="devsite-nav-text" tooltip>Latest</span></a></li> <li class="devsite-nav-item devsite-nav-expandable devsite-nav-accordion"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Apps</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="https://web.archive.org/web/20230328100528/https://android-developers.googleblog.com/2022/03/play-time-with-jetpack-compose.html" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: https://android-developers.googleblog.com/2022/03/play-time-with-jetpack-compose.html" track-type="bookNav" track-name="click" track-metadata-eventdetail="https://android-developers.googleblog.com/2022/03/play-time-with-jetpack-compose.html"><span class="devsite-nav-text" tooltip>Play Store</span></a></li><li class="devsite-nav-item"><a href="/web/20230328100528/https://developer.android.com/stories/apps/cuvva-compose" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /stories/apps/cuvva-compose" track-type="bookNav" track-name="click" track-metadata-eventdetail="/stories/apps/cuvva-compose"><span class="devsite-nav-text" tooltip>Cuvva - Compose</span></a></li><li class="devsite-nav-item"><a href="/web/20230328100528/https://developer.android.com/stories/apps/square-compose" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /stories/apps/square-compose" track-type="bookNav" track-name="click" track-metadata-eventdetail="/stories/apps/square-compose"><span class="devsite-nav-text" tooltip>Square - Compose</span></a></li><li class="devsite-nav-item devsite-nav-external"><a href="https://web.archive.org/web/20230328100528/https://play.google.com/console/about/mikan-casestudy/" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: https://play.google.com/console/about/mikan-casestudy/" track-type="bookNav" track-name="click" track-metadata-eventdetail="https://play.google.com/console/about/mikan-casestudy/"><span class="devsite-nav-text" tooltip>Mikan</span><span class="devsite-nav-icon material-icons" data-icon="external" data-title="External" aria-hidden="true"></span></a></li><li class="devsite-nav-item devsite-nav-external"><a href="https://web.archive.org/web/20230328100528/https://play.google.com/console/about/matchingagent-casestudy/" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: https://play.google.com/console/about/matchingagent-casestudy/" track-type="bookNav" track-name="click" track-metadata-eventdetail="https://play.google.com/console/about/matchingagent-casestudy/"><span class="devsite-nav-text" tooltip>MatchingAgent - tapple</span><span class="devsite-nav-icon material-icons" data-icon="external" data-title="External" aria-hidden="true"></span></a></li><li class="devsite-nav-item"><a href="/web/20230328100528/https://developer.android.com/stories/apps/vlc-android-tv" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /stories/apps/vlc-android-tv" track-type="bookNav" track-name="click" track-metadata-eventdetail="/stories/apps/vlc-android-tv"><span class="devsite-nav-text" tooltip>VLC - Android TV</span></a></li><li class="devsite-nav-item"><a href="/web/20230328100528/https://developer.android.com/stories/apps/djay2" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /stories/apps/djay2" track-type="bookNav" track-name="click" track-metadata-eventdetail="/stories/apps/djay2"><span class="devsite-nav-text" tooltip>Djay2</span></a></li><li class="devsite-nav-item"><a href="/web/20230328100528/https://developer.android.com/stories/apps/vlc" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /stories/apps/vlc" track-type="bookNav" track-name="click" track-metadata-eventdetail="/stories/apps/vlc"><span class="devsite-nav-text" tooltip>VLC</span></a></li><li class="devsite-nav-item"><a href="/web/20230328100528/https://developer.android.com/stories/apps/concepts" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /stories/apps/concepts" track-type="bookNav" track-name="click" track-metadata-eventdetail="/stories/apps/concepts"><span class="devsite-nav-text" tooltip>Concepts</span></a></li><li class="devsite-nav-item devsite-nav-external"><a href="https://web.archive.org/web/20230328100528/https://play.google.com/console/about/duolingo-casestudy/" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: https://play.google.com/console/about/duolingo-casestudy/" track-type="bookNav" track-name="click" track-metadata-eventdetail="https://play.google.com/console/about/duolingo-casestudy/"><span class="devsite-nav-text" tooltip>Duolingo - App Bundle</span><span class="devsite-nav-icon material-icons" data-icon="external" data-title="External" aria-hidden="true"></span></a></li><li class="devsite-nav-item"><a href="/web/20230328100528/https://developer.android.com/stories/apps/duolingo-excellence" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /stories/apps/duolingo-excellence" track-type="bookNav" track-name="click" track-metadata-eventdetail="/stories/apps/duolingo-excellence"><span class="devsite-nav-text" tooltip>Duolingo - Excellence</span></a></li><li class="devsite-nav-item"><a href="/web/20230328100528/https://developer.android.com/stories/apps/duolingo-kotlin" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /stories/apps/duolingo-kotlin" track-type="bookNav" track-name="click" track-metadata-eventdetail="/stories/apps/duolingo-kotlin"><span class="devsite-nav-text" tooltip>Duolingo - Kotlin</span></a></li><li class="devsite-nav-item"><a href="/web/20230328100528/https://developer.android.com/stories/apps/google-home" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /stories/apps/google-home" track-type="bookNav" track-name="click" track-metadata-eventdetail="/stories/apps/google-home"><span class="devsite-nav-text" tooltip>Google Home</span></a></li><li class="devsite-nav-item"><a href="/web/20230328100528/https://developer.android.com/stories/apps/google-duo" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /stories/apps/google-duo" track-type="bookNav" track-name="click" track-metadata-eventdetail="/stories/apps/google-duo"><span class="devsite-nav-text" tooltip>Google Duo</span></a></li><li class="devsite-nav-item"><a href="/web/20230328100528/https://developer.android.com/stories/apps/google-photos" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /stories/apps/google-photos" track-type="bookNav" track-name="click" track-metadata-eventdetail="/stories/apps/google-photos"><span class="devsite-nav-text" tooltip>Google Photos</span></a></li><li class="devsite-nav-item"><a href="/web/20230328100528/https://developer.android.com/stories/apps/reflectly" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /stories/apps/reflectly" track-type="bookNav" track-name="click" track-metadata-eventdetail="/stories/apps/reflectly"><span class="devsite-nav-text" tooltip>Reflectly</span></a></li><li class="devsite-nav-item devsite-nav-external"><a href="https://web.archive.org/web/20230328100528/https://play.google.com/console/about/redbus-casestudy/" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: https://play.google.com/console/about/redbus-casestudy/" track-type="bookNav" track-name="click" track-metadata-eventdetail="https://play.google.com/console/about/redbus-casestudy/"><span class="devsite-nav-text" tooltip>redBus</span><span class="devsite-nav-icon material-icons" data-icon="external" data-title="External" aria-hidden="true"></span></a></li><li class="devsite-nav-item"><a href="/web/20230328100528/https://developer.android.com/stories/apps/tamedia" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /stories/apps/tamedia" track-type="bookNav" track-name="click" track-metadata-eventdetail="/stories/apps/tamedia"><span class="devsite-nav-text" tooltip>Tamedia</span></a></li><li class="devsite-nav-item"><a href="/web/20230328100528/https://developer.android.com/stories/apps/roblox" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /stories/apps/roblox" track-type="bookNav" track-name="click" track-metadata-eventdetail="/stories/apps/roblox"><span class="devsite-nav-text" tooltip>Roblox</span></a></li><li class="devsite-nav-item"><a href="/web/20230328100528/https://developer.android.com/stories/apps/infinite-painter" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /stories/apps/infinite-painter" track-type="bookNav" track-name="click" track-metadata-eventdetail="/stories/apps/infinite-painter"><span class="devsite-nav-text" tooltip>Infinite painter</span></a></li><li class="devsite-nav-item"><a href="/web/20230328100528/https://developer.android.com/stories/apps/squid" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /stories/apps/squid" track-type="bookNav" track-name="click" track-metadata-eventdetail="/stories/apps/squid"><span class="devsite-nav-text" tooltip>Squid</span></a></li><li class="devsite-nav-item"><a href="/web/20230328100528/https://developer.android.com/stories/apps/evernote" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /stories/apps/evernote" track-type="bookNav" track-name="click" track-metadata-eventdetail="/stories/apps/evernote"><span class="devsite-nav-text" tooltip>Evernote</span></a></li><li class="devsite-nav-item"><a href="/web/20230328100528/https://developer.android.com/stories/apps/beautyplus" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /stories/apps/beautyplus" track-type="bookNav" track-name="click" track-metadata-eventdetail="/stories/apps/beautyplus"><span class="devsite-nav-text" tooltip>BeautyPlus</span></a></li><li class="devsite-nav-item"><a href="/web/20230328100528/https://developer.android.com/stories/apps/tinder" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /stories/apps/tinder" track-type="bookNav" track-name="click" track-metadata-eventdetail="/stories/apps/tinder"><span class="devsite-nav-text" tooltip>Tinder</span></a></li><li class="devsite-nav-item"><a href="/web/20230328100528/https://developer.android.com/stories/apps/zillow" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /stories/apps/zillow" track-type="bookNav" track-name="click" track-metadata-eventdetail="/stories/apps/zillow"><span class="devsite-nav-text" tooltip>Zillow</span></a></li><li class="devsite-nav-item"><a href="/web/20230328100528/https://developer.android.com/stories/apps/iheartradio" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /stories/apps/iheartradio" track-type="bookNav" track-name="click" track-metadata-eventdetail="/stories/apps/iheartradio"><span class="devsite-nav-text" tooltip>iHeartRadio</span></a></li><li class="devsite-nav-item"><a href="/web/20230328100528/https://developer.android.com/stories/apps/hike" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /stories/apps/hike" track-type="bookNav" track-name="click" track-metadata-eventdetail="/stories/apps/hike"><span class="devsite-nav-text" tooltip>Hike</span></a></li><li class="devsite-nav-item"><a href="/web/20230328100528/https://developer.android.com/stories/apps/spiegel-online" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /stories/apps/spiegel-online" track-type="bookNav" track-name="click" track-metadata-eventdetail="/stories/apps/spiegel-online"><span class="devsite-nav-text" tooltip>Spiegel Online</span></a></li><li class="devsite-nav-item"><a href="/web/20230328100528/https://developer.android.com/stories/apps/condenast-shopping" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /stories/apps/condenast-shopping" track-type="bookNav" track-name="click" track-metadata-eventdetail="/stories/apps/condenast-shopping"><span class="devsite-nav-text" tooltip>Glamour.de</span></a></li><li class="devsite-nav-item devsite-nav-external"><a href="https://web.archive.org/web/20230328100528/https://play.google.com/console/about/noom-casestudy/" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: https://play.google.com/console/about/noom-casestudy/" track-type="bookNav" track-name="click" track-metadata-eventdetail="https://play.google.com/console/about/noom-casestudy/"><span class="devsite-nav-text" tooltip>Noom</span><span class="devsite-nav-icon material-icons" data-icon="external" data-title="External" aria-hidden="true"></span></a></li><li class="devsite-nav-item"><a href="/web/20230328100528/https://developer.android.com/stories/apps/el-mundo" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /stories/apps/el-mundo" track-type="bookNav" track-name="click" track-metadata-eventdetail="/stories/apps/el-mundo"><span class="devsite-nav-text" tooltip>El Mundo</span></a></li><li class="devsite-nav-item devsite-nav-external"><a href="https://web.archive.org/web/20230328100528/https://play.google.com/console/about/sayhi-casestudy/" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: https://play.google.com/console/about/sayhi-casestudy/" track-type="bookNav" track-name="click" track-metadata-eventdetail="https://play.google.com/console/about/sayhi-casestudy/"><span class="devsite-nav-text" tooltip>SayHi Chat</span><span class="devsite-nav-icon material-icons" data-icon="external" data-title="External" aria-hidden="true"></span></a></li><li class="devsite-nav-item devsite-nav-external"><a href="https://web.archive.org/web/20230328100528/https://play.google.com/console/about/cornershop-casestudy/" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: https://play.google.com/console/about/cornershop-casestudy/" track-type="bookNav" track-name="click" track-metadata-eventdetail="https://play.google.com/console/about/cornershop-casestudy/"><span class="devsite-nav-text" tooltip>Cornershop</span><span class="devsite-nav-icon material-icons" data-icon="external" data-title="External" aria-hidden="true"></span></a></li><li class="devsite-nav-item devsite-nav-external"><a href="https://web.archive.org/web/20230328100528/https://play.google.com/console/about/twitter-casestudy/" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: https://play.google.com/console/about/twitter-casestudy/" track-type="bookNav" track-name="click" track-metadata-eventdetail="https://play.google.com/console/about/twitter-casestudy/"><span class="devsite-nav-text" tooltip>Twitter - App Bundle</span><span class="devsite-nav-icon material-icons" data-icon="external" data-title="External" aria-hidden="true"></span></a></li><li class="devsite-nav-item"><a href="/web/20230328100528/https://developer.android.com/stories/apps/twitter-compose" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /stories/apps/twitter-compose" track-type="bookNav" track-name="click" track-metadata-eventdetail="/stories/apps/twitter-compose"><span class="devsite-nav-text" tooltip>Twitter - Compose</span></a></li><li class="devsite-nav-item"><a href="/web/20230328100528/https://developer.android.com/stories/apps/twitter-kotlin" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /stories/apps/twitter-kotlin" track-type="bookNav" track-name="click" track-metadata-eventdetail="/stories/apps/twitter-kotlin"><span class="devsite-nav-text" tooltip>Twitter - Kotlin</span></a></li><li class="devsite-nav-item"><a href="/web/20230328100528/https://developer.android.com/stories/apps/monzo-camerax" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /stories/apps/monzo-camerax" track-type="bookNav" track-name="click" track-metadata-eventdetail="/stories/apps/monzo-camerax"><span class="devsite-nav-text" tooltip>Monzo - CameraX</span></a></li><li class="devsite-nav-item"><a href="/web/20230328100528/https://developer.android.com/stories/apps/monzo-compose" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /stories/apps/monzo-compose" track-type="bookNav" track-name="click" track-metadata-eventdetail="/stories/apps/monzo-compose"><span class="devsite-nav-text" tooltip>Monzo - Compose</span></a></li><li class="devsite-nav-item devsite-nav-external"><a href="https://web.archive.org/web/20230328100528/https://play.google.com/console/about/adobe-casestudy/" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: https://play.google.com/console/about/adobe-casestudy/" track-type="bookNav" track-name="click" track-metadata-eventdetail="https://play.google.com/console/about/adobe-casestudy/"><span class="devsite-nav-text" tooltip>Adobe</span><span class="devsite-nav-icon material-icons" data-icon="external" data-title="External" aria-hidden="true"></span></a></li><li class="devsite-nav-item"><a href="/web/20230328100528/https://developer.android.com/stories/apps/truecaller" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /stories/apps/truecaller" track-type="bookNav" track-name="click" track-metadata-eventdetail="/stories/apps/truecaller"><span class="devsite-nav-text" tooltip>Truecaller</span></a></li><li class="devsite-nav-item devsite-nav-external"><a href="https://web.archive.org/web/20230328100528/https://play.google.com/console/about/tokopedia-casestudy/" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: https://play.google.com/console/about/tokopedia-casestudy/" track-type="bookNav" track-name="click" track-metadata-eventdetail="https://play.google.com/console/about/tokopedia-casestudy/"><span class="devsite-nav-text" tooltip>Tokopedia</span><span class="devsite-nav-icon material-icons" data-icon="external" data-title="External" aria-hidden="true"></span></a></li><li class="devsite-nav-item"><a href="/web/20230328100528/https://developer.android.com/stories/apps/alarmy" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /stories/apps/alarmy" track-type="bookNav" track-name="click" track-metadata-eventdetail="/stories/apps/alarmy"><span class="devsite-nav-text" tooltip>Alarmy</span></a></li><li class="devsite-nav-item"><a href="/web/20230328100528/https://developer.android.com/stories/apps/smartnews" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /stories/apps/smartnews" track-type="bookNav" track-name="click" track-metadata-eventdetail="/stories/apps/smartnews"><span class="devsite-nav-text" tooltip>SmartNews</span></a></li><li class="devsite-nav-item devsite-nav-external"><a href="https://web.archive.org/web/20230328100528/https://play.google.com/console/about/playkids-casestudy/" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: https://play.google.com/console/about/playkids-casestudy/" track-type="bookNav" track-name="click" track-metadata-eventdetail="https://play.google.com/console/about/playkids-casestudy/"><span class="devsite-nav-text" tooltip>PlayKids</span><span class="devsite-nav-icon material-icons" data-icon="external" data-title="External" aria-hidden="true"></span></a></li><li class="devsite-nav-item"><a href="/web/20230328100528/https://developer.android.com/stories/apps/headspace" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /stories/apps/headspace" track-type="bookNav" track-name="click" track-metadata-eventdetail="/stories/apps/headspace"><span class="devsite-nav-text" tooltip>Headspace</span></a></li><li class="devsite-nav-item"><a href="/web/20230328100528/https://developer.android.com/stories/apps/headspace-excellence" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /stories/apps/headspace-excellence" track-type="bookNav" track-name="click" track-metadata-eventdetail="/stories/apps/headspace-excellence"><span class="devsite-nav-text" tooltip>Headspace App Excellence</span></a></li><li class="devsite-nav-item"><a href="/web/20230328100528/https://developer.android.com/stories/apps/mercari" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /stories/apps/mercari" track-type="bookNav" track-name="click" track-metadata-eventdetail="/stories/apps/mercari"><span class="devsite-nav-text" tooltip>Mercari - Compose</span></a></li><li class="devsite-nav-item"><a href="/web/20230328100528/https://developer.android.com/stories/apps/microsoft" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /stories/apps/microsoft" track-type="bookNav" track-name="click" track-metadata-eventdetail="/stories/apps/microsoft"><span class="devsite-nav-text" tooltip>Microsoft</span></a></li><li class="devsite-nav-item"><a href="/web/20230328100528/https://developer.android.com/stories/apps/microsoft-camerax" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /stories/apps/microsoft-camerax" track-type="bookNav" track-name="click" track-metadata-eventdetail="/stories/apps/microsoft-camerax"><span class="devsite-nav-text" tooltip>Microsoft - CameraX</span></a></li><li class="devsite-nav-item"><a href="/web/20230328100528/https://developer.android.com/stories/apps/zomato" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /stories/apps/zomato" track-type="bookNav" track-name="click" track-metadata-eventdetail="/stories/apps/zomato"><span class="devsite-nav-text" tooltip>Zomato</span></a></li><li class="devsite-nav-item"><a href="/web/20230328100528/https://developer.android.com/stories/apps/josh" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /stories/apps/josh" track-type="bookNav" track-name="click" track-metadata-eventdetail="/stories/apps/josh"><span class="devsite-nav-text" tooltip>Josh</span></a></li><li class="devsite-nav-item"><a href="/web/20230328100528/https://developer.android.com/stories/apps/lyft" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /stories/apps/lyft" track-type="bookNav" track-name="click" track-metadata-eventdetail="/stories/apps/lyft"><span class="devsite-nav-text" tooltip>Lyft</span></a></li><li class="devsite-nav-item"><a href="/web/20230328100528/https://developer.android.com/stories/apps/okcredit" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /stories/apps/okcredit" track-type="bookNav" track-name="click" track-metadata-eventdetail="/stories/apps/okcredit"><span class="devsite-nav-text" tooltip>OkCredit</span></a></li><li class="devsite-nav-item"><a href="/web/20230328100528/https://developer.android.com/stories/apps/swiggy" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /stories/apps/swiggy" track-type="bookNav" track-name="click" track-metadata-eventdetail="/stories/apps/swiggy"><span class="devsite-nav-text" tooltip>Swiggy</span></a></li><li class="devsite-nav-item"><a href="/web/20230328100528/https://developer.android.com/stories/apps/myjio" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /stories/apps/myjio" track-type="bookNav" track-name="click" track-metadata-eventdetail="/stories/apps/myjio"><span class="devsite-nav-text" tooltip>MyJio</span></a></li><li class="devsite-nav-item"><a href="/web/20230328100528/https://developer.android.com/stories/apps/jiosaavn" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /stories/apps/jiosaavn" track-type="bookNav" track-name="click" track-metadata-eventdetail="/stories/apps/jiosaavn"><span class="devsite-nav-text" tooltip>JioSaavn</span></a></li><li class="devsite-nav-item"><a href="/web/20230328100528/https://developer.android.com/stories/apps/tiktok" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /stories/apps/tiktok" track-type="bookNav" track-name="click" track-metadata-eventdetail="/stories/apps/tiktok"><span class="devsite-nav-text" tooltip>TikTok</span></a></li><li class="devsite-nav-item"><a href="/web/20230328100528/https://developer.android.com/stories/apps/futu" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /stories/apps/futu" track-type="bookNav" track-name="click" track-metadata-eventdetail="/stories/apps/futu"><span class="devsite-nav-text" tooltip>Futu</span></a></li><li class="devsite-nav-item"><a href="/web/20230328100528/https://developer.android.com/stories/apps/sharechat" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /stories/apps/sharechat" track-type="bookNav" track-name="click" track-metadata-eventdetail="/stories/apps/sharechat"><span class="devsite-nav-text" tooltip>ShareChat</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable devsite-nav-accordion"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Games</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20230328100528/https://developer.android.com/stories/games/devsisters" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /stories/games/devsisters" track-type="bookNav" track-name="click" track-metadata-eventdetail="/stories/games/devsisters"><span class="devsite-nav-text" tooltip>Devsisters</span></a></li><li class="devsite-nav-item"><a href="/web/20230328100528/https://developer.android.com/stories/games/new-state-mobile" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /stories/games/new-state-mobile" track-type="bookNav" track-name="click" track-metadata-eventdetail="/stories/games/new-state-mobile"><span class="devsite-nav-text" tooltip>New State Mobile</span></a></li><li class="devsite-nav-item"><a href="/web/20230328100528/https://developer.android.com/stories/games/spokko" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /stories/games/spokko" track-type="bookNav" track-name="click" track-metadata-eventdetail="/stories/games/spokko"><span class="devsite-nav-text" tooltip>Spokko</span></a></li><li class="devsite-nav-item"><a href="/web/20230328100528/https://developer.android.com/stories/games/cat-daddy" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /stories/games/cat-daddy" track-type="bookNav" track-name="click" track-metadata-eventdetail="/stories/games/cat-daddy"><span class="devsite-nav-text" tooltip>2K/Cat Daddy - Play Asset Delivery</span></a></li><li class="devsite-nav-item"><a href="/web/20230328100528/https://developer.android.com/stories/games/cat-daddy-agdk" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /stories/games/cat-daddy-agdk" track-type="bookNav" track-name="click" track-metadata-eventdetail="/stories/games/cat-daddy-agdk"><span class="devsite-nav-text" tooltip>2K/Cat Daddy - AGDK</span></a></li><li class="devsite-nav-item"><a href="/web/20230328100528/https://developer.android.com/stories/games/ea-agde" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /stories/games/ea-agde" track-type="bookNav" track-name="click" track-metadata-eventdetail="/stories/games/ea-agde"><span class="devsite-nav-text" tooltip>Electronic Arts</span></a></li><li class="devsite-nav-item"><a href="/web/20230328100528/https://developer.android.com/stories/games/epic-agde" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /stories/games/epic-agde" track-type="bookNav" track-name="click" track-metadata-eventdetail="/stories/games/epic-agde"><span class="devsite-nav-text" tooltip>Epic Games</span></a></li><li class="devsite-nav-item"><a href="/web/20230328100528/https://developer.android.com/stories/games/cdpr" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /stories/games/cdpr" track-type="bookNav" track-name="click" track-metadata-eventdetail="/stories/games/cdpr"><span class="devsite-nav-text" tooltip>CDPR</span></a></li><li class="devsite-nav-item"><a href="/web/20230328100528/https://developer.android.com/stories/games/rv-appstudios-pad" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /stories/games/rv-appstudios-pad" track-type="bookNav" track-name="click" track-metadata-eventdetail="/stories/games/rv-appstudios-pad"><span class="devsite-nav-text" tooltip>RV AppStudios</span></a></li><li class="devsite-nav-item"><a href="/web/20230328100528/https://developer.android.com/stories/games/gameloft-pad" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /stories/games/gameloft-pad" track-type="bookNav" track-name="click" track-metadata-eventdetail="/stories/games/gameloft-pad"><span class="devsite-nav-text" tooltip>Gameloft - Play Asset Delivery</span></a></li><li class="devsite-nav-item"><a href="/web/20230328100528/https://developer.android.com/stories/games/war-robots" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /stories/games/war-robots" track-type="bookNav" track-name="click" track-metadata-eventdetail="/stories/games/war-robots"><span class="devsite-nav-text" tooltip>War Robots</span></a></li><li class="devsite-nav-item"><a href="/web/20230328100528/https://developer.android.com/stories/games/gameloft" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /stories/games/gameloft" track-type="bookNav" track-name="click" track-metadata-eventdetail="/stories/games/gameloft"><span class="devsite-nav-text" tooltip>Gameloft - ChromeOS</span></a></li><li class="devsite-nav-item"><a href="/web/20230328100528/https://developer.android.com/stories/games/gameloft-gamemode" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /stories/games/gameloft-gamemode" track-type="bookNav" track-name="click" track-metadata-eventdetail="/stories/games/gameloft-gamemode"><span class="devsite-nav-text" tooltip>Gameloft - Game Mode API</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable devsite-nav-accordion"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Instant apps</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20230328100528/https://developer.android.com/stories/instant-apps/marvel-strike-force" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /stories/instant-apps/marvel-strike-force" track-type="bookNav" track-name="click" track-metadata-eventdetail="/stories/instant-apps/marvel-strike-force"><span class="devsite-nav-text" tooltip>Marvel Strike Force</span></a></li><li class="devsite-nav-item"><a href="/web/20230328100528/https://developer.android.com/stories/instant-apps/evino" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /stories/instant-apps/evino" track-type="bookNav" track-name="click" track-metadata-eventdetail="/stories/instant-apps/evino"><span class="devsite-nav-text" tooltip>Evino</span></a></li><li class="devsite-nav-item"><a href="/web/20230328100528/https://developer.android.com/stories/instant-apps/galaxy-attack" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /stories/instant-apps/galaxy-attack" track-type="bookNav" track-name="click" track-metadata-eventdetail="/stories/instant-apps/galaxy-attack"><span class="devsite-nav-text" tooltip>Galaxy Attack</span></a></li><li class="devsite-nav-item"><a href="/web/20230328100528/https://developer.android.com/stories/instant-apps/ultimate-guitar" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /stories/instant-apps/ultimate-guitar" track-type="bookNav" track-name="click" track-metadata-eventdetail="/stories/instant-apps/ultimate-guitar"><span class="devsite-nav-text" tooltip>Ultimate Guitar</span></a></li><li class="devsite-nav-item"><a href="/web/20230328100528/https://developer.android.com/stories/instant-apps/viki" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /stories/instant-apps/viki" track-type="bookNav" track-name="click" track-metadata-eventdetail="/stories/instant-apps/viki"><span class="devsite-nav-text" tooltip>Viki</span></a></li><li class="devsite-nav-item"><a href="/web/20230328100528/https://developer.android.com/stories/instant-apps/king" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /stories/instant-apps/king" track-type="bookNav" track-name="click" track-metadata-eventdetail="/stories/instant-apps/king"><span class="devsite-nav-text" tooltip>King</span></a></li><li class="devsite-nav-item"><a href="/web/20230328100528/https://developer.android.com/stories/instant-apps/panda-pop" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /stories/instant-apps/panda-pop" track-type="bookNav" track-name="click" track-metadata-eventdetail="/stories/instant-apps/panda-pop"><span class="devsite-nav-text" tooltip>Jam City</span></a></li><li class="devsite-nav-item"><a href="/web/20230328100528/https://developer.android.com/stories/instant-apps/vimeo" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /stories/instant-apps/vimeo" track-type="bookNav" track-name="click" track-metadata-eventdetail="/stories/instant-apps/vimeo"><span class="devsite-nav-text" tooltip>Vimeo</span></a></li></ul></div></li> </ul> </div> </div> </nav> </devsite-book-nav> <section id="gc-wrapper"> <main role="main" class="devsite-main-content" has-book-nav has-sidebar> <div class="devsite-sidebar"> <div class="devsite-sidebar-content"> <devsite-toc class="devsite-nav" role="navigation" aria-label="On this page" depth="2" scrollbars></devsite-toc> <devsite-recommendations-sidebar class="nocontent devsite-nav"> </devsite-recommendations-sidebar> </div> </div> <devsite-content> <article class="devsite-article"> <div class="devsite-article-meta nocontent" role="navigation"> <ul class="devsite-breadcrumb-list" aria-label="Breadcrumb"> <li class="devsite-breadcrumb-item "> <a href="https://web.archive.org/web/20230328100528/https://developer.android.com/" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Breadcrumbs" data-value="1" track-type="globalNav" track-name="breadcrumb" track-metadata-position="1" track-metadata-eventdetail=""> Home </a> </li> <li class="devsite-breadcrumb-item "> <div class="devsite-breadcrumb-guillemet material-icons" aria-hidden="true"></div> <a href="https://web.archive.org/web/20230328100528/https://developer.android.com/stories" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Breadcrumbs" data-value="2" track-type="globalNav" track-name="breadcrumb" track-metadata-position="2" track-metadata-eventdetail="Android Developers"> Android Developers </a> </li> </ul> <devsite-thumb-rating position="header"> </devsite-thumb-rating> </div> <h1 class="devsite-page-title">Monzo reduced over 9,000 lines of code and improved registration dropout by 5x with CameraX</h1><devsite-feature-tooltip ack-key="AckCollectionsBookmarkTooltipDismiss" analytics-category="Site-Wide Custom Events" analytics-action-show="Callout Profile displayed" analytics-action-close="Callout Profile dismissed" analytics-label="Create Collection Callout" class="devsite-page-bookmark-tooltip" dismiss-button="true" id="devsite-collections-dropdown" dismiss-button-text="Dismiss" close-button-text="Got it"> <devsite-bookmark></devsite-bookmark> <span slot="popout-heading"> Stay organized with collections </span> <span slot="popout-contents"> Save and categorize content based on your preferences. </span> </devsite-feature-tooltip> <devsite-toc class="devsite-nav" depth="2" devsite-toc-embedded> </devsite-toc> <devsite-recommendations-dropdown class="nocontent"></devsite-recommendations-dropdown> <div class="devsite-article-body clearfix "> <p>Monzo is a banking service and app offering digital and mobile-only financial services. Their mission is to make money work for everyone. To sign up new customers, the Monzo app captures images of an identification document (such as passport, driving license, or ID card) and takes a selfie video to prove that the identification documents are for the applicant.</p> <h2 id="what_they_did" data-text="What they did">What they did</h2> <p>Early versions of the <a href="https://web.archive.org/web/20230328100528/https://play.google.com/store/apps/details?id=co.uk.getmondo" class="external">Monzo</a> app used camera2 APIs. Random crashes and odd behaviors on some devices led to 25% of potential customers not proceeding beyond the identification capture and selfie video steps.</p> <p>To address these challenges, Monzo turned to CameraX, a Jetpack support library designed to make camera app development easier, to implement their image and video capture requirements. Using <a href="/web/20230328100528/https://developer.android.com/reference/androidx/camera/view/CameraController"><code translate="no" dir="ltr">CameraController</code></a>, Monzo implemented the identification document image capture using the <a href="/web/20230328100528/https://developer.android.com/reference/androidx/camera/view/CameraController#takePicture(androidx.camera.core.ImageCapture.OutputFileOptions,%20java.util.concurrent.Executor,%20androidx.camera.core.ImageCapture.OnImageSavedCallback)"><code translate="no" dir="ltr">takePicture()</code></a> method. For the selfie video, they used the <a href="/web/20230328100528/https://developer.android.com/reference/androidx/camera/view/CameraController#startRecording(androidx.camera.view.video.OutputFileOptions,%20java.util.concurrent.Executor,%20androidx.camera.view.video.OnVideoSavedCallback)"><code translate="no" dir="ltr">startRecording()</code></a> and <a href="/web/20230328100528/https://developer.android.com/reference/androidx/camera/view/CameraController#stopRecording()"><code translate="no" dir="ltr">stopRecording()</code></a> methods. They wanted to make design changes to the sign-up flow and wanted a more straightforward camera library that would give them more design flexibility.</p> <h2 id="results" data-text="Results">Results</h2> <p>Introducing CameraX enabled Monzo to simplify their code, making it more maintainable, and has helped simplify development. The move to CameraX has greatly reduced crashes and they are no longer seeing random activations of the camera flash. All of this has contributed to a reduction in the drop-off rate in the sign-up flow and has improved user feedback.</p> <p>The simplification in code resulting from implementing CameraX reduced almost 9,000 lines of code, including 6,000 lines of UI code. In addition to making the code easier to maintain and simplifying development, CameraX also led to better code coverage in unit tests.</p> <p>Importantly, the impact on the sign-up flow was significant. With the introduction of CameraX and the simplified flow design changes, the dropout rate from identification image capture and selfie video recording dropped from 25% to around 5%.</p> <p>“For us, CameraX was all about stability and having an easy integration experience for our developers. It was the perfect library for us—we just wanted a simple way to take pictures and videos. CameraX has given us that, plus our code is simpler and the user experience better.” <em>Anastasios Morfopoulos—Android developer, Monzo</em></p> <h2 id="get_started" data-text="Get started">Get started</h2> <p>Check out the <a href="/web/20230328100528/https://developer.android.com/training/camerax">CameraX documentation</a> to learn how to introduce more robust and simplified image capture code to your app or game.</p> <devsite-hats-survey class="nocontent" hats-id="onAFgYxTD0kxBYCLVTd0Z41p75CM" listnr-id="5207477"></devsite-hats-survey> </div> <devsite-recommendations display="in-page" hidden yield> </devsite-recommendations> <devsite-thumb-rating position="footer"> </devsite-thumb-rating> <devsite-recommendations id="recommendations-link" yield></devsite-recommendations> </article> <devsite-content-footer class="nocontent"> <p>Content and code samples on this page are subject to the licenses described in the <a href="/web/20230328100528/https://developer.android.com/license">Content License</a>. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.</p> <p>Last updated 2022-01-25 UTC.</p> </devsite-content-footer> <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"> <nav class="devsite-footer-promos nocontent" aria-label="Promotions"> <ul class="devsite-footer-promos-list"> <li class="devsite-footer-promo"> <a href="//web.archive.org/web/20230328100528/https://twitter.com/AndroidDev" class="devsite-footer-promo-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Twitter Promo"> <img class="devsite-footer-promo-icon" src="/web/20230328100528im_/https://developer.android.com/_static/android/images/logo-twitter.svg" loading="lazy" alt="Twitter"> Twitter </a> <div class="devsite-footer-promo-description">Follow @AndroidDev on Twitter</div> </li> <li class="devsite-footer-promo"> <a href="//web.archive.org/web/20230328100528/https://www.youtube.com/user/androiddevelopers" class="devsite-footer-promo-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer YouTube Promo"> <img class="devsite-footer-promo-icon" src="//web.archive.org/web/20230328100528im_/https://www.gstatic.com/images/icons/material/product/2x/youtube_48dp.png" loading="lazy" alt="YouTube"> YouTube </a> <div class="devsite-footer-promo-description">Check out Android Developers on YouTube</div> </li> <li class="devsite-footer-promo"> <a href="//web.archive.org/web/20230328100528/https://www.linkedin.com/showcase/androiddev" class="devsite-footer-promo-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer LinkedIn Promo"> <img class="devsite-footer-promo-icon" src="/web/20230328100528im_/https://developer.android.com/_static/android/images/logo-linkedin.svg" loading="lazy" alt="LinkedIn"> LinkedIn </a> <div class="devsite-footer-promo-description">Connect with the Android Developers community on LinkedIn</div> </li> </ul> </nav> </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">More Android</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="//web.archive.org/web/20230328100528/https://www.android.com/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)"> Android </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//web.archive.org/web/20230328100528/https://www.android.com/enterprise/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)"> Android for Enterprise </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//web.archive.org/web/20230328100528/https://www.android.com/security-center/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 3)"> Security </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//web.archive.org/web/20230328100528/https://source.android.com/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 4)"> Source </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/web/20230328100528/https://developer.android.com/news" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 5)"> News </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//web.archive.org/web/20230328100528/https://android-developers.googleblog.com/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 6)"> Blog </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/web/20230328100528/https://developer.android.com/podcasts" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 7)"> Podcasts </a> </li> </ul> </li> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Discover</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="/web/20230328100528/https://developer.android.com/games" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)"> Gaming </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/web/20230328100528/https://developer.android.com/ml" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)"> Machine Learning </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/web/20230328100528/https://developer.android.com/privacy" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 3)"> Privacy </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/web/20230328100528/https://developer.android.com/training/connectivity/5g" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 4)"> 5G </a> </li> </ul> </li> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Android Devices</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="/web/20230328100528/https://developer.android.com/large-screens" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)"> Large screens </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/web/20230328100528/https://developer.android.com/wear" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)"> Wear OS </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/web/20230328100528/https://developer.android.com/tv" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 3)"> Android TV </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/web/20230328100528/https://developer.android.com/cars" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 4)"> Android for cars </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/web/20230328100528/https://developer.android.com/things" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 5)"> Android Things </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/web/20230328100528/https://developer.android.com/chrome-os" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 6)"> Chrome OS devices </a> </li> </ul> </li> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Releases</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="/web/20230328100528/https://developer.android.com/about/versions/13" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)"> Android 13 </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/web/20230328100528/https://developer.android.com/about/versions/12" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)"> Android 12 </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/web/20230328100528/https://developer.android.com/about/versions/11" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 3)"> Android 11 </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/web/20230328100528/https://developer.android.com/about/versions/10" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 4)"> Android 10 </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/web/20230328100528/https://developer.android.com/about/versions/pie" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 5)"> Pie </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/web/20230328100528/https://developer.android.com/about/versions/oreo" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 6)"> Oreo </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/web/20230328100528/https://developer.android.com/about/versions/nougat" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 7)"> Nougat </a> </li> </ul> </li> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Documentation and Downloads</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="/web/20230328100528/https://developer.android.com/studio/intro" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)"> Android Studio guide </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/web/20230328100528/https://developer.android.com/guide" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)"> Developers guides </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/web/20230328100528/https://developer.android.com/reference" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 3)"> API reference </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/web/20230328100528/https://developer.android.com/studio" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 4)"> Download Studio </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/web/20230328100528/https://developer.android.com/ndk" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 5)"> Android NDK </a> </li> </ul> </li> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Support</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="//web.archive.org/web/20230328100528/https://issuetracker.google.com/issues/new?component=190923&template=841312" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)"> Report platform bug </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//web.archive.org/web/20230328100528/https://issuetracker.google.com/issues/new?component=192697" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)"> Report documentation bug </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//web.archive.org/web/20230328100528/https://support.google.com/googleplay/android-developer" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 3)"> Google Play support </a> </li> <li class="devsite-footer-linkbox-item"> <a href="https://web.archive.org/web/20230328100528/https://g.co/userresearch/androiddeveloperfooter" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 4)"> Join research studies </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="https://web.archive.org/web/20230328100528/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="https://web.archive.org/web/20230328100528im_/https://www.gstatic.com/devrel-devsite/prod/ve286fa3f99aa90bc7ef7460968844e5bb93251ce750a58802f281151c87037d6/android/images/lockup-developers-dark-theme.svg" media="(prefers-color-scheme: none)" class="devsite-dark-theme" loading="lazy" alt="Google Developers"> <img class="devsite-footer-sites-logo" src="https://web.archive.org/web/20230328100528im_/https://www.gstatic.com/devrel-devsite/prod/ve286fa3f99aa90bc7ef7460968844e5bb93251ce750a58802f281151c87037d6/android/images/lockup-developers.svg" loading="lazy" alt="Google Developers"> </picture> </a> <ul class="devsite-footer-sites-list"> <li class="devsite-footer-sites-item"> <a href="//web.archive.org/web/20230328100528/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/20230328100528/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/20230328100528/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/20230328100528/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.archive.org/web/20230328100528/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.archive.org/web/20230328100528/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 "> <a class="devsite-footer-utility-link gc-analytics-event" href="/web/20230328100528/https://developer.android.com/license" data-category="Site-Wide Custom Events" data-label="Footer License link"> License </a> </li> <li class="devsite-footer-utility-item "> <a class="devsite-footer-utility-link gc-analytics-event" href="/web/20230328100528/https://developer.android.com/distribute/marketing-tools/brand-guidelines" data-category="Site-Wide Custom Events" data-label="Footer Brand guidelines link"> Brand guidelines </a> </li> <li class="devsite-footer-utility-item devsite-footer-utility-button"> <span class="devsite-footer-utility-description">Get news and tips by email</span> <a class="devsite-footer-utility-link gc-analytics-event" href="/web/20230328100528/https://developer.android.com/updates" 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="es_419">Español – América Latina</a> </li> <li role="presentation"> <a role="menuitem" lang="pt_br">Português – Brasil</a> </li> <li role="presentation"> <a role="menuitem" lang="zh_cn">中文 – 简体</a> </li> <li role="presentation"> <a role="menuitem" lang="ja">日本語</a> </li> <li role="presentation"> <a role="menuitem" lang="ko">한국어</a> </li> </ul> </devsite-language-selector> </nav> </div> </devsite-footer-utility> <devsite-panel></devsite-panel> </section></section> <devsite-sitemask></devsite-sitemask> <devsite-snackbar> </devsite-snackbar> <devsite-tooltip></devsite-tooltip> <devsite-heading-link></devsite-heading-link> <devsite-analytics analytics-iframe> <script type="application/json" analytics>[{"dimensions": {"dimension3": false, "dimension6": "en", "dimension1": "Signed out", "dimension4": "Android Developers", "dimension11": false, "dimension5": "en"}, "gaid": "UA-5831155-1", "metrics": {"ratings_count": "metric2", "ratings_value": "metric1"}}]</script> <script type="application/json" tag-management gtm>{"ga4": [], "gtm": ["GTM-KMSWPCJ"], "parameters": {"internalUser": "False", "language": {"machineTranslated": "False", "requested": "en", "served": "en"}, "pageType": "article", "projectName": "Android Developers", "signedIn": "False", "tenant": "android", "recommendations": {"sourcePage": "", "sourceType": 0, "sourceRank": 0, "sourceIdenticalDescriptions": 0, "sourceTitleWords": 0, "sourceDescriptionWords": 0, "experiment": ""}, "experiment": {"ids": ""}}, "tags": ["GTM-KMSWPCJ"]}</script> </devsite-analytics> <devsite-badger></devsite-badger> <android-fully-clickable target=" .android-grouped-resources .devsite-landing-row-item, .android-illustrated-resources-index .devsite-landing-row-item, .android-illustrated-resources-primary .devsite-landing-row-item, .android-illustrated-resources-secondary .devsite-landing-row-item, .android-illustrated-resources-secondary-small .devsite-landing-row-item, .android-illustrated-resources-tertiary .devsite-landing-row-item, .android-illustrated-resources-tertiary-small .devsite-landing-row-item, .android-promo .devsite-landing-row-item, .android-quick-link, .android-samples .devsite-card-wrapper, .fully-clickable" watch=".android-samples, devsite-content"></android-fully-clickable> <script nonce="oAKM6Y648/vLcd7YN/dpS2rVps1hRD"> (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', 'https://web.archive.org/web/20230328100528/https://www.gstatic.com/devrel-devsite/prod/ve286fa3f99aa90bc7ef7460968844e5bb93251ce750a58802f281151c87037d6/android/js/app_loader.js', '[3,"en",null,"/js/devsite_app_module.js","https://web.archive.org/web/20230328100528/https://www.gstatic.com/devrel-devsite/prod/ve286fa3f99aa90bc7ef7460968844e5bb93251ce750a58802f281151c87037d6","https://web.archive.org/web/20230328100528/https://www.gstatic.com/devrel-devsite/prod/ve286fa3f99aa90bc7ef7460968844e5bb93251ce750a58802f281151c87037d6/android","https://web.archive.org/web/20230328100528/https://android-dot-devsite-v2-prod.appspot.com",null,null,["/_pwa/android/manifest.json","https://web.archive.org/web/20230328100528/https://www.gstatic.com/devrel-devsite/prod/ve286fa3f99aa90bc7ef7460968844e5bb93251ce750a58802f281151c87037d6/images/video-placeholder.svg","https://web.archive.org/web/20230328100528/https://www.gstatic.com/devrel-devsite/prod/ve286fa3f99aa90bc7ef7460968844e5bb93251ce750a58802f281151c87037d6/android/images/favicon.png","https://web.archive.org/web/20230328100528/https://www.gstatic.com/devrel-devsite/prod/ve286fa3f99aa90bc7ef7460968844e5bb93251ce750a58802f281151c87037d6/android/images/lockup.svg","https://web.archive.org/web/20230328100528/https://fonts.googleapis.com/css?family=Roboto:300,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","developer.android.com","AIzaSyAQk0fBONSGUqCNznf6Krs82Ap1-NV6J4o","AIzaSyCCxcqdrZ_7QMeLCRY20bh_SXdAYqy70KY",null,null,null,["Cloud__enable_cloud_shell_fte_user_flow","Search__enable_faceted_search","Search__enable_devsite_serp","Profiles__enable_developer_profiles_interests","MiscFeatureFlags__enable_tls_version_for_gaia_calls","Profiles__enable_developer_profiles_dashboard_recommendations","BookNav__enable_book_nav_filtering","Profiles__enable_profile_notifications_ui","Profiles__enable_page_saving","Badges__enable_hide_badges","Localization__enable_locale_redirects","Badges__enable_drag_and_drop_badges","Profiles__enable_developer_profiles_callout","Profiles__enable_public_developer_profiles","MiscFeatureFlags__devpanel_url","Search__enable_acl_suggestions","Experiments__enable_experiments","MiscFeatureFlags__emergency_css","Cloud__enable_cloudx_ping","Badges__enable_delete_badges","Search__enable_suggestions_from_borg","Experiments__reqs_query_experiments","Cloud__enable_cloud_dlp_service","Cloud__enable_cloudx_experiment_ids","Cloud__enable_cloud_facet_chat","Search__enable_page_map","Profiles__enable_profile_collections","Cloud__enable_cloud_shell","MiscFeatureFlags__enable_footprints_record_views","Significatio__enable_by_tenant","Significatio__enable_experiment_id_caching","Profiles__enable_profile_communities","Profiles__require_profile_eligibility_for_signin","BookNav__enable_collapsible_book_nav","SignIn__enable_auto_signin_oauth"]]') </script> <devsite-a11y-announce></devsite-a11y-announce> </body> </html><!-- FILE ARCHIVED ON 10:05:28 Mar 28, 2023 AND RETRIEVED FROM THE INTERNET ARCHIVE ON 00:31:08 Dec 03, 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.756 exclusion.robots: 0.041 exclusion.robots.policy: 0.027 esindex: 0.011 cdx.remote: 15.169 LoadShardBlock: 103.979 (3) PetaboxLoader3.datanode: 99.288 (4) load_resource: 115.704 PetaboxLoader3.resolve: 55.59 -->