CINXE.COM
Kotlin – Android Developers – Medium
<!DOCTYPE html><html xmlns:cc="http://creativecommons.org/ns#"><head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# medium-com: http://ogp.me/ns/fb/medium-com#"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=contain"><title>Kotlin – Android Developers – Medium</title><link rel="canonical" href="https://medium.com/androiddevelopers/tagged/kotlin"><link id="feedLink" rel="alternate" type="application/rss+xml" title="RSS" href="https://medium.com/feed/androiddevelopers/tagged/kotlin"><meta name="robots" content="index,follow"><meta name="title" content="Kotlin – Android Developers – Medium"><meta name="referrer" content="unsafe-url"><meta name="description" content="Read writing about Kotlin in Android Developers. Articles on modern tools and resources to help you build experiences that people love, faster and easier, across every Android device."><meta name="theme-color" content="#000000"><meta property="og:title" content="Kotlin – Android Developers – Medium"><meta property="twitter:title" content="Kotlin – Android Developers – Medium"><meta property="og:url" content="https://medium.com/androiddevelopers/tagged/kotlin"><meta property="fb:app_id" content="542599432471018"><meta property="og:description" content="Read writing about Kotlin in Android Developers. Articles on modern tools and resources to help you build experiences that people love, faster and easier, across every Android device."><meta name="twitter:description" content="Read writing about Kotlin in Android Developers. Articles on modern tools and resources to help you build experiences that people love, faster and easier, across every Android device."><meta name="twitter:image:src" content=""><meta property="og:type" content="medium-com:collection"><meta name="twitter:card" content="summary_large_image"><meta name="twitter:site" content="@Medium"><meta property="og:site_name" content="Medium"><meta name="twitter:app:name:iphone" content="Medium"><meta name="twitter:app:id:iphone" content="828256236"><meta name="twitter:app:url:iphone" content="medium://androiddevelopers/tagged/kotlin"><meta property="al:ios:app_name" content="Medium"><meta property="al:ios:app_store_id" content="828256236"><meta property="al:android:package" content="com.medium.reader"><meta property="al:android:app_name" content="Medium"><meta property="al:ios:url" content="medium://androiddevelopers/tagged/kotlin"><meta property="al:android:url" content="medium://androiddevelopers/tagged/kotlin"><meta property="al:web:url" content="https://medium.com/androiddevelopers/tagged/kotlin"><link rel="search" type="application/opensearchdescription+xml" title="Medium" href="/osd.xml" /><link rel="alternate" href="android-app://com.medium.reader/https/medium.com/androiddevelopers/tagged/kotlin" /><link rel="stylesheet" href="https://cdn-static-1.medium.com/_/fp/css/main-branding-base.W9J-2zkF03j8TkriAGn1Tg.12.css"><script>!function(n,e){var t,o,i,c=[],f={passive:!0,capture:!0},r=new Date,a="pointerup",u="pointercancel";function p(n,c){t||(t=c,o=n,i=new Date,w(e),s())}function s(){o>=0&&o<i-r&&(c.forEach(function(n){n(o,t)}),c=[])}function l(t){if(t.cancelable){var o=(t.timeStamp>1e12?new Date:performance.now())-t.timeStamp;"pointerdown"==t.type?function(t,o){function i(){p(t,o),r()}function c(){r()}function r(){e(a,i,f),e(u,c,f)}n(a,i,f),n(u,c,f)}(o,t):p(o,t)}}function w(n){["click","mousedown","keydown","touchstart","pointerdown"].forEach(function(e){n(e,l,f)})}w(n),self.perfMetrics=self.perfMetrics||{},self.perfMetrics.onFirstInputDelay=function(n){c.push(n),s()}}(addEventListener,removeEventListener);</script><script>document.domain = document.domain;</script><script>if (window.top !== window.self) window.location = 'about:blank';var OB_startTime = new Date().getTime(); var OB_loadErrors = []; function _onerror(e) { OB_loadErrors.push(e) }; if (document.addEventListener) document.addEventListener("error", _onerror, true); else if (document.attachEvent) document.attachEvent("onerror", _onerror); function _asyncScript(u) {var d = document, f = d.getElementsByTagName("script")[0], s = d.createElement("script"); s.type = "text/javascript"; s.async = true; s.src = u; f.parentNode.insertBefore(s, f);}function _asyncStyles(u) {var d = document, f = d.getElementsByTagName("script")[0], s = d.createElement("link"); s.rel = "stylesheet"; s.href = u; f.parentNode.insertBefore(s, f); return s}(new Image()).src = "/_/stat?event=pixel.load&origin=" + encodeURIComponent(location.origin);</script><script>window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date; ga("create", "G-7JY7T788PK", "auto", {"allowLinker": true, "legacyCookieDomain": window.location.hostname});ga("send", "pageview");</script><script async src="https://www.google-analytics.com/analytics.js"></script><script>(function () {var height = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight; var width = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth; document.write("<style>section.section-image--fullBleed.is-backgrounded {padding-top: " + Math.round(1.1 * height) + "px;}section.section-image--fullScreen.is-backgrounded, section.section-image--coverFade.is-backgrounded {min-height: " + height + "px; padding-top: " + Math.round(0.5 * height) + "px;}.u-height100vh {height: " + height + "px !important;}.u-height110vh {height: " + Math.round(1.1 * height) + "px !important;}.u-minHeight100vh {min-height: " + height + "px !important;}.u-maxHeight100vh {max-height: " + height + "px !important;}section.section-image--coverFade {height: " + height + "px;}.section-aspectRatioViewportPlaceholder, .section-aspectRatioViewportCropPlaceholder {max-height: " + height + "px;}.section-aspectRatioViewportBottomSpacer, .section-aspectRatioViewportBottomPlaceholder {max-height: " + Math.round(0.5 * height) + "px;}.zoomable:before {top: " + (-1 * height) + "px; left: " + (-1 * width) + "px; padding: " + height + "px " + width + "px;}</style>");})()</script><!--[if lt IE 9]><script charset="UTF-8" src="https://cdn-static-1.medium.com/_/fp/js/shiv.RI2ePTZ5gFmMgLzG5bEVAA.12.js"></script><![endif]--><link rel="icon" href="https://miro.medium.com/v2/5d8de952517e8160e40ef9841c781cdc14a5db313057fa3c3de41c6f5b494b19" class="js-favicon"><link rel="apple-touch-icon" sizes="152x152" href="https://cdn-images-1.medium.com/fit/c/304/304/1*4Tg6pPzer7cIarYaszIKaQ.png"><link rel="apple-touch-icon" sizes="120x120" href="https://cdn-images-1.medium.com/fit/c/240/240/1*4Tg6pPzer7cIarYaszIKaQ.png"><link rel="apple-touch-icon" sizes="76x76" href="https://cdn-images-1.medium.com/fit/c/152/152/1*4Tg6pPzer7cIarYaszIKaQ.png"><link rel="apple-touch-icon" sizes="60x60" href="https://cdn-images-1.medium.com/fit/c/120/120/1*4Tg6pPzer7cIarYaszIKaQ.png"><link rel="mask-icon" href="https://cdn-static-1.medium.com/_/fp/icons/monogram-mask.KPLCSFEZviQN0jQ7veN2RQ.12.svg" color="#171717"></head><body itemscope class=" browser-ie os-windows v-unbound v-glyph v-glyph--m2-unbound-source-serif-pro is-noJs"><script>document.body.className = document.body.className.replace(/(^|\s)is-noJs(\s|$)/, "$1is-js$2")</script><div class="site-main" id="container"><div class="butterBar butterBar--error"></div><div class="surface"><div id="prerendered" class="screenContent"><div class="metabar u-clearfix u-boxShadow4px12pxBlackLighter u-textColorTransparentWhiteDarker js-metabar"><div class="branch-journeys-top"></div><div class="js-metabarMiddle metabar-inner u-marginAuto u-maxWidth1032 u-flexCenter u-justifyContentSpaceBetween u-height65 u-xs-height56 u-paddingHorizontal20"><div class="metabar-block u-flex1 u-flexCenter"><div class="js-metabarLogoLeft"><a href="https://medium.com/" data-log-event="home" class="siteNav-logo u-fillBlack u-flex0 u-flexCenter u-paddingTop0"><span class="svgIcon svgIcon--wordmarkMedium svgIcon--120x26px u-flex"><svg class="svgIcon-use" width="120" height="26" ><path d="M29.57 1.404l.036-.008V1.12h-7.27l-6.75 15.979-6.75-15.98H1.003v.278l.035.008c1.327.302 2 .752 2 2.374v18.993c0 1.623-.676 2.073-2.003 2.374L1 25.153v.279h5.315v-.278l-.035-.008c-1.327-.302-2-.751-2-2.374V4.88l8.67 20.552h.492l8.924-21.125V23.24c-.114 1.282-.782 1.677-1.983 1.95l-.036.009v.275h9.259V25.2l-.036-.008c-1.203-.274-1.886-.67-2-1.95l-.006-19.464h.006c0-1.622.674-2.072 2-2.374zm4.23 12.582c.15-3.412 1.367-5.875 3.41-5.918.629.01 1.157.219 1.568.62.872.852 1.282 2.634 1.219 5.298h-6.198zm-.092.962h10.85v-.046c-.03-2.61-.78-4.64-2.228-6.033-1.25-1.204-3.103-1.867-5.048-1.867h-.043c-1.01 0-2.248.246-3.13.693a7.316 7.316 0 00-2.623 2.086c-1.185 1.479-1.903 3.477-2.078 5.724a13.717 13.717 0 00-.04.755c-.004.195-.005.39-.001.587.117 5.087 2.846 9.153 7.692 9.153 4.254 0 6.73-3.132 7.348-7.336l-.312-.11c-1.085 2.259-3.034 3.628-5.252 3.461-3.028-.228-5.347-3.32-5.137-7.066m23.122 6.893c-.356.85-1.099 1.319-2.094 1.319-.995 0-1.905-.689-2.552-1.939-.694-1.342-1.06-3.24-1.06-5.487 0-4.678 1.445-7.704 3.68-7.704.937 0 1.674.468 2.026 1.284v12.527zm7.198 3.335c-1.327-.316-2-.787-2-2.492V0l-8.062 2.392v.293l.05-.004c1.111-.09 1.866.064 2.304.472.343.32.51.809.51 1.498v3.11C56.033 7.25 55.088 7 53.94 7c-2.326 0-4.453.987-5.986 2.779-1.599 1.867-2.444 4.42-2.444 7.38 0 5.287 2.584 8.84 6.43 8.84 2.25 0 4.06-1.242 4.888-3.336v2.811h7.233v-.29l-.035-.008zM70.94 3.085c0-1.65-1.236-2.896-2.875-2.896-1.632 0-2.908 1.272-2.908 2.896 0 1.624 1.278 2.896 2.908 2.896 1.64 0 2.875-1.245 2.875-2.896zm1.903 22.092c-1.327-.316-2-.787-2-2.492h-.006V7.055l-7.234 2.092v.284l.043.004c1.566.14 1.994.683 1.994 2.525v13.515h7.24v-.29l-.037-.008zm18.536 0c-1.327-.316-2-.787-2-2.492V7.055L82.49 9.078v.285l.04.004c1.28.136 1.65.71 1.65 2.56v9.88c-.426.85-1.227 1.356-2.196 1.39-1.573 0-2.439-1.07-2.439-3.012V7.055l-7.234 2.092v.284l.044.004c1.565.14 1.994.683 1.994 2.525v8.362a9.443 9.443 0 00.15 1.741l.13.57C75.243 24.845 76.848 26 79.362 26c2.129 0 3.996-1.328 4.818-3.405v2.885h7.233v-.291l-.034-.012zm28.102.298v-.291l-.035-.009c-1.44-.334-2.001-.964-2.001-2.248V12.295C117.445 8.98 115.597 7 112.5 7c-2.257 0-4.16 1.314-4.893 3.36-.582-2.168-2.257-3.36-4.734-3.36-2.175 0-3.88 1.156-4.612 3.11V7.056l-7.233 2.006v.286l.043.004c1.547.138 1.994.697 1.994 2.492v13.631h6.75v-.29l-.037-.01c-1.148-.271-1.519-.767-1.519-2.04V10.95c.304-.715.917-1.562 2.127-1.562 1.504 0 2.266 1.05 2.266 3.116v12.972h6.751v-.29l-.035-.01c-1.149-.271-1.52-.767-1.52-2.04V12.294a7.107 7.107 0 00-.095-1.21c.322-.777.97-1.696 2.23-1.696 1.524 0 2.265 1.02 2.265 3.116v12.972h7.233z"/></svg></span><span class="u-textScreenReader">Homepage</span></a></div><div class="u-paddingLeft10 u-sm-show r-paddingRight10"><a href="https://rsci.app.link/?%24canonical_url=https%3A%2F%2Fmedium.com/androiddevelopers%3F~feature=LoMobileNavBar&~channel=ShowCollectionHome&~stage=m2">Open in app</a></div></div><div class="metabar-block u-flex0 u-flexCenter"><div class="u-flexCenter u-height65 u-xs-height56"><div class="buttonSet buttonSet--wide u-lineHeightInherit"><a class="button button--primary button--chromeless u-accentColor--buttonNormal is-inSiteNavBar u-xs-hide js-signInButton" href="https://medium.com/m/signin?redirect=https%3A%2F%2Fmedium.com%2Fandroiddevelopers%2Ftagged%2Fkotlin&source=--------------------------nav_reg&operation=login" data-action="sign-in-prompt" data-redirect="https://medium.com/androiddevelopers/tagged/kotlin" data-action-source="--------------------------nav_reg">Sign in</a><a class="button button--primary button--withChrome u-accentColor--buttonNormal is-inSiteNavBar js-signUpButton" href="https://medium.com/m/signin?redirect=https%3A%2F%2Fmedium.com%2Fandroiddevelopers%2Ftagged%2Fkotlin&source=--------------------------nav_reg&operation=register" data-action="sign-up-prompt" data-redirect="https://medium.com/androiddevelopers/tagged/kotlin" data-action-source="--------------------------nav_reg">Get started</a></div></div></div></div><div class="u-tintBgColor u-tintSpectrum " ><div class="metabar-inner u-marginAuto u-maxWidth1032 u-paddingHorizontal20 js-metabarBottom"><nav role="navigation" class="metabar-block metabar-block--below u-flexCenter u-overflowHidden u-height54"><div class="u-flexCenter u-overflowHidden"><div class="u-marginRight40"><a href="https://medium.com/androiddevelopers?source=logo-lo_e003adbb882e---95b274b437c2" class="u-flexCenter js-collectionLogoOrName"><img height="36" width="300" src="https://cdn-images-1.medium.com/letterbox/600/72/50/50/1*5pMw_nx55x_66tk77kutPQ.png?source=logoAvatar-lo_e003adbb882e---95b274b437c2" alt="Android Developers" /></a></div><div class="u-overflowHidden u-xs-hide"><ul class="u-textAlignLeft u-noWrap u-overflowX u-height80 u-marginTop40 js-collectionNavItems"><li class="metabar-navItem js-collectionNavItem u-inlineBlock u-fontSize13 u-textUppercase u-letterSpacing1px u-textColorNormal u-xs-paddingRight12 u-xs-marginRight0 u-xs-paddingTop10"><a class="link link--darken u-accentColor--textDarken link--noUnderline u-baseColor--link js-navItemLink" href="https://medium.com/androiddevelopers/archive">Archive</a></li><li class="metabar-navItem js-collectionNavItem u-inlineBlock u-fontSize13 u-textUppercase u-letterSpacing1px u-textColorNormal u-xs-paddingRight12 u-xs-marginRight0 u-xs-paddingTop10"><a class="link link--darken u-accentColor--textDarken link--noUnderline u-baseColor--link js-navItemLink" href="https://medium.com/androiddevelopers/tagged/kotlin">Kotlin</a></li><li class="metabar-navItem js-collectionNavItem u-inlineBlock u-fontSize13 u-textUppercase u-letterSpacing1px u-textColorNormal u-xs-paddingRight12 u-xs-marginRight0 u-xs-paddingTop10"><a class="link link--darken u-accentColor--textDarken link--noUnderline u-baseColor--link js-navItemLink" href="https://medium.com/androiddevelopers/tagged/design">Design</a></li><li class="metabar-navItem js-collectionNavItem u-inlineBlock u-fontSize13 u-textUppercase u-letterSpacing1px u-textColorNormal u-xs-paddingRight12 u-xs-marginRight0 u-xs-paddingTop10"><a class="link link--darken u-accentColor--textDarken link--noUnderline u-baseColor--link js-navItemLink" href="https://medium.com/androiddevelopers/tagged/android-studio">Android Studio</a></li><li class="metabar-navItem js-collectionNavItem u-inlineBlock u-fontSize13 u-textUppercase u-letterSpacing1px u-textColorNormal u-xs-paddingRight12 u-xs-marginRight0 u-xs-paddingTop10"><a class="link link--darken u-accentColor--textDarken link--noUnderline u-baseColor--link js-navItemLink" href="https://medium.com/androiddevelopers/tagged/now-in-android">Now in Android</a></li><li class="metabar-navItem js-collectionNavItem u-inlineBlock u-fontSize13 u-textUppercase u-letterSpacing1px u-textColorNormal u-xs-paddingRight12 u-xs-marginRight0 u-xs-paddingTop10"><a class="link link--darken u-accentColor--textDarken link--noUnderline u-baseColor--link js-navItemLink" href="https://medium.com/androiddevelopers/tagged/mad-skills">Modern Android Development</a></li><span class="u-borderLeft1 u-baseColor--borderLight"></span><li class="metabar-navItem js-collectionNavItem is-external u-inlineBlock u-fontSize13 u-textUppercase u-letterSpacing1px u-textColorNormal u-xs-paddingRight12 u-xs-marginRight0 u-xs-paddingTop10"><a class="link link--darkenOnHover u-accentColor--textDarken link--noUnderline u-baseColor--link js-navItemLink" href="https://developer.android.com" rel="nofollow noopener" target="_blank">developer.android.com</a></li></ul></div></div></nav></div></div></div><div class="metabar metabar--spacer js-metabarSpacer u-tintBgColor u-height119 u-xs-height110"></div><div class="container u-foreground u-maxWidth1032 u-paddingTop40"><div class="row u-relative"><div class="col u-size12of12"><div class="row"><div class="col u-size4of12 js-aboutCollectionBox"><header class="heading heading--page u-marginTop0 u-xs-marginTop20 u-sm-marginBottom5" ><div class="u-clearfix"><div class="heading-content u-floatLeft"><div class="heading-prefix">Tagged in</div><h1 class="heading-title heading-title--bold u-marginTop0 u-xs-marginTop20 u-sm-marginBottom5">Kotlin</h1></div></div></header><div class="u-sm-hide"><div class="u-tableCell"><a class="link u-baseColor--link avatar avatar--roundedRectangle" href="https://medium.com/androiddevelopers" title="Go to Android Developers" aria-label="Go to Android Developers"><img src="https://cdn-images-1.medium.com/fit/c/72/72/1*4Tg6pPzer7cIarYaszIKaQ.png" class="avatar-image u-size36x36 u-xs-size32x32" alt="Android Developers"></a></div><div class="u-tableCell u-verticalAlignMiddle u-textColorNormal u-fontSize16 u-breakWord u-paddingLeft10">Android Developers</div><div class="u-fontSize14 u-lineHeightBaseSans u-textColorDark u-paddingTop15 u-paddingBottom15"><div class="u-marginBottom15 u-breakWord">Articles on modern tools and resources to help you build experiences that people love, faster and easier, across every Android device.</div><a class=" link--darken u-accentColor--textDarken link--accent u-accentColor--textNormal" href="https://medium.com/androiddevelopers/about">More information</a></div><div class="u-fontSize14 u-lineHeightBaseSans u-textColorDark u-paddingBottom15"><header class="heading heading--allCaps heading--light" ><div class="u-clearfix"><div class="heading-content u-floatLeft"><span class="heading-title">Followers</span></div></div></header>51K </div><div class="u-fontSize14 u-lineHeightBaseSans u-marginBottom4 u-paddingBottom15"><header class="heading heading--allCaps heading--light" ><div class="u-clearfix"><div class="heading-content u-floatLeft"><span class="heading-title">Elsewhere</span></div></div></header><div class="linkSet"><a class="button button--dark button--chromeless is-touchIconBlackPulse u-baseColor--buttonDark button--withIcon button--withSvgIcon button--dark button--chromeless" href="https://twitter.com/androiddev" title="X profile" aria-label="X profile" target="_blank"><span class="button-defaultState"><span class="svgIcon svgIcon--twitter svgIcon--21px"><svg class="svgIcon-use" width="21" height="21" fill="none" ><path d="M11.74 9.478l4.842-5.628h-1.147l-4.204 4.887L7.873 3.85H4l5.078 7.39L4 17.142h1.147l4.44-5.16 3.546 5.16h3.873L11.74 9.478zm-1.571 1.827l-.514-.736L5.56 4.714h1.762l3.304 4.725.514.736 4.295 6.143h-1.763l-3.504-5.013z" fill="#242424"/></svg></span></span></a></div></div><div class="u-fontSize14 u-lineHeightBaseSans u-textColorDark u-paddingBottom15"><header class="heading heading--allCaps heading--light u-marginBottom10" ><div class="u-clearfix"><div class="heading-content u-floatLeft"><span class="heading-title u-marginBottom10">More, on Medium</span></div></div></header><ul class="tags tags--postTags tags--light"><li><a class="link u-baseColor--link" href="https://medium.com/tag/kotlin">Kotlin</a></li></ul></div></div></div><div class="col u-size8of12 u-sm-size12of12"><div class="u-marginBottom40 u-sm-marginBottom20"><div class="u-height65 u-sm-hide"></div></div><div class="js-tagStream"><div class="streamItem streamItem--postPreview js-streamItem"><div class="cardChromeless u-marginTop20 u-paddingTop10 u-paddingBottom15 u-paddingLeft20 u-paddingRight20"><div class="postArticle postArticle--short js-postArticle js-trackPostPresentation js-trackPostScrolls" data-post-id="d334239c7c5b" data-source="---------0-----------------------"><div class="u-clearfix u-marginBottom15 u-paddingTop5"><div class="postMetaInline u-floatLeft u-sm-maxWidthFullWidth"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar" href="https://medium.com/@justfaceit" data-action="show-user-card" data-action-value="18e39dc8d413" data-action-type="hover" data-user-id="18e39dc8d413" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/72/72/1*bjPRDOb6kj4pqp3fmf6DBQ@2x.jpeg" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of Sa-ryong Kang"></a></div><div class="postMetaInline postMetaInline-authorLockup ui-captionStrong u-flex1 u-noWrapWithEllipsis"><a class="ds-link ds-link--styleSubtle link link--darken link--accent u-accentColor--textNormal u-accentColor--textDarken" href="https://medium.com/@justfaceit?source=---------0-----------------------" data-action="show-user-card" data-action-source="---------0-----------------------" data-action-value="18e39dc8d413" data-action-type="hover" data-user-id="18e39dc8d413" dir="auto">Sa-ryong Kang</a> in <a class="ds-link ds-link--styleSubtle link--darken link--accent u-accentColor--textNormal" href="https://medium.com/androiddevelopers?source=---------0-----------------------" data-action="show-collection-card" data-action-source="---------0-----------------------" data-action-value="androiddevelopers" data-action-type="hover">Android Developers</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><a class="link link--darken" href="https://medium.com/androiddevelopers/now-in-android-107-d334239c7c5b?source=---------0-----------------------" data-action="open-post" data-action-value="https://medium.com/androiddevelopers/now-in-android-107-d334239c7c5b?source=---------0-----------------------" data-action-source="preview-listing" ><time datetime="2024-06-13T23:33:37.965Z">Jun 13</time></a><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="6 min read"></span></div></div></div></div></div><div><a class="" href="https://medium.com/androiddevelopers/now-in-android-107-d334239c7c5b?source=---------0-----------------------" data-action-source="---------0-----------------------"><div class="postArticle-content js-postField"><section class="section section--body section--first section--last"><div class="section-divider"><hr class="section-divider"></div><div class="section-content"><div class="section-inner sectionLayout--insetColumn"><figure name="previewImage" id="previewImage" class="graf graf--figure graf--layoutCroppedHeightPreview graf--leading"><div class="aspectRatioPlaceholder is-locked"><div class="aspectRatioPlaceholder-fill" style="padding-bottom: 30%;"></div><img class="graf-image" data-image-id="1*0VEHBhtQU_6AvaaIhR1kCA.png" data-width="4209" data-height="1253" data-is-featured="true" src="https://cdn-images-1.medium.com/fit/t/1600/480/1*0VEHBhtQU_6AvaaIhR1kCA.png"></div></figure><h3 name="2f65" id="2f65" class="graf graf--h3 graf-after--figure graf--title">Now in Android #107</h3><h4 name="e4f2" id="e4f2" class="graf graf--h4 graf-after--h3 graf--trailing graf--subtitle"><span class="markup--anchor markup--h4-anchor" data-action="open-inner-link" data-action-value="https://developers.googleblog.com/en/google-kotlinconf-2024-a-look-inside-multiplatform-development-with-kmp-and-more/">Google @ KotlinConf</a>, <span class="markup--anchor markup--h4-anchor" data-action="open-inner-link" data-action-value="https://developer.android.com/studio/releases">Android Studio updates</a>, <span class="markup--anchor markup--h4-anchor" data-action="open-inner-link" data-action-value="https://www.youtube.com/channel/UCVHFbqXqoYvEWM1Ddxl0QDg">I/O recaps</a>, <span class="markup--anchor markup--h4-anchor" data-action="open-inner-link" data-action-value="https://developer.android.com/jetpack/androidx/versions">AndroidX updates</a>, and…</h4></div></div></section></div></a></div><div class="postArticle-readMore"><a class="button button--smaller button--chromeless u-baseColor--buttonNormal" href="https://medium.com/androiddevelopers/now-in-android-107-d334239c7c5b?source=---------0-----------------------" data-action="open-post" data-action-source="---------0-----------------------" data-action-value="https://medium.com/androiddevelopers/now-in-android-107-d334239c7c5b?source=---------0-----------------------" data-post-id="d334239c7c5b">Read more…</a></div><div class="u-clearfix u-paddingTop10"><div class="u-floatLeft"><div class="multirecommend js-actionMultirecommend u-flexCenter" data-post-id="d334239c7c5b" data-is-flush-left="true" data-source="listing-----d334239c7c5b---------------------clap_preview"><div class="u-relative u-foreground"><button class="button button--primary button--chromeless u-accentColor--buttonNormal button--withIcon button--withSvgIcon clapButton js-actionMultirecommendButton clapButton--darker" data-action="sign-up-prompt" data-sign-in-action="multivote" data-requires-token="true" data-redirect="https://medium.com/_/vote/p/d334239c7c5b" data-action-source="listing-----d334239c7c5b---------------------clap_preview" aria-label="Clap"><span class="button-defaultState"><span class="svgIcon svgIcon--clap svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25" ><g fill-rule="evenodd"><path d="M11.739 0l.761 2.966L13.261 0z"/><path d="M14.815 3.776l1.84-2.551-1.43-.471z"/><path d="M8.378 1.224l1.84 2.551L9.81.753z"/><path d="M20.382 21.622c-1.04 1.04-2.115 1.507-3.166 1.608.168-.14.332-.29.492-.45 2.885-2.886 3.456-5.982 1.69-9.211l-1.101-1.937-.955-2.02c-.315-.676-.235-1.185.245-1.556a.836.836 0 01.66-.16c.342.056.66.28.879.605l2.856 5.023c1.179 1.962 1.379 5.119-1.6 8.098m-13.29-.528l-5.02-5.02a1 1 0 01.707-1.701c.255 0 .512.098.707.292l2.607 2.607a.442.442 0 00.624-.624L4.11 14.04l-1.75-1.75a.998.998 0 111.41-1.413l4.154 4.156a.44.44 0 00.624 0 .44.44 0 000-.624l-4.152-4.153-1.172-1.171a.998.998 0 010-1.41 1.018 1.018 0 011.41 0l1.172 1.17 4.153 4.152a.437.437 0 00.624 0 .442.442 0 000-.624L6.43 8.222a.988.988 0 01-.291-.705.99.99 0 01.29-.706 1 1 0 011.412 0l6.992 6.993a.443.443 0 00.71-.501l-1.35-2.856c-.315-.676-.235-1.185.246-1.557a.85.85 0 01.66-.16c.342.056.659.28.879.606L18.628 14c1.573 2.876 1.067 5.545-1.544 8.156-1.396 1.397-3.144 1.966-5.063 1.652-1.713-.286-3.463-1.248-4.928-2.714zM10.99 5.976l2.562 2.562c-.497.607-.563 1.414-.155 2.284l.265.562-4.257-4.257a.98.98 0 01-.117-.445c0-.267.104-.517.292-.706a1.023 1.023 0 011.41 0zm8.887 2.06c-.375-.557-.902-.916-1.486-1.011a1.738 1.738 0 00-1.342.332c-.376.29-.61.656-.712 1.065a2.1 2.1 0 00-1.095-.562 1.776 1.776 0 00-.992.128l-2.636-2.636a1.883 1.883 0 00-2.658 0 1.862 1.862 0 00-.478.847 1.886 1.886 0 00-2.671-.012 1.867 1.867 0 00-.503.909c-.754-.754-1.992-.754-2.703-.044a1.881 1.881 0 000 2.658c-.288.12-.605.288-.864.547a1.884 1.884 0 000 2.659l.624.622a1.879 1.879 0 00-.91 3.16l5.019 5.02c1.595 1.594 3.515 2.645 5.408 2.959a7.16 7.16 0 001.173.098c1.026 0 1.997-.24 2.892-.7.279.04.555.065.828.065 1.53 0 2.969-.628 4.236-1.894 3.338-3.338 3.083-6.928 1.738-9.166l-2.868-5.043z"/></g></svg></span></span><span class="button-activeState"><span class="svgIcon svgIcon--clapFilled svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25" ><g fill-rule="evenodd"><path d="M11.738 0l.762 2.966L13.262 0z"/><path d="M16.634 1.224l-1.432-.47-.408 3.022z"/><path d="M9.79.754l-1.431.47 1.84 2.552z"/><path d="M22.472 13.307l-3.023-5.32c-.287-.426-.689-.705-1.123-.776a1.16 1.16 0 00-.911.221c-.297.231-.474.515-.535.84.017.022.036.04.053.063l2.843 5.001c1.95 3.564 1.328 6.973-1.843 10.144a8.46 8.46 0 01-.549.501c1.205-.156 2.328-.737 3.351-1.76 3.268-3.268 3.041-6.749 1.737-8.914"/><path d="M12.58 9.887c-.156-.83.096-1.569.692-2.142L10.78 5.252c-.5-.504-1.378-.504-1.879 0-.178.18-.273.4-.329.63l4.008 4.005z"/><path d="M15.812 9.04c-.218-.323-.539-.55-.88-.606a.814.814 0 00-.644.153c-.176.137-.713.553-.24 1.566l1.43 3.025a.539.539 0 11-.868.612L7.2 6.378a.986.986 0 10-1.395 1.395l4.401 4.403a.538.538 0 11-.762.762L5.046 8.54 3.802 7.295a.99.99 0 00-1.396 0 .981.981 0 000 1.394L3.647 9.93l4.402 4.403a.537.537 0 010 .761.535.535 0 01-.762 0L2.89 10.696a.992.992 0 00-1.399-.003.983.983 0 000 1.395l1.855 1.854 2.763 2.765a.538.538 0 01-.76.761l-2.765-2.764a.982.982 0 00-1.395 0 .989.989 0 000 1.395l5.32 5.32c3.371 3.372 6.64 4.977 10.49 1.126C19.74 19.8 20.271 17 18.62 13.982L15.812 9.04z"/></g></svg></span></span></button></div><span class="u-relative u-background js-actionMultirecommendCount u-marginLeft5"><button class="button button--chromeless u-baseColor--buttonNormal js-multirecommendCountButton u-disablePointerEvents" data-action="show-recommends" data-action-value="d334239c7c5b">83</button></span></div></div><div class="buttonSet u-floatRight"><button class="button button--dark button--chromeless is-touchIconFadeInPulse u-baseColor--buttonDark button--withIcon button--withSvgIcon button--bookmark js-bookmarkButton" data-action="add-to-bookmarks" data-action-value="d334239c7c5b"><span class="js-remove-from-bookmarks u-hide"><span class="svgIcon svgIcon--bookmarkFilled svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25" ><path d="M19 6c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v14.66h.012c.01.103.045.204.12.285a.5.5 0 00.706.03L12.5 16.85l5.662 4.126c.205.183.52.17.708-.03a.5.5 0 00.118-.285H19V6z"/></svg></span></span><span class="js-add-to-bookmarks"><span class="svgIcon svgIcon--bookmarkAdd svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25" fill="none" ><path d="M18 2.5a.5.5 0 011 0V5h2.5a.5.5 0 010 1H19v2.5a.5.5 0 11-1 0V6h-2.5a.5.5 0 010-1H18V2.5z" fill="#292929"/><path d="M7 7a1 1 0 011-1h3.5a.5.5 0 000-1H8a2 2 0 00-2 2v14a.5.5 0 00.805.396L12.5 17l5.695 4.396A.5.5 0 0019 21v-8.5a.5.5 0 00-1 0v7.485l-5.195-4.012a.5.5 0 00-.61 0L7 19.985V7z" fill="#292929"/></svg></span></span></button></div></div></div></div></div><div class="streamItem streamItem--postPreview js-streamItem"><div class="cardChromeless u-marginTop20 u-paddingTop10 u-paddingBottom15 u-paddingLeft20 u-paddingRight20"><div class="postArticle postArticle--short js-postArticle js-trackPostPresentation js-trackPostScrolls" data-post-id="1b72759c5f0c" data-source="---------1-----------------------"><div class="u-clearfix u-marginBottom15 u-paddingTop5"><div class="postMetaInline u-floatLeft u-sm-maxWidthFullWidth"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar" href="https://medium.com/@alice_yuan" data-action="show-user-card" data-action-value="eb38ed87b679" data-action-type="hover" data-user-id="eb38ed87b679" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/72/72/1*YO6UsorsU7z0MZzxhXLgNw.jpeg" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of Alice Yuan"></a></div><div class="postMetaInline postMetaInline-authorLockup ui-captionStrong u-flex1 u-noWrapWithEllipsis"><a class="ds-link ds-link--styleSubtle link link--darken link--accent u-accentColor--textNormal u-accentColor--textDarken" href="https://medium.com/@alice_yuan?source=---------1-----------------------" data-action="show-user-card" data-action-source="---------1-----------------------" data-action-value="eb38ed87b679" data-action-type="hover" data-user-id="eb38ed87b679" dir="auto">Alice Yuan</a> in <a class="ds-link ds-link--styleSubtle link--darken link--accent u-accentColor--textNormal" href="https://medium.com/androiddevelopers?source=---------1-----------------------" data-action="show-collection-card" data-action-source="---------1-----------------------" data-action-value="androiddevelopers" data-action-type="hover">Android Developers</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><a class="link link--darken" href="https://medium.com/androiddevelopers/now-in-android-106-1b72759c5f0c?source=---------1-----------------------" data-action="open-post" data-action-value="https://medium.com/androiddevelopers/now-in-android-106-1b72759c5f0c?source=---------1-----------------------" data-action-source="preview-listing" ><time datetime="2024-05-30T21:31:37.129Z">May 30</time></a><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="6 min read"></span></div></div></div></div></div><div><a class="" href="https://medium.com/androiddevelopers/now-in-android-106-1b72759c5f0c?source=---------1-----------------------" data-action-source="---------1-----------------------"><div class="postArticle-content js-postField"><section class="section section--body section--first section--last"><div class="section-divider"><hr class="section-divider"></div><div class="section-content"><div class="section-inner sectionLayout--insetColumn"><figure name="previewImage" id="previewImage" class="graf graf--figure graf--layoutCroppedHeightPreview graf--leading"><div class="aspectRatioPlaceholder is-locked"><div class="aspectRatioPlaceholder-fill" style="padding-bottom: 30%;"></div><img class="graf-image" data-image-id="1*Sy3ea40KCd6LSmU6QFUgDA.png" data-width="4209" data-height="1253" data-is-featured="true" src="https://cdn-images-1.medium.com/fit/t/1600/480/1*Sy3ea40KCd6LSmU6QFUgDA.png"></div></figure><h3 name="73a7" id="73a7" class="graf graf--h3 graf-after--figure graf--title">Now in Android #106</h3><h4 name="ee00" id="ee00" class="graf graf--h4 graf-after--h3 graf--trailing graf--subtitle"><span class="markup--anchor markup--h4-anchor" data-action="open-inner-link" data-action-value="https://android-developers.googleblog.com/2024/05/15-things-to-know-for-android-developers-google-io-2024.html">I/O’24</a>, <span class="markup--anchor markup--h4-anchor" data-action="open-inner-link" data-action-value="http://android-developers.googleblog.com/2024/05/the-second-beta-of-android-15.html">Android 15</a>, <span class="markup--anchor markup--h4-anchor" data-action="open-inner-link" data-action-value="http://android-developers.googleblog.com/2024/05/android-support-for-kotlin-multiplatform-to-share-business-logic-across-mobile-web-server-desktop.html">KMP</a>, Compose, <span class="markup--anchor markup--h4-anchor" data-action="open-inner-link" data-action-value="https://developer.android.com/jetpack/androidx/versions/all-channel">AndroidX</a>, and more</h4></div></div></section></div></a></div><div class="postArticle-readMore"><a class="button button--smaller button--chromeless u-baseColor--buttonNormal" href="https://medium.com/androiddevelopers/now-in-android-106-1b72759c5f0c?source=---------1-----------------------" data-action="open-post" data-action-source="---------1-----------------------" data-action-value="https://medium.com/androiddevelopers/now-in-android-106-1b72759c5f0c?source=---------1-----------------------" data-post-id="1b72759c5f0c">Read more…</a></div><div class="u-clearfix u-paddingTop10"><div class="u-floatLeft"><div class="multirecommend js-actionMultirecommend u-flexCenter" data-post-id="1b72759c5f0c" data-is-flush-left="true" data-source="listing-----1b72759c5f0c---------------------clap_preview"><div class="u-relative u-foreground"><button class="button button--primary button--chromeless u-accentColor--buttonNormal button--withIcon button--withSvgIcon clapButton js-actionMultirecommendButton clapButton--darker" data-action="sign-up-prompt" data-sign-in-action="multivote" data-requires-token="true" data-redirect="https://medium.com/_/vote/p/1b72759c5f0c" data-action-source="listing-----1b72759c5f0c---------------------clap_preview" aria-label="Clap"><span class="button-defaultState"><span class="svgIcon svgIcon--clap svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25" ><g fill-rule="evenodd"><path d="M11.739 0l.761 2.966L13.261 0z"/><path d="M14.815 3.776l1.84-2.551-1.43-.471z"/><path d="M8.378 1.224l1.84 2.551L9.81.753z"/><path d="M20.382 21.622c-1.04 1.04-2.115 1.507-3.166 1.608.168-.14.332-.29.492-.45 2.885-2.886 3.456-5.982 1.69-9.211l-1.101-1.937-.955-2.02c-.315-.676-.235-1.185.245-1.556a.836.836 0 01.66-.16c.342.056.66.28.879.605l2.856 5.023c1.179 1.962 1.379 5.119-1.6 8.098m-13.29-.528l-5.02-5.02a1 1 0 01.707-1.701c.255 0 .512.098.707.292l2.607 2.607a.442.442 0 00.624-.624L4.11 14.04l-1.75-1.75a.998.998 0 111.41-1.413l4.154 4.156a.44.44 0 00.624 0 .44.44 0 000-.624l-4.152-4.153-1.172-1.171a.998.998 0 010-1.41 1.018 1.018 0 011.41 0l1.172 1.17 4.153 4.152a.437.437 0 00.624 0 .442.442 0 000-.624L6.43 8.222a.988.988 0 01-.291-.705.99.99 0 01.29-.706 1 1 0 011.412 0l6.992 6.993a.443.443 0 00.71-.501l-1.35-2.856c-.315-.676-.235-1.185.246-1.557a.85.85 0 01.66-.16c.342.056.659.28.879.606L18.628 14c1.573 2.876 1.067 5.545-1.544 8.156-1.396 1.397-3.144 1.966-5.063 1.652-1.713-.286-3.463-1.248-4.928-2.714zM10.99 5.976l2.562 2.562c-.497.607-.563 1.414-.155 2.284l.265.562-4.257-4.257a.98.98 0 01-.117-.445c0-.267.104-.517.292-.706a1.023 1.023 0 011.41 0zm8.887 2.06c-.375-.557-.902-.916-1.486-1.011a1.738 1.738 0 00-1.342.332c-.376.29-.61.656-.712 1.065a2.1 2.1 0 00-1.095-.562 1.776 1.776 0 00-.992.128l-2.636-2.636a1.883 1.883 0 00-2.658 0 1.862 1.862 0 00-.478.847 1.886 1.886 0 00-2.671-.012 1.867 1.867 0 00-.503.909c-.754-.754-1.992-.754-2.703-.044a1.881 1.881 0 000 2.658c-.288.12-.605.288-.864.547a1.884 1.884 0 000 2.659l.624.622a1.879 1.879 0 00-.91 3.16l5.019 5.02c1.595 1.594 3.515 2.645 5.408 2.959a7.16 7.16 0 001.173.098c1.026 0 1.997-.24 2.892-.7.279.04.555.065.828.065 1.53 0 2.969-.628 4.236-1.894 3.338-3.338 3.083-6.928 1.738-9.166l-2.868-5.043z"/></g></svg></span></span><span class="button-activeState"><span class="svgIcon svgIcon--clapFilled svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25" ><g fill-rule="evenodd"><path d="M11.738 0l.762 2.966L13.262 0z"/><path d="M16.634 1.224l-1.432-.47-.408 3.022z"/><path d="M9.79.754l-1.431.47 1.84 2.552z"/><path d="M22.472 13.307l-3.023-5.32c-.287-.426-.689-.705-1.123-.776a1.16 1.16 0 00-.911.221c-.297.231-.474.515-.535.84.017.022.036.04.053.063l2.843 5.001c1.95 3.564 1.328 6.973-1.843 10.144a8.46 8.46 0 01-.549.501c1.205-.156 2.328-.737 3.351-1.76 3.268-3.268 3.041-6.749 1.737-8.914"/><path d="M12.58 9.887c-.156-.83.096-1.569.692-2.142L10.78 5.252c-.5-.504-1.378-.504-1.879 0-.178.18-.273.4-.329.63l4.008 4.005z"/><path d="M15.812 9.04c-.218-.323-.539-.55-.88-.606a.814.814 0 00-.644.153c-.176.137-.713.553-.24 1.566l1.43 3.025a.539.539 0 11-.868.612L7.2 6.378a.986.986 0 10-1.395 1.395l4.401 4.403a.538.538 0 11-.762.762L5.046 8.54 3.802 7.295a.99.99 0 00-1.396 0 .981.981 0 000 1.394L3.647 9.93l4.402 4.403a.537.537 0 010 .761.535.535 0 01-.762 0L2.89 10.696a.992.992 0 00-1.399-.003.983.983 0 000 1.395l1.855 1.854 2.763 2.765a.538.538 0 01-.76.761l-2.765-2.764a.982.982 0 00-1.395 0 .989.989 0 000 1.395l5.32 5.32c3.371 3.372 6.64 4.977 10.49 1.126C19.74 19.8 20.271 17 18.62 13.982L15.812 9.04z"/></g></svg></span></span></button></div><span class="u-relative u-background js-actionMultirecommendCount u-marginLeft5"><button class="button button--chromeless u-baseColor--buttonNormal js-multirecommendCountButton u-disablePointerEvents" data-action="show-recommends" data-action-value="1b72759c5f0c">113</button></span></div></div><div class="buttonSet u-floatRight"><button class="button button--dark button--chromeless is-touchIconFadeInPulse u-baseColor--buttonDark button--withIcon button--withSvgIcon button--bookmark js-bookmarkButton" data-action="add-to-bookmarks" data-action-value="1b72759c5f0c"><span class="js-remove-from-bookmarks u-hide"><span class="svgIcon svgIcon--bookmarkFilled svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25" ><path d="M19 6c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v14.66h.012c.01.103.045.204.12.285a.5.5 0 00.706.03L12.5 16.85l5.662 4.126c.205.183.52.17.708-.03a.5.5 0 00.118-.285H19V6z"/></svg></span></span><span class="js-add-to-bookmarks"><span class="svgIcon svgIcon--bookmarkAdd svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25" fill="none" ><path d="M18 2.5a.5.5 0 011 0V5h2.5a.5.5 0 010 1H19v2.5a.5.5 0 11-1 0V6h-2.5a.5.5 0 010-1H18V2.5z" fill="#292929"/><path d="M7 7a1 1 0 011-1h3.5a.5.5 0 000-1H8a2 2 0 00-2 2v14a.5.5 0 00.805.396L12.5 17l5.695 4.396A.5.5 0 0019 21v-8.5a.5.5 0 00-1 0v7.485l-5.195-4.012a.5.5 0 00-.61 0L7 19.985V7z" fill="#292929"/></svg></span></span></button></div></div></div></div></div><div class="streamItem streamItem--postPreview js-streamItem"><div class="cardChromeless u-marginTop20 u-paddingTop10 u-paddingBottom15 u-paddingLeft20 u-paddingRight20"><div class="postArticle postArticle--short js-postArticle js-trackPostPresentation js-trackPostScrolls" data-post-id="f5db5d045dfb" data-source="---------2-----------------------"><div class="u-clearfix u-marginBottom15 u-paddingTop5"><div class="postMetaInline u-floatLeft u-sm-maxWidthFullWidth"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar" href="https://medium.com/@alice_yuan" data-action="show-user-card" data-action-value="eb38ed87b679" data-action-type="hover" data-user-id="eb38ed87b679" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/72/72/1*YO6UsorsU7z0MZzxhXLgNw.jpeg" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of Alice Yuan"></a></div><div class="postMetaInline postMetaInline-authorLockup ui-captionStrong u-flex1 u-noWrapWithEllipsis"><a class="ds-link ds-link--styleSubtle link link--darken link--accent u-accentColor--textNormal u-accentColor--textDarken" href="https://medium.com/@alice_yuan?source=---------2-----------------------" data-action="show-user-card" data-action-source="---------2-----------------------" data-action-value="eb38ed87b679" data-action-type="hover" data-user-id="eb38ed87b679" dir="auto">Alice Yuan</a> in <a class="ds-link ds-link--styleSubtle link--darken link--accent u-accentColor--textNormal" href="https://medium.com/androiddevelopers?source=---------2-----------------------" data-action="show-collection-card" data-action-source="---------2-----------------------" data-action-value="androiddevelopers" data-action-type="hover">Android Developers</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><a class="link link--darken" href="https://medium.com/androiddevelopers/now-in-android-97-f5db5d045dfb?source=---------2-----------------------" data-action="open-post" data-action-value="https://medium.com/androiddevelopers/now-in-android-97-f5db5d045dfb?source=---------2-----------------------" data-action-source="preview-listing" ><time datetime="2023-12-14T22:02:06.161Z">Dec 14, 2023</time></a><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="4 min read"></span></div></div></div></div></div><div><a class="" href="https://medium.com/androiddevelopers/now-in-android-97-f5db5d045dfb?source=---------2-----------------------" data-action-source="---------2-----------------------"><div class="postArticle-content js-postField"><section class="section section--body section--first section--last"><div class="section-divider"><hr class="section-divider"></div><div class="section-content"><div class="section-inner sectionLayout--insetColumn"><figure name="previewImage" id="previewImage" class="graf graf--figure graf--layoutCroppedHeightPreview graf--leading"><div class="aspectRatioPlaceholder is-locked"><div class="aspectRatioPlaceholder-fill" style="padding-bottom: 30%;"></div><img class="graf-image" data-image-id="1*aIux1an8zPUXIhTLY7psfw.png" data-width="1600" data-height="477" data-is-featured="true" src="https://cdn-images-1.medium.com/fit/t/1600/480/1*aIux1an8zPUXIhTLY7psfw.png"></div></figure><h3 name="077e" id="077e" class="graf graf--h3 graf-after--figure graf--title">Now in Android #97</h3><h4 name="282e" id="282e" class="graf graf--h4 graf-after--h3 graf--trailing graf--subtitle"><span class="markup--anchor markup--h4-anchor" data-action="open-inner-link" data-action-value="https://android-developers.googleblog.com/2023/12/a-new-foundation-for-ai-on-android.html">Gemini</a>, <span class="markup--anchor markup--h4-anchor" data-action="open-inner-link" data-action-value="https://developer.android.com/ml/aicore">AICore</a>, <span class="markup--anchor markup--h4-anchor" data-action="open-inner-link" data-action-value="https://developers.google.com/ml-kit/vision/subject-segmentation">ML Kit</a>, <span class="markup--anchor markup--h4-anchor" data-action="open-inner-link" data-action-value="http://android-developers.googleblog.com/2023/11/android-studio-hedgehog-is-stable.html">Android Studio</a>, <span class="markup--anchor markup--h4-anchor" data-action="open-inner-link" data-action-value="http://android-developers.googleblog.com/2023/12/virtual-machines-as-core-android-primitive.html">AVF</a>, <span class="markup--anchor markup--h4-anchor" data-action="open-inner-link" data-action-value="https://android-developers.googleblog.com/2023/12/ksp2-preview-kotlin-k2-standalone.html">KSP2</a>, <span class="markup--anchor markup--h4-anchor" data-action="open-inner-link" data-action-value="https://www.youtube.com/watch?v=Z96wfbID_Yc">Performance</a> and more!</h4></div></div></section></div></a></div><div class="postArticle-readMore"><a class="button button--smaller button--chromeless u-baseColor--buttonNormal" href="https://medium.com/androiddevelopers/now-in-android-97-f5db5d045dfb?source=---------2-----------------------" data-action="open-post" data-action-source="---------2-----------------------" data-action-value="https://medium.com/androiddevelopers/now-in-android-97-f5db5d045dfb?source=---------2-----------------------" data-post-id="f5db5d045dfb">Read more…</a></div><div class="u-clearfix u-paddingTop10"><div class="u-floatLeft"><div class="multirecommend js-actionMultirecommend u-flexCenter" data-post-id="f5db5d045dfb" data-is-flush-left="true" data-source="listing-----f5db5d045dfb---------------------clap_preview"><div class="u-relative u-foreground"><button class="button button--primary button--chromeless u-accentColor--buttonNormal button--withIcon button--withSvgIcon clapButton js-actionMultirecommendButton clapButton--darker" data-action="sign-up-prompt" data-sign-in-action="multivote" data-requires-token="true" data-redirect="https://medium.com/_/vote/p/f5db5d045dfb" data-action-source="listing-----f5db5d045dfb---------------------clap_preview" aria-label="Clap"><span class="button-defaultState"><span class="svgIcon svgIcon--clap svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25" ><g fill-rule="evenodd"><path d="M11.739 0l.761 2.966L13.261 0z"/><path d="M14.815 3.776l1.84-2.551-1.43-.471z"/><path d="M8.378 1.224l1.84 2.551L9.81.753z"/><path d="M20.382 21.622c-1.04 1.04-2.115 1.507-3.166 1.608.168-.14.332-.29.492-.45 2.885-2.886 3.456-5.982 1.69-9.211l-1.101-1.937-.955-2.02c-.315-.676-.235-1.185.245-1.556a.836.836 0 01.66-.16c.342.056.66.28.879.605l2.856 5.023c1.179 1.962 1.379 5.119-1.6 8.098m-13.29-.528l-5.02-5.02a1 1 0 01.707-1.701c.255 0 .512.098.707.292l2.607 2.607a.442.442 0 00.624-.624L4.11 14.04l-1.75-1.75a.998.998 0 111.41-1.413l4.154 4.156a.44.44 0 00.624 0 .44.44 0 000-.624l-4.152-4.153-1.172-1.171a.998.998 0 010-1.41 1.018 1.018 0 011.41 0l1.172 1.17 4.153 4.152a.437.437 0 00.624 0 .442.442 0 000-.624L6.43 8.222a.988.988 0 01-.291-.705.99.99 0 01.29-.706 1 1 0 011.412 0l6.992 6.993a.443.443 0 00.71-.501l-1.35-2.856c-.315-.676-.235-1.185.246-1.557a.85.85 0 01.66-.16c.342.056.659.28.879.606L18.628 14c1.573 2.876 1.067 5.545-1.544 8.156-1.396 1.397-3.144 1.966-5.063 1.652-1.713-.286-3.463-1.248-4.928-2.714zM10.99 5.976l2.562 2.562c-.497.607-.563 1.414-.155 2.284l.265.562-4.257-4.257a.98.98 0 01-.117-.445c0-.267.104-.517.292-.706a1.023 1.023 0 011.41 0zm8.887 2.06c-.375-.557-.902-.916-1.486-1.011a1.738 1.738 0 00-1.342.332c-.376.29-.61.656-.712 1.065a2.1 2.1 0 00-1.095-.562 1.776 1.776 0 00-.992.128l-2.636-2.636a1.883 1.883 0 00-2.658 0 1.862 1.862 0 00-.478.847 1.886 1.886 0 00-2.671-.012 1.867 1.867 0 00-.503.909c-.754-.754-1.992-.754-2.703-.044a1.881 1.881 0 000 2.658c-.288.12-.605.288-.864.547a1.884 1.884 0 000 2.659l.624.622a1.879 1.879 0 00-.91 3.16l5.019 5.02c1.595 1.594 3.515 2.645 5.408 2.959a7.16 7.16 0 001.173.098c1.026 0 1.997-.24 2.892-.7.279.04.555.065.828.065 1.53 0 2.969-.628 4.236-1.894 3.338-3.338 3.083-6.928 1.738-9.166l-2.868-5.043z"/></g></svg></span></span><span class="button-activeState"><span class="svgIcon svgIcon--clapFilled svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25" ><g fill-rule="evenodd"><path d="M11.738 0l.762 2.966L13.262 0z"/><path d="M16.634 1.224l-1.432-.47-.408 3.022z"/><path d="M9.79.754l-1.431.47 1.84 2.552z"/><path d="M22.472 13.307l-3.023-5.32c-.287-.426-.689-.705-1.123-.776a1.16 1.16 0 00-.911.221c-.297.231-.474.515-.535.84.017.022.036.04.053.063l2.843 5.001c1.95 3.564 1.328 6.973-1.843 10.144a8.46 8.46 0 01-.549.501c1.205-.156 2.328-.737 3.351-1.76 3.268-3.268 3.041-6.749 1.737-8.914"/><path d="M12.58 9.887c-.156-.83.096-1.569.692-2.142L10.78 5.252c-.5-.504-1.378-.504-1.879 0-.178.18-.273.4-.329.63l4.008 4.005z"/><path d="M15.812 9.04c-.218-.323-.539-.55-.88-.606a.814.814 0 00-.644.153c-.176.137-.713.553-.24 1.566l1.43 3.025a.539.539 0 11-.868.612L7.2 6.378a.986.986 0 10-1.395 1.395l4.401 4.403a.538.538 0 11-.762.762L5.046 8.54 3.802 7.295a.99.99 0 00-1.396 0 .981.981 0 000 1.394L3.647 9.93l4.402 4.403a.537.537 0 010 .761.535.535 0 01-.762 0L2.89 10.696a.992.992 0 00-1.399-.003.983.983 0 000 1.395l1.855 1.854 2.763 2.765a.538.538 0 01-.76.761l-2.765-2.764a.982.982 0 00-1.395 0 .989.989 0 000 1.395l5.32 5.32c3.371 3.372 6.64 4.977 10.49 1.126C19.74 19.8 20.271 17 18.62 13.982L15.812 9.04z"/></g></svg></span></span></button></div><span class="u-relative u-background js-actionMultirecommendCount u-marginLeft5"><button class="button button--chromeless u-baseColor--buttonNormal js-multirecommendCountButton u-disablePointerEvents" data-action="show-recommends" data-action-value="f5db5d045dfb">199</button></span></div></div><div class="buttonSet u-floatRight"><button class="button button--dark button--chromeless is-touchIconFadeInPulse u-baseColor--buttonDark button--withIcon button--withSvgIcon button--bookmark js-bookmarkButton" data-action="add-to-bookmarks" data-action-value="f5db5d045dfb"><span class="js-remove-from-bookmarks u-hide"><span class="svgIcon svgIcon--bookmarkFilled svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25" ><path d="M19 6c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v14.66h.012c.01.103.045.204.12.285a.5.5 0 00.706.03L12.5 16.85l5.662 4.126c.205.183.52.17.708-.03a.5.5 0 00.118-.285H19V6z"/></svg></span></span><span class="js-add-to-bookmarks"><span class="svgIcon svgIcon--bookmarkAdd svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25" fill="none" ><path d="M18 2.5a.5.5 0 011 0V5h2.5a.5.5 0 010 1H19v2.5a.5.5 0 11-1 0V6h-2.5a.5.5 0 010-1H18V2.5z" fill="#292929"/><path d="M7 7a1 1 0 011-1h3.5a.5.5 0 000-1H8a2 2 0 00-2 2v14a.5.5 0 00.805.396L12.5 17l5.695 4.396A.5.5 0 0019 21v-8.5a.5.5 0 00-1 0v7.485l-5.195-4.012a.5.5 0 00-.61 0L7 19.985V7z" fill="#292929"/></svg></span></span></button></div></div></div></div></div><div class="streamItem streamItem--postPreview js-streamItem"><div class="cardChromeless u-marginTop20 u-paddingTop10 u-paddingBottom15 u-paddingLeft20 u-paddingRight20"><div class="postArticle postArticle--short js-postArticle js-trackPostPresentation js-trackPostScrolls" data-post-id="51866ffd0bd8" data-source="---------3-----------------------"><div class="u-clearfix u-marginBottom15 u-paddingTop5"><div class="postMetaInline u-floatLeft u-sm-maxWidthFullWidth"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar" href="https://medium.com/@alice_yuan" data-action="show-user-card" data-action-value="eb38ed87b679" data-action-type="hover" data-user-id="eb38ed87b679" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/72/72/1*YO6UsorsU7z0MZzxhXLgNw.jpeg" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of Alice Yuan"></a></div><div class="postMetaInline postMetaInline-authorLockup ui-captionStrong u-flex1 u-noWrapWithEllipsis"><a class="ds-link ds-link--styleSubtle link link--darken link--accent u-accentColor--textNormal u-accentColor--textDarken" href="https://medium.com/@alice_yuan?source=---------3-----------------------" data-action="show-user-card" data-action-source="---------3-----------------------" data-action-value="eb38ed87b679" data-action-type="hover" data-user-id="eb38ed87b679" dir="auto">Alice Yuan</a> in <a class="ds-link ds-link--styleSubtle link--darken link--accent u-accentColor--textNormal" href="https://medium.com/androiddevelopers?source=---------3-----------------------" data-action="show-collection-card" data-action-source="---------3-----------------------" data-action-value="androiddevelopers" data-action-type="hover">Android Developers</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><a class="link link--darken" href="https://medium.com/androiddevelopers/now-in-android-92-51866ffd0bd8?source=---------3-----------------------" data-action="open-post" data-action-value="https://medium.com/androiddevelopers/now-in-android-92-51866ffd0bd8?source=---------3-----------------------" data-action-source="preview-listing" ><time datetime="2023-10-04T22:05:31.462Z">Oct 4, 2023</time></a><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="3 min read"></span></div></div></div></div></div><div><a class="" href="https://medium.com/androiddevelopers/now-in-android-92-51866ffd0bd8?source=---------3-----------------------" data-action-source="---------3-----------------------"><div class="postArticle-content js-postField"><section class="section section--body section--first section--last"><div class="section-divider"><hr class="section-divider"></div><div class="section-content"><div class="section-inner sectionLayout--insetColumn"><figure name="previewImage" id="previewImage" class="graf graf--figure graf--layoutCroppedHeightPreview graf--leading"><div class="aspectRatioPlaceholder is-locked"><div class="aspectRatioPlaceholder-fill" style="padding-bottom: 30%;"></div><img class="graf-image" data-image-id="1*aIux1an8zPUXIhTLY7psfw.png" data-width="1600" data-height="477" data-is-featured="true" src="https://cdn-images-1.medium.com/fit/t/1600/480/1*aIux1an8zPUXIhTLY7psfw.png"></div></figure><h3 name="a0c0" id="a0c0" class="graf graf--h3 graf-after--figure graf--title"><strong class="markup--strong markup--h3-strong">Now in Android #92</strong></h3><h4 name="0a10" id="0a10" class="graf graf--h4 graf-after--h3 graf--trailing graf--subtitle"><span class="markup--anchor markup--h4-anchor" data-action="open-inner-link" data-action-value="https://android-developers.googleblog.com/2023/09/studio-bot-expands-to-international-markets.html">Studio Bot expansion</a>, <span class="markup--anchor markup--h4-anchor" data-action="open-inner-link" data-action-value="https://www.youtube.com/watch?v=OvLCsH2vKgE">Firebase integration</a>, <span class="markup--anchor markup--h4-anchor" data-action="open-inner-link" data-action-value="https://www.youtube.com/watch?v=K1TTzkToDyE&ab_channel=AndroidDevelopers">Android Studio</a>, and much more!</h4></div></div></section></div></a></div><div class="postArticle-readMore"><a class="button button--smaller button--chromeless u-baseColor--buttonNormal" href="https://medium.com/androiddevelopers/now-in-android-92-51866ffd0bd8?source=---------3-----------------------" data-action="open-post" data-action-source="---------3-----------------------" data-action-value="https://medium.com/androiddevelopers/now-in-android-92-51866ffd0bd8?source=---------3-----------------------" data-post-id="51866ffd0bd8">Read more…</a></div><div class="u-clearfix u-paddingTop10"><div class="u-floatLeft"><div class="multirecommend js-actionMultirecommend u-flexCenter" data-post-id="51866ffd0bd8" data-is-flush-left="true" data-source="listing-----51866ffd0bd8---------------------clap_preview"><div class="u-relative u-foreground"><button class="button button--primary button--chromeless u-accentColor--buttonNormal button--withIcon button--withSvgIcon clapButton js-actionMultirecommendButton clapButton--darker" data-action="sign-up-prompt" data-sign-in-action="multivote" data-requires-token="true" data-redirect="https://medium.com/_/vote/p/51866ffd0bd8" data-action-source="listing-----51866ffd0bd8---------------------clap_preview" aria-label="Clap"><span class="button-defaultState"><span class="svgIcon svgIcon--clap svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25" ><g fill-rule="evenodd"><path d="M11.739 0l.761 2.966L13.261 0z"/><path d="M14.815 3.776l1.84-2.551-1.43-.471z"/><path d="M8.378 1.224l1.84 2.551L9.81.753z"/><path d="M20.382 21.622c-1.04 1.04-2.115 1.507-3.166 1.608.168-.14.332-.29.492-.45 2.885-2.886 3.456-5.982 1.69-9.211l-1.101-1.937-.955-2.02c-.315-.676-.235-1.185.245-1.556a.836.836 0 01.66-.16c.342.056.66.28.879.605l2.856 5.023c1.179 1.962 1.379 5.119-1.6 8.098m-13.29-.528l-5.02-5.02a1 1 0 01.707-1.701c.255 0 .512.098.707.292l2.607 2.607a.442.442 0 00.624-.624L4.11 14.04l-1.75-1.75a.998.998 0 111.41-1.413l4.154 4.156a.44.44 0 00.624 0 .44.44 0 000-.624l-4.152-4.153-1.172-1.171a.998.998 0 010-1.41 1.018 1.018 0 011.41 0l1.172 1.17 4.153 4.152a.437.437 0 00.624 0 .442.442 0 000-.624L6.43 8.222a.988.988 0 01-.291-.705.99.99 0 01.29-.706 1 1 0 011.412 0l6.992 6.993a.443.443 0 00.71-.501l-1.35-2.856c-.315-.676-.235-1.185.246-1.557a.85.85 0 01.66-.16c.342.056.659.28.879.606L18.628 14c1.573 2.876 1.067 5.545-1.544 8.156-1.396 1.397-3.144 1.966-5.063 1.652-1.713-.286-3.463-1.248-4.928-2.714zM10.99 5.976l2.562 2.562c-.497.607-.563 1.414-.155 2.284l.265.562-4.257-4.257a.98.98 0 01-.117-.445c0-.267.104-.517.292-.706a1.023 1.023 0 011.41 0zm8.887 2.06c-.375-.557-.902-.916-1.486-1.011a1.738 1.738 0 00-1.342.332c-.376.29-.61.656-.712 1.065a2.1 2.1 0 00-1.095-.562 1.776 1.776 0 00-.992.128l-2.636-2.636a1.883 1.883 0 00-2.658 0 1.862 1.862 0 00-.478.847 1.886 1.886 0 00-2.671-.012 1.867 1.867 0 00-.503.909c-.754-.754-1.992-.754-2.703-.044a1.881 1.881 0 000 2.658c-.288.12-.605.288-.864.547a1.884 1.884 0 000 2.659l.624.622a1.879 1.879 0 00-.91 3.16l5.019 5.02c1.595 1.594 3.515 2.645 5.408 2.959a7.16 7.16 0 001.173.098c1.026 0 1.997-.24 2.892-.7.279.04.555.065.828.065 1.53 0 2.969-.628 4.236-1.894 3.338-3.338 3.083-6.928 1.738-9.166l-2.868-5.043z"/></g></svg></span></span><span class="button-activeState"><span class="svgIcon svgIcon--clapFilled svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25" ><g fill-rule="evenodd"><path d="M11.738 0l.762 2.966L13.262 0z"/><path d="M16.634 1.224l-1.432-.47-.408 3.022z"/><path d="M9.79.754l-1.431.47 1.84 2.552z"/><path d="M22.472 13.307l-3.023-5.32c-.287-.426-.689-.705-1.123-.776a1.16 1.16 0 00-.911.221c-.297.231-.474.515-.535.84.017.022.036.04.053.063l2.843 5.001c1.95 3.564 1.328 6.973-1.843 10.144a8.46 8.46 0 01-.549.501c1.205-.156 2.328-.737 3.351-1.76 3.268-3.268 3.041-6.749 1.737-8.914"/><path d="M12.58 9.887c-.156-.83.096-1.569.692-2.142L10.78 5.252c-.5-.504-1.378-.504-1.879 0-.178.18-.273.4-.329.63l4.008 4.005z"/><path d="M15.812 9.04c-.218-.323-.539-.55-.88-.606a.814.814 0 00-.644.153c-.176.137-.713.553-.24 1.566l1.43 3.025a.539.539 0 11-.868.612L7.2 6.378a.986.986 0 10-1.395 1.395l4.401 4.403a.538.538 0 11-.762.762L5.046 8.54 3.802 7.295a.99.99 0 00-1.396 0 .981.981 0 000 1.394L3.647 9.93l4.402 4.403a.537.537 0 010 .761.535.535 0 01-.762 0L2.89 10.696a.992.992 0 00-1.399-.003.983.983 0 000 1.395l1.855 1.854 2.763 2.765a.538.538 0 01-.76.761l-2.765-2.764a.982.982 0 00-1.395 0 .989.989 0 000 1.395l5.32 5.32c3.371 3.372 6.64 4.977 10.49 1.126C19.74 19.8 20.271 17 18.62 13.982L15.812 9.04z"/></g></svg></span></span></button></div><span class="u-relative u-background js-actionMultirecommendCount u-marginLeft5"><button class="button button--chromeless u-baseColor--buttonNormal js-multirecommendCountButton u-disablePointerEvents" data-action="show-recommends" data-action-value="51866ffd0bd8">167</button></span></div></div><div class="buttonSet u-floatRight"><a class="button button--chromeless u-baseColor--buttonNormal" href="https://medium.com/androiddevelopers/now-in-android-92-51866ffd0bd8?source=---------3-----------------------#--responses" data-action-source="---------3-----------------------">1 response</a><button class="button button--dark button--chromeless is-touchIconFadeInPulse u-baseColor--buttonDark button--withIcon button--withSvgIcon button--bookmark js-bookmarkButton" data-action="add-to-bookmarks" data-action-value="51866ffd0bd8"><span class="js-remove-from-bookmarks u-hide"><span class="svgIcon svgIcon--bookmarkFilled svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25" ><path d="M19 6c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v14.66h.012c.01.103.045.204.12.285a.5.5 0 00.706.03L12.5 16.85l5.662 4.126c.205.183.52.17.708-.03a.5.5 0 00.118-.285H19V6z"/></svg></span></span><span class="js-add-to-bookmarks"><span class="svgIcon svgIcon--bookmarkAdd svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25" fill="none" ><path d="M18 2.5a.5.5 0 011 0V5h2.5a.5.5 0 010 1H19v2.5a.5.5 0 11-1 0V6h-2.5a.5.5 0 010-1H18V2.5z" fill="#292929"/><path d="M7 7a1 1 0 011-1h3.5a.5.5 0 000-1H8a2 2 0 00-2 2v14a.5.5 0 00.805.396L12.5 17l5.695 4.396A.5.5 0 0019 21v-8.5a.5.5 0 00-1 0v7.485l-5.195-4.012a.5.5 0 00-.61 0L7 19.985V7z" fill="#292929"/></svg></span></span></button></div></div></div></div></div><div class="streamItem streamItem--postPreview js-streamItem"><div class="cardChromeless u-marginTop20 u-paddingTop10 u-paddingBottom15 u-paddingLeft20 u-paddingRight20"><div class="postArticle postArticle--short js-postArticle js-trackPostPresentation js-trackPostScrolls" data-post-id="f631b7564edb" data-source="---------4-----------------------"><div class="u-clearfix u-marginBottom15 u-paddingTop5"><div class="postMetaInline u-floatLeft u-sm-maxWidthFullWidth"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar" href="https://medium.com/@m_moczkowski" data-action="show-user-card" data-action-value="d890863f77e3" data-action-type="hover" data-user-id="d890863f77e3" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/72/72/0*fmLwgH8ZcGjrJXqc.jpg" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of Milosz Moczkowski"></a></div><div class="postMetaInline postMetaInline-authorLockup ui-captionStrong u-flex1 u-noWrapWithEllipsis"><a class="ds-link ds-link--styleSubtle link link--darken link--accent u-accentColor--textNormal u-accentColor--textDarken" href="https://medium.com/@m_moczkowski?source=---------4-----------------------" data-action="show-user-card" data-action-source="---------4-----------------------" data-action-value="d890863f77e3" data-action-type="hover" data-user-id="d890863f77e3" dir="auto">Milosz Moczkowski</a> in <a class="ds-link ds-link--styleSubtle link--darken link--accent u-accentColor--textNormal" href="https://medium.com/androiddevelopers?source=---------4-----------------------" data-action="show-collection-card" data-action-source="---------4-----------------------" data-action-value="androiddevelopers" data-action-type="hover">Android Developers</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><a class="link link--darken" href="https://medium.com/androiddevelopers/now-in-android-88-f631b7564edb?source=---------4-----------------------" data-action="open-post" data-action-value="https://medium.com/androiddevelopers/now-in-android-88-f631b7564edb?source=---------4-----------------------" data-action-source="preview-listing" ><time datetime="2023-08-09T21:21:26.600Z">Aug 9, 2023</time></a><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="4 min read"></span></div></div></div></div></div><div><a class="" href="https://medium.com/androiddevelopers/now-in-android-88-f631b7564edb?source=---------4-----------------------" data-action-source="---------4-----------------------"><div class="postArticle-content js-postField"><section class="section section--body section--first section--last"><div class="section-divider"><hr class="section-divider"></div><div class="section-content"><div class="section-inner sectionLayout--insetColumn"><figure name="previewImage" id="previewImage" class="graf graf--figure graf--layoutCroppedHeightPreview graf--leading"><div class="aspectRatioPlaceholder is-locked"><div class="aspectRatioPlaceholder-fill" style="padding-bottom: 30%;"></div><img class="graf-image" data-image-id="1*aIux1an8zPUXIhTLY7psfw.png" data-width="1600" data-height="477" data-is-featured="true" src="https://cdn-images-1.medium.com/fit/t/1600/480/1*aIux1an8zPUXIhTLY7psfw.png"></div></figure><h3 name="previewTitle" id="previewTitle" class="graf graf--h3 graf-after--figure graf--title">Now in Android #88</h3><h4 name="previewSubtitle" id="previewSubtitle" class="graf graf--h4 graf-after--h3 graf--trailing graf--subtitle">Android Studio Giraffe, K2 Compiler, Compose Live Edit and more!</h4></div></div></section></div></a></div><div class="postArticle-readMore"><a class="button button--smaller button--chromeless u-baseColor--buttonNormal" href="https://medium.com/androiddevelopers/now-in-android-88-f631b7564edb?source=---------4-----------------------" data-action="open-post" data-action-source="---------4-----------------------" data-action-value="https://medium.com/androiddevelopers/now-in-android-88-f631b7564edb?source=---------4-----------------------" data-post-id="f631b7564edb">Read more…</a></div><div class="u-clearfix u-paddingTop10"><div class="u-floatLeft"><div class="multirecommend js-actionMultirecommend u-flexCenter" data-post-id="f631b7564edb" data-is-flush-left="true" data-source="listing-----f631b7564edb---------------------clap_preview"><div class="u-relative u-foreground"><button class="button button--primary button--chromeless u-accentColor--buttonNormal button--withIcon button--withSvgIcon clapButton js-actionMultirecommendButton clapButton--darker" data-action="sign-up-prompt" data-sign-in-action="multivote" data-requires-token="true" data-redirect="https://medium.com/_/vote/p/f631b7564edb" data-action-source="listing-----f631b7564edb---------------------clap_preview" aria-label="Clap"><span class="button-defaultState"><span class="svgIcon svgIcon--clap svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25" ><g fill-rule="evenodd"><path d="M11.739 0l.761 2.966L13.261 0z"/><path d="M14.815 3.776l1.84-2.551-1.43-.471z"/><path d="M8.378 1.224l1.84 2.551L9.81.753z"/><path d="M20.382 21.622c-1.04 1.04-2.115 1.507-3.166 1.608.168-.14.332-.29.492-.45 2.885-2.886 3.456-5.982 1.69-9.211l-1.101-1.937-.955-2.02c-.315-.676-.235-1.185.245-1.556a.836.836 0 01.66-.16c.342.056.66.28.879.605l2.856 5.023c1.179 1.962 1.379 5.119-1.6 8.098m-13.29-.528l-5.02-5.02a1 1 0 01.707-1.701c.255 0 .512.098.707.292l2.607 2.607a.442.442 0 00.624-.624L4.11 14.04l-1.75-1.75a.998.998 0 111.41-1.413l4.154 4.156a.44.44 0 00.624 0 .44.44 0 000-.624l-4.152-4.153-1.172-1.171a.998.998 0 010-1.41 1.018 1.018 0 011.41 0l1.172 1.17 4.153 4.152a.437.437 0 00.624 0 .442.442 0 000-.624L6.43 8.222a.988.988 0 01-.291-.705.99.99 0 01.29-.706 1 1 0 011.412 0l6.992 6.993a.443.443 0 00.71-.501l-1.35-2.856c-.315-.676-.235-1.185.246-1.557a.85.85 0 01.66-.16c.342.056.659.28.879.606L18.628 14c1.573 2.876 1.067 5.545-1.544 8.156-1.396 1.397-3.144 1.966-5.063 1.652-1.713-.286-3.463-1.248-4.928-2.714zM10.99 5.976l2.562 2.562c-.497.607-.563 1.414-.155 2.284l.265.562-4.257-4.257a.98.98 0 01-.117-.445c0-.267.104-.517.292-.706a1.023 1.023 0 011.41 0zm8.887 2.06c-.375-.557-.902-.916-1.486-1.011a1.738 1.738 0 00-1.342.332c-.376.29-.61.656-.712 1.065a2.1 2.1 0 00-1.095-.562 1.776 1.776 0 00-.992.128l-2.636-2.636a1.883 1.883 0 00-2.658 0 1.862 1.862 0 00-.478.847 1.886 1.886 0 00-2.671-.012 1.867 1.867 0 00-.503.909c-.754-.754-1.992-.754-2.703-.044a1.881 1.881 0 000 2.658c-.288.12-.605.288-.864.547a1.884 1.884 0 000 2.659l.624.622a1.879 1.879 0 00-.91 3.16l5.019 5.02c1.595 1.594 3.515 2.645 5.408 2.959a7.16 7.16 0 001.173.098c1.026 0 1.997-.24 2.892-.7.279.04.555.065.828.065 1.53 0 2.969-.628 4.236-1.894 3.338-3.338 3.083-6.928 1.738-9.166l-2.868-5.043z"/></g></svg></span></span><span class="button-activeState"><span class="svgIcon svgIcon--clapFilled svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25" ><g fill-rule="evenodd"><path d="M11.738 0l.762 2.966L13.262 0z"/><path d="M16.634 1.224l-1.432-.47-.408 3.022z"/><path d="M9.79.754l-1.431.47 1.84 2.552z"/><path d="M22.472 13.307l-3.023-5.32c-.287-.426-.689-.705-1.123-.776a1.16 1.16 0 00-.911.221c-.297.231-.474.515-.535.84.017.022.036.04.053.063l2.843 5.001c1.95 3.564 1.328 6.973-1.843 10.144a8.46 8.46 0 01-.549.501c1.205-.156 2.328-.737 3.351-1.76 3.268-3.268 3.041-6.749 1.737-8.914"/><path d="M12.58 9.887c-.156-.83.096-1.569.692-2.142L10.78 5.252c-.5-.504-1.378-.504-1.879 0-.178.18-.273.4-.329.63l4.008 4.005z"/><path d="M15.812 9.04c-.218-.323-.539-.55-.88-.606a.814.814 0 00-.644.153c-.176.137-.713.553-.24 1.566l1.43 3.025a.539.539 0 11-.868.612L7.2 6.378a.986.986 0 10-1.395 1.395l4.401 4.403a.538.538 0 11-.762.762L5.046 8.54 3.802 7.295a.99.99 0 00-1.396 0 .981.981 0 000 1.394L3.647 9.93l4.402 4.403a.537.537 0 010 .761.535.535 0 01-.762 0L2.89 10.696a.992.992 0 00-1.399-.003.983.983 0 000 1.395l1.855 1.854 2.763 2.765a.538.538 0 01-.76.761l-2.765-2.764a.982.982 0 00-1.395 0 .989.989 0 000 1.395l5.32 5.32c3.371 3.372 6.64 4.977 10.49 1.126C19.74 19.8 20.271 17 18.62 13.982L15.812 9.04z"/></g></svg></span></span></button></div><span class="u-relative u-background js-actionMultirecommendCount u-marginLeft5"><button class="button button--chromeless u-baseColor--buttonNormal js-multirecommendCountButton u-disablePointerEvents" data-action="show-recommends" data-action-value="f631b7564edb">154</button></span></div></div><div class="buttonSet u-floatRight"><a class="button button--chromeless u-baseColor--buttonNormal" href="https://medium.com/androiddevelopers/now-in-android-88-f631b7564edb?source=---------4-----------------------#--responses" data-action-source="---------4-----------------------">1 response</a><button class="button button--dark button--chromeless is-touchIconFadeInPulse u-baseColor--buttonDark button--withIcon button--withSvgIcon button--bookmark js-bookmarkButton" data-action="add-to-bookmarks" data-action-value="f631b7564edb"><span class="js-remove-from-bookmarks u-hide"><span class="svgIcon svgIcon--bookmarkFilled svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25" ><path d="M19 6c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v14.66h.012c.01.103.045.204.12.285a.5.5 0 00.706.03L12.5 16.85l5.662 4.126c.205.183.52.17.708-.03a.5.5 0 00.118-.285H19V6z"/></svg></span></span><span class="js-add-to-bookmarks"><span class="svgIcon svgIcon--bookmarkAdd svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25" fill="none" ><path d="M18 2.5a.5.5 0 011 0V5h2.5a.5.5 0 010 1H19v2.5a.5.5 0 11-1 0V6h-2.5a.5.5 0 010-1H18V2.5z" fill="#292929"/><path d="M7 7a1 1 0 011-1h3.5a.5.5 0 000-1H8a2 2 0 00-2 2v14a.5.5 0 00.805.396L12.5 17l5.695 4.396A.5.5 0 0019 21v-8.5a.5.5 0 00-1 0v7.485l-5.195-4.012a.5.5 0 00-.61 0L7 19.985V7z" fill="#292929"/></svg></span></span></button></div></div></div></div></div><div class="streamItem streamItem--postPreview js-streamItem"><div class="cardChromeless u-marginTop20 u-paddingTop10 u-paddingBottom15 u-paddingLeft20 u-paddingRight20"><div class="postArticle postArticle--short js-postArticle js-trackPostPresentation js-trackPostScrolls" data-post-id="e4bbe977d33f" data-source="---------5-----------------------"><div class="u-clearfix u-marginBottom15 u-paddingTop5"><div class="postMetaInline u-floatLeft u-sm-maxWidthFullWidth"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar" href="https://medium.com/@manuelvicnt" data-action="show-user-card" data-action-value="3b5622dd813c" data-action-type="hover" data-user-id="3b5622dd813c" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/72/72/1*jIuNkwfzLBQ_EolcjHYSNg.jpeg" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of Manuel Vivo"></a></div><div class="postMetaInline postMetaInline-authorLockup ui-captionStrong u-flex1 u-noWrapWithEllipsis"><a class="ds-link ds-link--styleSubtle link link--darken link--accent u-accentColor--textNormal u-accentColor--textDarken" href="https://medium.com/@manuelvicnt?source=---------5-----------------------" data-action="show-user-card" data-action-source="---------5-----------------------" data-action-value="3b5622dd813c" data-action-type="hover" data-user-id="3b5622dd813c" dir="auto">Manuel Vivo</a> in <a class="ds-link ds-link--styleSubtle link--darken link--accent u-accentColor--textNormal" href="https://medium.com/androiddevelopers?source=---------5-----------------------" data-action="show-collection-card" data-action-source="---------5-----------------------" data-action-value="androiddevelopers" data-action-type="hover">Android Developers</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><a class="link link--darken" href="https://medium.com/androiddevelopers/now-in-android-75-e4bbe977d33f?source=---------5-----------------------" data-action="open-post" data-action-value="https://medium.com/androiddevelopers/now-in-android-75-e4bbe977d33f?source=---------5-----------------------" data-action-source="preview-listing" ><time datetime="2023-01-18T22:32:24.080Z">Jan 18, 2023</time></a><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="4 min read"></span></div></div></div></div></div><div><a class="" href="https://medium.com/androiddevelopers/now-in-android-75-e4bbe977d33f?source=---------5-----------------------" data-action-source="---------5-----------------------"><div class="postArticle-content js-postField"><section class="section section--body section--first section--last"><div class="section-divider"><hr class="section-divider"></div><div class="section-content"><div class="section-inner sectionLayout--insetColumn"><figure name="previewImage" id="previewImage" class="graf graf--figure graf--layoutCroppedHeightPreview graf--leading"><div class="aspectRatioPlaceholder is-locked"><div class="aspectRatioPlaceholder-fill" style="padding-bottom: 30%;"></div><img class="graf-image" data-image-id="0*IdylXqMS2sF3Nh30" data-width="1600" data-height="477" data-is-featured="true" src="https://cdn-images-1.medium.com/fit/t/1600/480/0*IdylXqMS2sF3Nh30"></div></figure><h3 name="89f1" id="89f1" class="graf graf--h3 graf-after--figure graf--title">Now in Android #75</h3><h4 name="22f1" id="22f1" class="graf graf--h4 graf-after--h3 graf--trailing graf--subtitle"><span class="markup--anchor markup--h4-anchor" data-action="open-inner-link" data-action-value="https://developer.android.com/studio">Android Studio Electric Eel</a>, <span class="markup--anchor markup--h4-anchor" data-action="open-inner-link" data-action-value="http://goo.gle/mad-architecture-guide">Architecture</a>, <span class="markup--anchor markup--h4-anchor" data-action="open-inner-link" data-action-value="https://kotlinlang.org/docs/multiplatform.html">Kotlin Multiplatform</a>, <span class="markup--anchor markup--h4-anchor" data-action="open-inner-link" data-action-value="https://developer.android.com/wear">WearOS</a>, <span class="markup--anchor markup--h4-anchor" data-action="open-inner-link" data-action-value="https://developer.android.com/training/camerax">CameraX</a>…</h4></div></div></section></div></a></div><div class="postArticle-readMore"><a class="button button--smaller button--chromeless u-baseColor--buttonNormal" href="https://medium.com/androiddevelopers/now-in-android-75-e4bbe977d33f?source=---------5-----------------------" data-action="open-post" data-action-source="---------5-----------------------" data-action-value="https://medium.com/androiddevelopers/now-in-android-75-e4bbe977d33f?source=---------5-----------------------" data-post-id="e4bbe977d33f">Read more…</a></div><div class="u-clearfix u-paddingTop10"><div class="u-floatLeft"><div class="multirecommend js-actionMultirecommend u-flexCenter" data-post-id="e4bbe977d33f" data-is-flush-left="true" data-source="listing-----e4bbe977d33f---------------------clap_preview"><div class="u-relative u-foreground"><button class="button button--primary button--chromeless u-accentColor--buttonNormal button--withIcon button--withSvgIcon clapButton js-actionMultirecommendButton clapButton--darker" data-action="sign-up-prompt" data-sign-in-action="multivote" data-requires-token="true" data-redirect="https://medium.com/_/vote/p/e4bbe977d33f" data-action-source="listing-----e4bbe977d33f---------------------clap_preview" aria-label="Clap"><span class="button-defaultState"><span class="svgIcon svgIcon--clap svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25" ><g fill-rule="evenodd"><path d="M11.739 0l.761 2.966L13.261 0z"/><path d="M14.815 3.776l1.84-2.551-1.43-.471z"/><path d="M8.378 1.224l1.84 2.551L9.81.753z"/><path d="M20.382 21.622c-1.04 1.04-2.115 1.507-3.166 1.608.168-.14.332-.29.492-.45 2.885-2.886 3.456-5.982 1.69-9.211l-1.101-1.937-.955-2.02c-.315-.676-.235-1.185.245-1.556a.836.836 0 01.66-.16c.342.056.66.28.879.605l2.856 5.023c1.179 1.962 1.379 5.119-1.6 8.098m-13.29-.528l-5.02-5.02a1 1 0 01.707-1.701c.255 0 .512.098.707.292l2.607 2.607a.442.442 0 00.624-.624L4.11 14.04l-1.75-1.75a.998.998 0 111.41-1.413l4.154 4.156a.44.44 0 00.624 0 .44.44 0 000-.624l-4.152-4.153-1.172-1.171a.998.998 0 010-1.41 1.018 1.018 0 011.41 0l1.172 1.17 4.153 4.152a.437.437 0 00.624 0 .442.442 0 000-.624L6.43 8.222a.988.988 0 01-.291-.705.99.99 0 01.29-.706 1 1 0 011.412 0l6.992 6.993a.443.443 0 00.71-.501l-1.35-2.856c-.315-.676-.235-1.185.246-1.557a.85.85 0 01.66-.16c.342.056.659.28.879.606L18.628 14c1.573 2.876 1.067 5.545-1.544 8.156-1.396 1.397-3.144 1.966-5.063 1.652-1.713-.286-3.463-1.248-4.928-2.714zM10.99 5.976l2.562 2.562c-.497.607-.563 1.414-.155 2.284l.265.562-4.257-4.257a.98.98 0 01-.117-.445c0-.267.104-.517.292-.706a1.023 1.023 0 011.41 0zm8.887 2.06c-.375-.557-.902-.916-1.486-1.011a1.738 1.738 0 00-1.342.332c-.376.29-.61.656-.712 1.065a2.1 2.1 0 00-1.095-.562 1.776 1.776 0 00-.992.128l-2.636-2.636a1.883 1.883 0 00-2.658 0 1.862 1.862 0 00-.478.847 1.886 1.886 0 00-2.671-.012 1.867 1.867 0 00-.503.909c-.754-.754-1.992-.754-2.703-.044a1.881 1.881 0 000 2.658c-.288.12-.605.288-.864.547a1.884 1.884 0 000 2.659l.624.622a1.879 1.879 0 00-.91 3.16l5.019 5.02c1.595 1.594 3.515 2.645 5.408 2.959a7.16 7.16 0 001.173.098c1.026 0 1.997-.24 2.892-.7.279.04.555.065.828.065 1.53 0 2.969-.628 4.236-1.894 3.338-3.338 3.083-6.928 1.738-9.166l-2.868-5.043z"/></g></svg></span></span><span class="button-activeState"><span class="svgIcon svgIcon--clapFilled svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25" ><g fill-rule="evenodd"><path d="M11.738 0l.762 2.966L13.262 0z"/><path d="M16.634 1.224l-1.432-.47-.408 3.022z"/><path d="M9.79.754l-1.431.47 1.84 2.552z"/><path d="M22.472 13.307l-3.023-5.32c-.287-.426-.689-.705-1.123-.776a1.16 1.16 0 00-.911.221c-.297.231-.474.515-.535.84.017.022.036.04.053.063l2.843 5.001c1.95 3.564 1.328 6.973-1.843 10.144a8.46 8.46 0 01-.549.501c1.205-.156 2.328-.737 3.351-1.76 3.268-3.268 3.041-6.749 1.737-8.914"/><path d="M12.58 9.887c-.156-.83.096-1.569.692-2.142L10.78 5.252c-.5-.504-1.378-.504-1.879 0-.178.18-.273.4-.329.63l4.008 4.005z"/><path d="M15.812 9.04c-.218-.323-.539-.55-.88-.606a.814.814 0 00-.644.153c-.176.137-.713.553-.24 1.566l1.43 3.025a.539.539 0 11-.868.612L7.2 6.378a.986.986 0 10-1.395 1.395l4.401 4.403a.538.538 0 11-.762.762L5.046 8.54 3.802 7.295a.99.99 0 00-1.396 0 .981.981 0 000 1.394L3.647 9.93l4.402 4.403a.537.537 0 010 .761.535.535 0 01-.762 0L2.89 10.696a.992.992 0 00-1.399-.003.983.983 0 000 1.395l1.855 1.854 2.763 2.765a.538.538 0 01-.76.761l-2.765-2.764a.982.982 0 00-1.395 0 .989.989 0 000 1.395l5.32 5.32c3.371 3.372 6.64 4.977 10.49 1.126C19.74 19.8 20.271 17 18.62 13.982L15.812 9.04z"/></g></svg></span></span></button></div><span class="u-relative u-background js-actionMultirecommendCount u-marginLeft5"><button class="button button--chromeless u-baseColor--buttonNormal js-multirecommendCountButton u-disablePointerEvents" data-action="show-recommends" data-action-value="e4bbe977d33f">88</button></span></div></div><div class="buttonSet u-floatRight"><a class="button button--chromeless u-baseColor--buttonNormal" href="https://medium.com/androiddevelopers/now-in-android-75-e4bbe977d33f?source=---------5-----------------------#--responses" data-action-source="---------5-----------------------">1 response</a><button class="button button--dark button--chromeless is-touchIconFadeInPulse u-baseColor--buttonDark button--withIcon button--withSvgIcon button--bookmark js-bookmarkButton" data-action="add-to-bookmarks" data-action-value="e4bbe977d33f"><span class="js-remove-from-bookmarks u-hide"><span class="svgIcon svgIcon--bookmarkFilled svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25" ><path d="M19 6c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v14.66h.012c.01.103.045.204.12.285a.5.5 0 00.706.03L12.5 16.85l5.662 4.126c.205.183.52.17.708-.03a.5.5 0 00.118-.285H19V6z"/></svg></span></span><span class="js-add-to-bookmarks"><span class="svgIcon svgIcon--bookmarkAdd svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25" fill="none" ><path d="M18 2.5a.5.5 0 011 0V5h2.5a.5.5 0 010 1H19v2.5a.5.5 0 11-1 0V6h-2.5a.5.5 0 010-1H18V2.5z" fill="#292929"/><path d="M7 7a1 1 0 011-1h3.5a.5.5 0 000-1H8a2 2 0 00-2 2v14a.5.5 0 00.805.396L12.5 17l5.695 4.396A.5.5 0 0019 21v-8.5a.5.5 0 00-1 0v7.485l-5.195-4.012a.5.5 0 00-.61 0L7 19.985V7z" fill="#292929"/></svg></span></span></button></div></div></div></div></div><div class="streamItem streamItem--postPreview js-streamItem"><div class="cardChromeless u-marginTop20 u-paddingTop10 u-paddingBottom15 u-paddingLeft20 u-paddingRight20"><div class="postArticle postArticle--short js-postArticle js-trackPostPresentation js-trackPostScrolls" data-post-id="1264346619ec" data-source="---------6-----------------------"><div class="u-clearfix u-marginBottom15 u-paddingTop5"><div class="postMetaInline u-floatLeft u-sm-maxWidthFullWidth"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar" href="https://medium.com/@AndroidDev" data-action="show-user-card" data-action-value="e1f26db83092" data-action-type="hover" data-user-id="e1f26db83092" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/72/72/1*VglQS9HKgUvUuAX36Np5qQ.png" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of Android Developers"></a></div><div class="postMetaInline postMetaInline-authorLockup ui-captionStrong u-flex1 u-noWrapWithEllipsis"><a class="ds-link ds-link--styleSubtle link link--darken link--accent u-accentColor--textNormal u-accentColor--textDarken" href="https://medium.com/@AndroidDev?source=---------6-----------------------" data-action="show-user-card" data-action-source="---------6-----------------------" data-action-value="e1f26db83092" data-action-type="hover" data-user-id="e1f26db83092" dir="auto">Android Developers</a> in <a class="ds-link ds-link--styleSubtle link--darken link--accent u-accentColor--textNormal" href="https://medium.com/androiddevelopers?source=---------6-----------------------" data-action="show-collection-card" data-action-source="---------6-----------------------" data-action-value="androiddevelopers" data-action-type="hover">Android Developers</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><a class="link link--darken" href="https://medium.com/androiddevelopers/migrating-the-aosp-quicksearchbox-app-to-kotlin-1264346619ec?source=---------6-----------------------" data-action="open-post" data-action-value="https://medium.com/androiddevelopers/migrating-the-aosp-quicksearchbox-app-to-kotlin-1264346619ec?source=---------6-----------------------" data-action-source="preview-listing" ><time datetime="2022-09-23T20:00:28.638Z">Sep 23, 2022</time></a><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="8 min read"></span></div></div></div></div></div><div><a class="" href="https://medium.com/androiddevelopers/migrating-the-aosp-quicksearchbox-app-to-kotlin-1264346619ec?source=---------6-----------------------" data-action-source="---------6-----------------------"><div class="postArticle-content js-postField"><section class="section section--body section--first section--last"><div class="section-divider"><hr class="section-divider"></div><div class="section-content"><div class="section-inner sectionLayout--insetColumn"><figure name="previewImage" id="previewImage" class="graf graf--figure graf--layoutCroppedHeightPreview graf--leading"><div class="aspectRatioPlaceholder is-locked"><div class="aspectRatioPlaceholder-fill" style="padding-bottom: 30%;"></div><img class="graf-image" data-image-id="1*cWnPe-kD4hAVuH3IIcNUcA.png" data-width="720" data-height="214" data-is-featured="true" src="https://cdn-images-1.medium.com/fit/t/1600/480/1*cWnPe-kD4hAVuH3IIcNUcA.png"></div></figure><h3 name="1896" id="1896" class="graf graf--h3 graf-after--figure graf--trailing graf--title"><em class="markup--em markup--h3-em">Migrating the AOSP QuickSearchBox App to Kotlin</em></h3></div></div></section></div></a></div><div class="postArticle-readMore"><a class="button button--smaller button--chromeless u-baseColor--buttonNormal" href="https://medium.com/androiddevelopers/migrating-the-aosp-quicksearchbox-app-to-kotlin-1264346619ec?source=---------6-----------------------" data-action="open-post" data-action-source="---------6-----------------------" data-action-value="https://medium.com/androiddevelopers/migrating-the-aosp-quicksearchbox-app-to-kotlin-1264346619ec?source=---------6-----------------------" data-post-id="1264346619ec">Read more…</a></div><div class="u-clearfix u-paddingTop10"><div class="u-floatLeft"><div class="multirecommend js-actionMultirecommend u-flexCenter" data-post-id="1264346619ec" data-is-flush-left="true" data-source="listing-----1264346619ec---------------------clap_preview"><div class="u-relative u-foreground"><button class="button button--primary button--chromeless u-accentColor--buttonNormal button--withIcon button--withSvgIcon clapButton js-actionMultirecommendButton clapButton--darker" data-action="sign-up-prompt" data-sign-in-action="multivote" data-requires-token="true" data-redirect="https://medium.com/_/vote/p/1264346619ec" data-action-source="listing-----1264346619ec---------------------clap_preview" aria-label="Clap"><span class="button-defaultState"><span class="svgIcon svgIcon--clap svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25" ><g fill-rule="evenodd"><path d="M11.739 0l.761 2.966L13.261 0z"/><path d="M14.815 3.776l1.84-2.551-1.43-.471z"/><path d="M8.378 1.224l1.84 2.551L9.81.753z"/><path d="M20.382 21.622c-1.04 1.04-2.115 1.507-3.166 1.608.168-.14.332-.29.492-.45 2.885-2.886 3.456-5.982 1.69-9.211l-1.101-1.937-.955-2.02c-.315-.676-.235-1.185.245-1.556a.836.836 0 01.66-.16c.342.056.66.28.879.605l2.856 5.023c1.179 1.962 1.379 5.119-1.6 8.098m-13.29-.528l-5.02-5.02a1 1 0 01.707-1.701c.255 0 .512.098.707.292l2.607 2.607a.442.442 0 00.624-.624L4.11 14.04l-1.75-1.75a.998.998 0 111.41-1.413l4.154 4.156a.44.44 0 00.624 0 .44.44 0 000-.624l-4.152-4.153-1.172-1.171a.998.998 0 010-1.41 1.018 1.018 0 011.41 0l1.172 1.17 4.153 4.152a.437.437 0 00.624 0 .442.442 0 000-.624L6.43 8.222a.988.988 0 01-.291-.705.99.99 0 01.29-.706 1 1 0 011.412 0l6.992 6.993a.443.443 0 00.71-.501l-1.35-2.856c-.315-.676-.235-1.185.246-1.557a.85.85 0 01.66-.16c.342.056.659.28.879.606L18.628 14c1.573 2.876 1.067 5.545-1.544 8.156-1.396 1.397-3.144 1.966-5.063 1.652-1.713-.286-3.463-1.248-4.928-2.714zM10.99 5.976l2.562 2.562c-.497.607-.563 1.414-.155 2.284l.265.562-4.257-4.257a.98.98 0 01-.117-.445c0-.267.104-.517.292-.706a1.023 1.023 0 011.41 0zm8.887 2.06c-.375-.557-.902-.916-1.486-1.011a1.738 1.738 0 00-1.342.332c-.376.29-.61.656-.712 1.065a2.1 2.1 0 00-1.095-.562 1.776 1.776 0 00-.992.128l-2.636-2.636a1.883 1.883 0 00-2.658 0 1.862 1.862 0 00-.478.847 1.886 1.886 0 00-2.671-.012 1.867 1.867 0 00-.503.909c-.754-.754-1.992-.754-2.703-.044a1.881 1.881 0 000 2.658c-.288.12-.605.288-.864.547a1.884 1.884 0 000 2.659l.624.622a1.879 1.879 0 00-.91 3.16l5.019 5.02c1.595 1.594 3.515 2.645 5.408 2.959a7.16 7.16 0 001.173.098c1.026 0 1.997-.24 2.892-.7.279.04.555.065.828.065 1.53 0 2.969-.628 4.236-1.894 3.338-3.338 3.083-6.928 1.738-9.166l-2.868-5.043z"/></g></svg></span></span><span class="button-activeState"><span class="svgIcon svgIcon--clapFilled svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25" ><g fill-rule="evenodd"><path d="M11.738 0l.762 2.966L13.262 0z"/><path d="M16.634 1.224l-1.432-.47-.408 3.022z"/><path d="M9.79.754l-1.431.47 1.84 2.552z"/><path d="M22.472 13.307l-3.023-5.32c-.287-.426-.689-.705-1.123-.776a1.16 1.16 0 00-.911.221c-.297.231-.474.515-.535.84.017.022.036.04.053.063l2.843 5.001c1.95 3.564 1.328 6.973-1.843 10.144a8.46 8.46 0 01-.549.501c1.205-.156 2.328-.737 3.351-1.76 3.268-3.268 3.041-6.749 1.737-8.914"/><path d="M12.58 9.887c-.156-.83.096-1.569.692-2.142L10.78 5.252c-.5-.504-1.378-.504-1.879 0-.178.18-.273.4-.329.63l4.008 4.005z"/><path d="M15.812 9.04c-.218-.323-.539-.55-.88-.606a.814.814 0 00-.644.153c-.176.137-.713.553-.24 1.566l1.43 3.025a.539.539 0 11-.868.612L7.2 6.378a.986.986 0 10-1.395 1.395l4.401 4.403a.538.538 0 11-.762.762L5.046 8.54 3.802 7.295a.99.99 0 00-1.396 0 .981.981 0 000 1.394L3.647 9.93l4.402 4.403a.537.537 0 010 .761.535.535 0 01-.762 0L2.89 10.696a.992.992 0 00-1.399-.003.983.983 0 000 1.395l1.855 1.854 2.763 2.765a.538.538 0 01-.76.761l-2.765-2.764a.982.982 0 00-1.395 0 .989.989 0 000 1.395l5.32 5.32c3.371 3.372 6.64 4.977 10.49 1.126C19.74 19.8 20.271 17 18.62 13.982L15.812 9.04z"/></g></svg></span></span></button></div><span class="u-relative u-background js-actionMultirecommendCount u-marginLeft5"><button class="button button--chromeless u-baseColor--buttonNormal js-multirecommendCountButton u-disablePointerEvents" data-action="show-recommends" data-action-value="1264346619ec">335</button></span></div></div><div class="buttonSet u-floatRight"><a class="button button--chromeless u-baseColor--buttonNormal" href="https://medium.com/androiddevelopers/migrating-the-aosp-quicksearchbox-app-to-kotlin-1264346619ec?source=---------6-----------------------#--responses" data-action-source="---------6-----------------------">6 responses</a><button class="button button--dark button--chromeless is-touchIconFadeInPulse u-baseColor--buttonDark button--withIcon button--withSvgIcon button--bookmark js-bookmarkButton" data-action="add-to-bookmarks" data-action-value="1264346619ec"><span class="js-remove-from-bookmarks u-hide"><span class="svgIcon svgIcon--bookmarkFilled svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25" ><path d="M19 6c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v14.66h.012c.01.103.045.204.12.285a.5.5 0 00.706.03L12.5 16.85l5.662 4.126c.205.183.52.17.708-.03a.5.5 0 00.118-.285H19V6z"/></svg></span></span><span class="js-add-to-bookmarks"><span class="svgIcon svgIcon--bookmarkAdd svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25" fill="none" ><path d="M18 2.5a.5.5 0 011 0V5h2.5a.5.5 0 010 1H19v2.5a.5.5 0 11-1 0V6h-2.5a.5.5 0 010-1H18V2.5z" fill="#292929"/><path d="M7 7a1 1 0 011-1h3.5a.5.5 0 000-1H8a2 2 0 00-2 2v14a.5.5 0 00.805.396L12.5 17l5.695 4.396A.5.5 0 0019 21v-8.5a.5.5 0 00-1 0v7.485l-5.195-4.012a.5.5 0 00-.61 0L7 19.985V7z" fill="#292929"/></svg></span></span></button></div></div></div></div></div><div class="streamItem streamItem--postPreview js-streamItem"><div class="cardChromeless u-marginTop20 u-paddingTop10 u-paddingBottom15 u-paddingLeft20 u-paddingRight20"><div class="postArticle postArticle--short js-postArticle js-trackPostPresentation js-trackPostScrolls" data-post-id="fdfc7ab8827c" data-source="---------7-----------------------"><div class="u-clearfix u-marginBottom15 u-paddingTop5"><div class="postMetaInline u-floatLeft u-sm-maxWidthFullWidth"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar" href="https://medium.com/@dagalpin" data-action="show-user-card" data-action-value="2e0fc9a4a8c2" data-action-type="hover" data-user-id="2e0fc9a4a8c2" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/72/72/1*9j85cICWzDQeY8Nb4QrL4Q.jpeg" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of Daniel Galpin"></a></div><div class="postMetaInline postMetaInline-authorLockup ui-captionStrong u-flex1 u-noWrapWithEllipsis"><a class="ds-link ds-link--styleSubtle link link--darken link--accent u-accentColor--textNormal u-accentColor--textDarken" href="https://medium.com/@dagalpin?source=---------7-----------------------" data-action="show-user-card" data-action-source="---------7-----------------------" data-action-value="2e0fc9a4a8c2" data-action-type="hover" data-user-id="2e0fc9a4a8c2" dir="auto">Daniel Galpin</a> in <a class="ds-link ds-link--styleSubtle link--darken link--accent u-accentColor--textNormal" href="https://medium.com/androiddevelopers?source=---------7-----------------------" data-action="show-collection-card" data-action-source="---------7-----------------------" data-action-value="androiddevelopers" data-action-type="hover">Android Developers</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><a class="link link--darken" href="https://medium.com/androiddevelopers/now-in-android-67-fdfc7ab8827c?source=---------7-----------------------" data-action="open-post" data-action-value="https://medium.com/androiddevelopers/now-in-android-67-fdfc7ab8827c?source=---------7-----------------------" data-action-source="preview-listing" ><time datetime="2022-09-01T14:38:12.363Z">Sep 1, 2022</time></a><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="6 min read"></span></div></div></div></div></div><div><a class="" href="https://medium.com/androiddevelopers/now-in-android-67-fdfc7ab8827c?source=---------7-----------------------" data-action-source="---------7-----------------------"><div class="postArticle-content js-postField"><section class="section section--body section--first section--last"><div class="section-divider"><hr class="section-divider"></div><div class="section-content"><div class="section-inner sectionLayout--insetColumn"><figure name="previewImage" id="previewImage" class="graf graf--figure graf--layoutCroppedHeightPreview graf--leading"><div class="aspectRatioPlaceholder is-locked"><div class="aspectRatioPlaceholder-fill" style="padding-bottom: 30%;"></div><img class="graf-image" data-image-id="0*ED8Bev4rqCJPcTp2" data-width="1600" data-height="476" data-is-featured="true" src="https://cdn-images-1.medium.com/fit/t/1600/480/0*ED8Bev4rqCJPcTp2"></div></figure><h3 name="9246" id="9246" class="graf graf--h3 graf-after--figure graf--title">Now in Android #67</h3><h4 name="b1ab" id="b1ab" class="graf graf--h4 graf-after--h3 graf--trailing graf--subtitle"><span class="markup--anchor markup--h4-anchor" data-action="open-inner-link" data-action-value="https://android-developers.googleblog.com/2022/07/announcing-cross-device-SDK-Developer-Preview-for-Android.html">Cross device SDK Developer Preview</a>, <span class="markup--anchor markup--h4-anchor" data-action="open-inner-link" data-action-value="https://android-developers.googleblog.com/2022/08/camerax-12-is-now-in-beta.html">CameraX 1.2 Beta</a>, <span class="markup--anchor markup--h4-anchor" data-action="open-inner-link" data-action-value="https://android-developers.googleblog.com/2022/08/wear-os-tiles-material-library-build-tiles-fast.html">WearOS Material Tiles</a>…</h4></div></div></section></div></a></div><div class="postArticle-readMore"><a class="button button--smaller button--chromeless u-baseColor--buttonNormal" href="https://medium.com/androiddevelopers/now-in-android-67-fdfc7ab8827c?source=---------7-----------------------" data-action="open-post" data-action-source="---------7-----------------------" data-action-value="https://medium.com/androiddevelopers/now-in-android-67-fdfc7ab8827c?source=---------7-----------------------" data-post-id="fdfc7ab8827c">Read more…</a></div><div class="u-clearfix u-paddingTop10"><div class="u-floatLeft"><div class="multirecommend js-actionMultirecommend u-flexCenter" data-post-id="fdfc7ab8827c" data-is-flush-left="true" data-source="listing-----fdfc7ab8827c---------------------clap_preview"><div class="u-relative u-foreground"><button class="button button--primary button--chromeless u-accentColor--buttonNormal button--withIcon button--withSvgIcon clapButton js-actionMultirecommendButton clapButton--darker" data-action="sign-up-prompt" data-sign-in-action="multivote" data-requires-token="true" data-redirect="https://medium.com/_/vote/p/fdfc7ab8827c" data-action-source="listing-----fdfc7ab8827c---------------------clap_preview" aria-label="Clap"><span class="button-defaultState"><span class="svgIcon svgIcon--clap svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25" ><g fill-rule="evenodd"><path d="M11.739 0l.761 2.966L13.261 0z"/><path d="M14.815 3.776l1.84-2.551-1.43-.471z"/><path d="M8.378 1.224l1.84 2.551L9.81.753z"/><path d="M20.382 21.622c-1.04 1.04-2.115 1.507-3.166 1.608.168-.14.332-.29.492-.45 2.885-2.886 3.456-5.982 1.69-9.211l-1.101-1.937-.955-2.02c-.315-.676-.235-1.185.245-1.556a.836.836 0 01.66-.16c.342.056.66.28.879.605l2.856 5.023c1.179 1.962 1.379 5.119-1.6 8.098m-13.29-.528l-5.02-5.02a1 1 0 01.707-1.701c.255 0 .512.098.707.292l2.607 2.607a.442.442 0 00.624-.624L4.11 14.04l-1.75-1.75a.998.998 0 111.41-1.413l4.154 4.156a.44.44 0 00.624 0 .44.44 0 000-.624l-4.152-4.153-1.172-1.171a.998.998 0 010-1.41 1.018 1.018 0 011.41 0l1.172 1.17 4.153 4.152a.437.437 0 00.624 0 .442.442 0 000-.624L6.43 8.222a.988.988 0 01-.291-.705.99.99 0 01.29-.706 1 1 0 011.412 0l6.992 6.993a.443.443 0 00.71-.501l-1.35-2.856c-.315-.676-.235-1.185.246-1.557a.85.85 0 01.66-.16c.342.056.659.28.879.606L18.628 14c1.573 2.876 1.067 5.545-1.544 8.156-1.396 1.397-3.144 1.966-5.063 1.652-1.713-.286-3.463-1.248-4.928-2.714zM10.99 5.976l2.562 2.562c-.497.607-.563 1.414-.155 2.284l.265.562-4.257-4.257a.98.98 0 01-.117-.445c0-.267.104-.517.292-.706a1.023 1.023 0 011.41 0zm8.887 2.06c-.375-.557-.902-.916-1.486-1.011a1.738 1.738 0 00-1.342.332c-.376.29-.61.656-.712 1.065a2.1 2.1 0 00-1.095-.562 1.776 1.776 0 00-.992.128l-2.636-2.636a1.883 1.883 0 00-2.658 0 1.862 1.862 0 00-.478.847 1.886 1.886 0 00-2.671-.012 1.867 1.867 0 00-.503.909c-.754-.754-1.992-.754-2.703-.044a1.881 1.881 0 000 2.658c-.288.12-.605.288-.864.547a1.884 1.884 0 000 2.659l.624.622a1.879 1.879 0 00-.91 3.16l5.019 5.02c1.595 1.594 3.515 2.645 5.408 2.959a7.16 7.16 0 001.173.098c1.026 0 1.997-.24 2.892-.7.279.04.555.065.828.065 1.53 0 2.969-.628 4.236-1.894 3.338-3.338 3.083-6.928 1.738-9.166l-2.868-5.043z"/></g></svg></span></span><span class="button-activeState"><span class="svgIcon svgIcon--clapFilled svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25" ><g fill-rule="evenodd"><path d="M11.738 0l.762 2.966L13.262 0z"/><path d="M16.634 1.224l-1.432-.47-.408 3.022z"/><path d="M9.79.754l-1.431.47 1.84 2.552z"/><path d="M22.472 13.307l-3.023-5.32c-.287-.426-.689-.705-1.123-.776a1.16 1.16 0 00-.911.221c-.297.231-.474.515-.535.84.017.022.036.04.053.063l2.843 5.001c1.95 3.564 1.328 6.973-1.843 10.144a8.46 8.46 0 01-.549.501c1.205-.156 2.328-.737 3.351-1.76 3.268-3.268 3.041-6.749 1.737-8.914"/><path d="M12.58 9.887c-.156-.83.096-1.569.692-2.142L10.78 5.252c-.5-.504-1.378-.504-1.879 0-.178.18-.273.4-.329.63l4.008 4.005z"/><path d="M15.812 9.04c-.218-.323-.539-.55-.88-.606a.814.814 0 00-.644.153c-.176.137-.713.553-.24 1.566l1.43 3.025a.539.539 0 11-.868.612L7.2 6.378a.986.986 0 10-1.395 1.395l4.401 4.403a.538.538 0 11-.762.762L5.046 8.54 3.802 7.295a.99.99 0 00-1.396 0 .981.981 0 000 1.394L3.647 9.93l4.402 4.403a.537.537 0 010 .761.535.535 0 01-.762 0L2.89 10.696a.992.992 0 00-1.399-.003.983.983 0 000 1.395l1.855 1.854 2.763 2.765a.538.538 0 01-.76.761l-2.765-2.764a.982.982 0 00-1.395 0 .989.989 0 000 1.395l5.32 5.32c3.371 3.372 6.64 4.977 10.49 1.126C19.74 19.8 20.271 17 18.62 13.982L15.812 9.04z"/></g></svg></span></span></button></div><span class="u-relative u-background js-actionMultirecommendCount u-marginLeft5"><button class="button button--chromeless u-baseColor--buttonNormal js-multirecommendCountButton u-disablePointerEvents" data-action="show-recommends" data-action-value="fdfc7ab8827c">59</button></span></div></div><div class="buttonSet u-floatRight"><button class="button button--dark button--chromeless is-touchIconFadeInPulse u-baseColor--buttonDark button--withIcon button--withSvgIcon button--bookmark js-bookmarkButton" data-action="add-to-bookmarks" data-action-value="fdfc7ab8827c"><span class="js-remove-from-bookmarks u-hide"><span class="svgIcon svgIcon--bookmarkFilled svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25" ><path d="M19 6c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v14.66h.012c.01.103.045.204.12.285a.5.5 0 00.706.03L12.5 16.85l5.662 4.126c.205.183.52.17.708-.03a.5.5 0 00.118-.285H19V6z"/></svg></span></span><span class="js-add-to-bookmarks"><span class="svgIcon svgIcon--bookmarkAdd svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25" fill="none" ><path d="M18 2.5a.5.5 0 011 0V5h2.5a.5.5 0 010 1H19v2.5a.5.5 0 11-1 0V6h-2.5a.5.5 0 010-1H18V2.5z" fill="#292929"/><path d="M7 7a1 1 0 011-1h3.5a.5.5 0 000-1H8a2 2 0 00-2 2v14a.5.5 0 00.805.396L12.5 17l5.695 4.396A.5.5 0 0019 21v-8.5a.5.5 0 00-1 0v7.485l-5.195-4.012a.5.5 0 00-.61 0L7 19.985V7z" fill="#292929"/></svg></span></span></button></div></div></div></div></div><div class="streamItem streamItem--postPreview js-streamItem"><div class="cardChromeless u-marginTop20 u-paddingTop10 u-paddingBottom15 u-paddingLeft20 u-paddingRight20"><div class="postArticle postArticle--short js-postArticle js-trackPostPresentation js-trackPostScrolls" data-post-id="a7dcd17480a9" data-source="---------8-----------------------"><div class="u-clearfix u-marginBottom15 u-paddingTop5"><div class="postMetaInline u-floatLeft u-sm-maxWidthFullWidth"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar" href="https://medium.com/@AndroidDev" data-action="show-user-card" data-action-value="e1f26db83092" data-action-type="hover" data-user-id="e1f26db83092" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/72/72/1*VglQS9HKgUvUuAX36Np5qQ.png" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of Android Developers"></a></div><div class="postMetaInline postMetaInline-authorLockup ui-captionStrong u-flex1 u-noWrapWithEllipsis"><a class="ds-link ds-link--styleSubtle link link--darken link--accent u-accentColor--textNormal u-accentColor--textDarken" href="https://medium.com/@AndroidDev?source=---------8-----------------------" data-action="show-user-card" data-action-source="---------8-----------------------" data-action-value="e1f26db83092" data-action-type="hover" data-user-id="e1f26db83092" dir="auto">Android Developers</a> in <a class="ds-link ds-link--styleSubtle link--darken link--accent u-accentColor--textNormal" href="https://medium.com/androiddevelopers?source=---------8-----------------------" data-action="show-collection-card" data-action-source="---------8-----------------------" data-action-value="androiddevelopers" data-action-type="hover">Android Developers</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><a class="link link--darken" href="https://medium.com/androiddevelopers/5-years-of-kotlin-on-android-the-extra-bits-a7dcd17480a9?source=---------8-----------------------" data-action="open-post" data-action-value="https://medium.com/androiddevelopers/5-years-of-kotlin-on-android-the-extra-bits-a7dcd17480a9?source=---------8-----------------------" data-action-source="preview-listing" ><time datetime="2022-08-17T17:02:16.692Z">Aug 17, 2022</time></a><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="9 min read"></span></div></div></div></div></div><div><a class="" href="https://medium.com/androiddevelopers/5-years-of-kotlin-on-android-the-extra-bits-a7dcd17480a9?source=---------8-----------------------" data-action-source="---------8-----------------------"><div class="postArticle-content js-postField"><section class="section section--body section--first section--last"><div class="section-divider"><hr class="section-divider"></div><div class="section-content"><div class="section-inner sectionLayout--insetColumn"><figure name="previewImage" id="previewImage" class="graf graf--figure graf--layoutCroppedHeightPreview graf--leading"><div class="aspectRatioPlaceholder is-locked"><div class="aspectRatioPlaceholder-fill" style="padding-bottom: 30%;"></div><img class="graf-image" data-image-id="1*CDq4uk7-5PeQkTQpgug8Rw.png" data-width="1999" data-height="601" data-is-featured="true" src="https://cdn-images-1.medium.com/fit/t/1600/480/1*CDq4uk7-5PeQkTQpgug8Rw.png"></div></figure><h3 name="1dd7" id="1dd7" class="graf graf--h3 graf-after--figure graf--trailing graf--title"><em class="markup--em markup--h3-em">5 years of Kotlin on Android — the extended interviews</em></h3></div></div></section></div></a></div><div class="postArticle-readMore"><a class="button button--smaller button--chromeless u-baseColor--buttonNormal" href="https://medium.com/androiddevelopers/5-years-of-kotlin-on-android-the-extra-bits-a7dcd17480a9?source=---------8-----------------------" data-action="open-post" data-action-source="---------8-----------------------" data-action-value="https://medium.com/androiddevelopers/5-years-of-kotlin-on-android-the-extra-bits-a7dcd17480a9?source=---------8-----------------------" data-post-id="a7dcd17480a9">Read more…</a></div><div class="u-clearfix u-paddingTop10"><div class="u-floatLeft"><div class="multirecommend js-actionMultirecommend u-flexCenter" data-post-id="a7dcd17480a9" data-is-flush-left="true" data-source="listing-----a7dcd17480a9---------------------clap_preview"><div class="u-relative u-foreground"><button class="button button--primary button--chromeless u-accentColor--buttonNormal button--withIcon button--withSvgIcon clapButton js-actionMultirecommendButton clapButton--darker" data-action="sign-up-prompt" data-sign-in-action="multivote" data-requires-token="true" data-redirect="https://medium.com/_/vote/p/a7dcd17480a9" data-action-source="listing-----a7dcd17480a9---------------------clap_preview" aria-label="Clap"><span class="button-defaultState"><span class="svgIcon svgIcon--clap svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25" ><g fill-rule="evenodd"><path d="M11.739 0l.761 2.966L13.261 0z"/><path d="M14.815 3.776l1.84-2.551-1.43-.471z"/><path d="M8.378 1.224l1.84 2.551L9.81.753z"/><path d="M20.382 21.622c-1.04 1.04-2.115 1.507-3.166 1.608.168-.14.332-.29.492-.45 2.885-2.886 3.456-5.982 1.69-9.211l-1.101-1.937-.955-2.02c-.315-.676-.235-1.185.245-1.556a.836.836 0 01.66-.16c.342.056.66.28.879.605l2.856 5.023c1.179 1.962 1.379 5.119-1.6 8.098m-13.29-.528l-5.02-5.02a1 1 0 01.707-1.701c.255 0 .512.098.707.292l2.607 2.607a.442.442 0 00.624-.624L4.11 14.04l-1.75-1.75a.998.998 0 111.41-1.413l4.154 4.156a.44.44 0 00.624 0 .44.44 0 000-.624l-4.152-4.153-1.172-1.171a.998.998 0 010-1.41 1.018 1.018 0 011.41 0l1.172 1.17 4.153 4.152a.437.437 0 00.624 0 .442.442 0 000-.624L6.43 8.222a.988.988 0 01-.291-.705.99.99 0 01.29-.706 1 1 0 011.412 0l6.992 6.993a.443.443 0 00.71-.501l-1.35-2.856c-.315-.676-.235-1.185.246-1.557a.85.85 0 01.66-.16c.342.056.659.28.879.606L18.628 14c1.573 2.876 1.067 5.545-1.544 8.156-1.396 1.397-3.144 1.966-5.063 1.652-1.713-.286-3.463-1.248-4.928-2.714zM10.99 5.976l2.562 2.562c-.497.607-.563 1.414-.155 2.284l.265.562-4.257-4.257a.98.98 0 01-.117-.445c0-.267.104-.517.292-.706a1.023 1.023 0 011.41 0zm8.887 2.06c-.375-.557-.902-.916-1.486-1.011a1.738 1.738 0 00-1.342.332c-.376.29-.61.656-.712 1.065a2.1 2.1 0 00-1.095-.562 1.776 1.776 0 00-.992.128l-2.636-2.636a1.883 1.883 0 00-2.658 0 1.862 1.862 0 00-.478.847 1.886 1.886 0 00-2.671-.012 1.867 1.867 0 00-.503.909c-.754-.754-1.992-.754-2.703-.044a1.881 1.881 0 000 2.658c-.288.12-.605.288-.864.547a1.884 1.884 0 000 2.659l.624.622a1.879 1.879 0 00-.91 3.16l5.019 5.02c1.595 1.594 3.515 2.645 5.408 2.959a7.16 7.16 0 001.173.098c1.026 0 1.997-.24 2.892-.7.279.04.555.065.828.065 1.53 0 2.969-.628 4.236-1.894 3.338-3.338 3.083-6.928 1.738-9.166l-2.868-5.043z"/></g></svg></span></span><span class="button-activeState"><span class="svgIcon svgIcon--clapFilled svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25" ><g fill-rule="evenodd"><path d="M11.738 0l.762 2.966L13.262 0z"/><path d="M16.634 1.224l-1.432-.47-.408 3.022z"/><path d="M9.79.754l-1.431.47 1.84 2.552z"/><path d="M22.472 13.307l-3.023-5.32c-.287-.426-.689-.705-1.123-.776a1.16 1.16 0 00-.911.221c-.297.231-.474.515-.535.84.017.022.036.04.053.063l2.843 5.001c1.95 3.564 1.328 6.973-1.843 10.144a8.46 8.46 0 01-.549.501c1.205-.156 2.328-.737 3.351-1.76 3.268-3.268 3.041-6.749 1.737-8.914"/><path d="M12.58 9.887c-.156-.83.096-1.569.692-2.142L10.78 5.252c-.5-.504-1.378-.504-1.879 0-.178.18-.273.4-.329.63l4.008 4.005z"/><path d="M15.812 9.04c-.218-.323-.539-.55-.88-.606a.814.814 0 00-.644.153c-.176.137-.713.553-.24 1.566l1.43 3.025a.539.539 0 11-.868.612L7.2 6.378a.986.986 0 10-1.395 1.395l4.401 4.403a.538.538 0 11-.762.762L5.046 8.54 3.802 7.295a.99.99 0 00-1.396 0 .981.981 0 000 1.394L3.647 9.93l4.402 4.403a.537.537 0 010 .761.535.535 0 01-.762 0L2.89 10.696a.992.992 0 00-1.399-.003.983.983 0 000 1.395l1.855 1.854 2.763 2.765a.538.538 0 01-.76.761l-2.765-2.764a.982.982 0 00-1.395 0 .989.989 0 000 1.395l5.32 5.32c3.371 3.372 6.64 4.977 10.49 1.126C19.74 19.8 20.271 17 18.62 13.982L15.812 9.04z"/></g></svg></span></span></button></div><span class="u-relative u-background js-actionMultirecommendCount u-marginLeft5"><button class="button button--chromeless u-baseColor--buttonNormal js-multirecommendCountButton u-disablePointerEvents" data-action="show-recommends" data-action-value="a7dcd17480a9">395</button></span></div></div><div class="buttonSet u-floatRight"><a class="button button--chromeless u-baseColor--buttonNormal" href="https://medium.com/androiddevelopers/5-years-of-kotlin-on-android-the-extra-bits-a7dcd17480a9?source=---------8-----------------------#--responses" data-action-source="---------8-----------------------">3 responses</a><button class="button button--dark button--chromeless is-touchIconFadeInPulse u-baseColor--buttonDark button--withIcon button--withSvgIcon button--bookmark js-bookmarkButton" data-action="add-to-bookmarks" data-action-value="a7dcd17480a9"><span class="js-remove-from-bookmarks u-hide"><span class="svgIcon svgIcon--bookmarkFilled svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25" ><path d="M19 6c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v14.66h.012c.01.103.045.204.12.285a.5.5 0 00.706.03L12.5 16.85l5.662 4.126c.205.183.52.17.708-.03a.5.5 0 00.118-.285H19V6z"/></svg></span></span><span class="js-add-to-bookmarks"><span class="svgIcon svgIcon--bookmarkAdd svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25" fill="none" ><path d="M18 2.5a.5.5 0 011 0V5h2.5a.5.5 0 010 1H19v2.5a.5.5 0 11-1 0V6h-2.5a.5.5 0 010-1H18V2.5z" fill="#292929"/><path d="M7 7a1 1 0 011-1h3.5a.5.5 0 000-1H8a2 2 0 00-2 2v14a.5.5 0 00.805.396L12.5 17l5.695 4.396A.5.5 0 0019 21v-8.5a.5.5 0 00-1 0v7.485l-5.195-4.012a.5.5 0 00-.61 0L7 19.985V7z" fill="#292929"/></svg></span></span></button></div></div></div></div></div><div class="streamItem streamItem--postPreview js-streamItem"><div class="cardChromeless u-marginTop20 u-paddingTop10 u-paddingBottom15 u-paddingLeft20 u-paddingRight20"><div class="postArticle postArticle--short js-postArticle js-trackPostPresentation js-trackPostScrolls" data-post-id="b99f7fc47774" data-source="---------9-----------------------"><div class="u-clearfix u-marginBottom15 u-paddingTop5"><div class="postMetaInline u-floatLeft u-sm-maxWidthFullWidth"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar" href="https://medium.com/@zsmb13" data-action="show-user-card" data-action-value="ec2087b3c81f" data-action-type="hover" data-user-id="ec2087b3c81f" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/72/72/1*suFfDiFgPFED3dXss3LJHA.png" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of Marton Braun"></a></div><div class="postMetaInline postMetaInline-authorLockup ui-captionStrong u-flex1 u-noWrapWithEllipsis"><a class="ds-link ds-link--styleSubtle link link--darken link--accent u-accentColor--textNormal u-accentColor--textDarken" href="https://medium.com/@zsmb13?source=---------9-----------------------" data-action="show-user-card" data-action-source="---------9-----------------------" data-action-value="ec2087b3c81f" data-action-type="hover" data-user-id="ec2087b3c81f" dir="auto">Marton Braun</a> in <a class="ds-link ds-link--styleSubtle link--darken link--accent u-accentColor--textNormal" href="https://medium.com/androiddevelopers?source=---------9-----------------------" data-action="show-collection-card" data-action-source="---------9-----------------------" data-action-value="androiddevelopers" data-action-type="hover">Android Developers</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><a class="link link--darken" href="https://medium.com/androiddevelopers/migrating-to-the-new-coroutines-1-6-test-apis-b99f7fc47774?source=---------9-----------------------" data-action="open-post" data-action-value="https://medium.com/androiddevelopers/migrating-to-the-new-coroutines-1-6-test-apis-b99f7fc47774?source=---------9-----------------------" data-action-source="preview-listing" ><time datetime="2022-06-29T17:00:45.134Z">Jun 29, 2022</time></a><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="5 min read"></span></div></div></div></div></div><div><a class="" href="https://medium.com/androiddevelopers/migrating-to-the-new-coroutines-1-6-test-apis-b99f7fc47774?source=---------9-----------------------" data-action-source="---------9-----------------------"><div class="postArticle-content js-postField"><section class="section section--body section--first section--last"><div class="section-divider"><hr class="section-divider"></div><div class="section-content"><div class="section-inner sectionLayout--insetColumn"><figure name="previewImage" id="previewImage" class="graf graf--figure graf--layoutCroppedHeightPreview graf--leading"><div class="aspectRatioPlaceholder is-locked"><div class="aspectRatioPlaceholder-fill" style="padding-bottom: 30%;"></div><img class="graf-image" data-image-id="1*XQmi35H84FdYhY_ONP6ntQ.png" data-width="4209" data-height="1253" data-is-featured="true" src="https://cdn-images-1.medium.com/fit/t/1600/480/1*XQmi35H84FdYhY_ONP6ntQ.png"></div></figure><h3 name="previewTitle" id="previewTitle" class="graf graf--h3 graf-after--figure graf--title">Migrating to the new coroutines 1.6 test APIs</h3><h4 name="previewSubtitle" id="previewSubtitle" class="graf graf--h4 graf-after--h3 graf--trailing graf--subtitle">See the steps we took to migrate our samples to the new…</h4></div></div></section></div></a></div><div class="postArticle-readMore"><a class="button button--smaller button--chromeless u-baseColor--buttonNormal" href="https://medium.com/androiddevelopers/migrating-to-the-new-coroutines-1-6-test-apis-b99f7fc47774?source=---------9-----------------------" data-action="open-post" data-action-source="---------9-----------------------" data-action-value="https://medium.com/androiddevelopers/migrating-to-the-new-coroutines-1-6-test-apis-b99f7fc47774?source=---------9-----------------------" data-post-id="b99f7fc47774">Read more…</a></div><div class="u-clearfix u-paddingTop10"><div class="u-floatLeft"><div class="multirecommend js-actionMultirecommend u-flexCenter" data-post-id="b99f7fc47774" data-is-flush-left="true" data-source="listing-----b99f7fc47774---------------------clap_preview"><div class="u-relative u-foreground"><button class="button button--primary button--chromeless u-accentColor--buttonNormal button--withIcon button--withSvgIcon clapButton js-actionMultirecommendButton clapButton--darker" data-action="sign-up-prompt" data-sign-in-action="multivote" data-requires-token="true" data-redirect="https://medium.com/_/vote/p/b99f7fc47774" data-action-source="listing-----b99f7fc47774---------------------clap_preview" aria-label="Clap"><span class="button-defaultState"><span class="svgIcon svgIcon--clap svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25" ><g fill-rule="evenodd"><path d="M11.739 0l.761 2.966L13.261 0z"/><path d="M14.815 3.776l1.84-2.551-1.43-.471z"/><path d="M8.378 1.224l1.84 2.551L9.81.753z"/><path d="M20.382 21.622c-1.04 1.04-2.115 1.507-3.166 1.608.168-.14.332-.29.492-.45 2.885-2.886 3.456-5.982 1.69-9.211l-1.101-1.937-.955-2.02c-.315-.676-.235-1.185.245-1.556a.836.836 0 01.66-.16c.342.056.66.28.879.605l2.856 5.023c1.179 1.962 1.379 5.119-1.6 8.098m-13.29-.528l-5.02-5.02a1 1 0 01.707-1.701c.255 0 .512.098.707.292l2.607 2.607a.442.442 0 00.624-.624L4.11 14.04l-1.75-1.75a.998.998 0 111.41-1.413l4.154 4.156a.44.44 0 00.624 0 .44.44 0 000-.624l-4.152-4.153-1.172-1.171a.998.998 0 010-1.41 1.018 1.018 0 011.41 0l1.172 1.17 4.153 4.152a.437.437 0 00.624 0 .442.442 0 000-.624L6.43 8.222a.988.988 0 01-.291-.705.99.99 0 01.29-.706 1 1 0 011.412 0l6.992 6.993a.443.443 0 00.71-.501l-1.35-2.856c-.315-.676-.235-1.185.246-1.557a.85.85 0 01.66-.16c.342.056.659.28.879.606L18.628 14c1.573 2.876 1.067 5.545-1.544 8.156-1.396 1.397-3.144 1.966-5.063 1.652-1.713-.286-3.463-1.248-4.928-2.714zM10.99 5.976l2.562 2.562c-.497.607-.563 1.414-.155 2.284l.265.562-4.257-4.257a.98.98 0 01-.117-.445c0-.267.104-.517.292-.706a1.023 1.023 0 011.41 0zm8.887 2.06c-.375-.557-.902-.916-1.486-1.011a1.738 1.738 0 00-1.342.332c-.376.29-.61.656-.712 1.065a2.1 2.1 0 00-1.095-.562 1.776 1.776 0 00-.992.128l-2.636-2.636a1.883 1.883 0 00-2.658 0 1.862 1.862 0 00-.478.847 1.886 1.886 0 00-2.671-.012 1.867 1.867 0 00-.503.909c-.754-.754-1.992-.754-2.703-.044a1.881 1.881 0 000 2.658c-.288.12-.605.288-.864.547a1.884 1.884 0 000 2.659l.624.622a1.879 1.879 0 00-.91 3.16l5.019 5.02c1.595 1.594 3.515 2.645 5.408 2.959a7.16 7.16 0 001.173.098c1.026 0 1.997-.24 2.892-.7.279.04.555.065.828.065 1.53 0 2.969-.628 4.236-1.894 3.338-3.338 3.083-6.928 1.738-9.166l-2.868-5.043z"/></g></svg></span></span><span class="button-activeState"><span class="svgIcon svgIcon--clapFilled svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25" ><g fill-rule="evenodd"><path d="M11.738 0l.762 2.966L13.262 0z"/><path d="M16.634 1.224l-1.432-.47-.408 3.022z"/><path d="M9.79.754l-1.431.47 1.84 2.552z"/><path d="M22.472 13.307l-3.023-5.32c-.287-.426-.689-.705-1.123-.776a1.16 1.16 0 00-.911.221c-.297.231-.474.515-.535.84.017.022.036.04.053.063l2.843 5.001c1.95 3.564 1.328 6.973-1.843 10.144a8.46 8.46 0 01-.549.501c1.205-.156 2.328-.737 3.351-1.76 3.268-3.268 3.041-6.749 1.737-8.914"/><path d="M12.58 9.887c-.156-.83.096-1.569.692-2.142L10.78 5.252c-.5-.504-1.378-.504-1.879 0-.178.18-.273.4-.329.63l4.008 4.005z"/><path d="M15.812 9.04c-.218-.323-.539-.55-.88-.606a.814.814 0 00-.644.153c-.176.137-.713.553-.24 1.566l1.43 3.025a.539.539 0 11-.868.612L7.2 6.378a.986.986 0 10-1.395 1.395l4.401 4.403a.538.538 0 11-.762.762L5.046 8.54 3.802 7.295a.99.99 0 00-1.396 0 .981.981 0 000 1.394L3.647 9.93l4.402 4.403a.537.537 0 010 .761.535.535 0 01-.762 0L2.89 10.696a.992.992 0 00-1.399-.003.983.983 0 000 1.395l1.855 1.854 2.763 2.765a.538.538 0 01-.76.761l-2.765-2.764a.982.982 0 00-1.395 0 .989.989 0 000 1.395l5.32 5.32c3.371 3.372 6.64 4.977 10.49 1.126C19.74 19.8 20.271 17 18.62 13.982L15.812 9.04z"/></g></svg></span></span></button></div><span class="u-relative u-background js-actionMultirecommendCount u-marginLeft5"><button class="button button--chromeless u-baseColor--buttonNormal js-multirecommendCountButton u-disablePointerEvents" data-action="show-recommends" data-action-value="b99f7fc47774">299</button></span></div></div><div class="buttonSet u-floatRight"><a class="button button--chromeless u-baseColor--buttonNormal" href="https://medium.com/androiddevelopers/migrating-to-the-new-coroutines-1-6-test-apis-b99f7fc47774?source=---------9-----------------------#--responses" data-action-source="---------9-----------------------">1 response</a><button class="button button--dark button--chromeless is-touchIconFadeInPulse u-baseColor--buttonDark button--withIcon button--withSvgIcon button--bookmark js-bookmarkButton" data-action="add-to-bookmarks" data-action-value="b99f7fc47774"><span class="js-remove-from-bookmarks u-hide"><span class="svgIcon svgIcon--bookmarkFilled svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25" ><path d="M19 6c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v14.66h.012c.01.103.045.204.12.285a.5.5 0 00.706.03L12.5 16.85l5.662 4.126c.205.183.52.17.708-.03a.5.5 0 00.118-.285H19V6z"/></svg></span></span><span class="js-add-to-bookmarks"><span class="svgIcon svgIcon--bookmarkAdd svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25" fill="none" ><path d="M18 2.5a.5.5 0 011 0V5h2.5a.5.5 0 010 1H19v2.5a.5.5 0 11-1 0V6h-2.5a.5.5 0 010-1H18V2.5z" fill="#292929"/><path d="M7 7a1 1 0 011-1h3.5a.5.5 0 000-1H8a2 2 0 00-2 2v14a.5.5 0 00.805.396L12.5 17l5.695 4.396A.5.5 0 0019 21v-8.5a.5.5 0 00-1 0v7.485l-5.195-4.012a.5.5 0 00-.61 0L7 19.985V7z" fill="#292929"/></svg></span></span></button></div></div></div></div></div></div></div></div></div></div></div><style class="js-collectionStyle"> .u-accentColor--borderLight {border-color: #848488 !important;} .u-accentColor--borderNormal {border-color: #848488 !important;} .u-accentColor--borderDark {border-color: #717275 !important;} .u-accentColor--iconLight .svgIcon,.u-accentColor--iconLight.svgIcon {fill: #848488 !important;} .u-accentColor--iconNormal .svgIcon,.u-accentColor--iconNormal.svgIcon {fill: #848488 !important;} .u-accentColor--iconDark .svgIcon,.u-accentColor--iconDark.svgIcon {fill: #717275 !important;} .u-accentColor--textNormal {color: #717275 !important;} .u-accentColor--hoverTextNormal:hover {color: #717275 !important;} .u-accentColor--textNormal.u-accentColor--textDarken:hover {color: #68686B !important;} .u-accentColor--textDark {color: #68686B !important;} .u-accentColor--backgroundLight {background-color: #848488 !important;} .u-accentColor--backgroundNormal {background-color: #848488 !important;} .u-accentColor--backgroundDark {background-color: #717275 !important;} .u-accentColor--buttonDark {border-color: #717275 !important; color: #68686B !important;} .u-accentColor--buttonDark:hover {border-color: #68686B !important;} .u-accentColor--buttonDark .icon:before,.u-accentColor--buttonDark .svgIcon{color: #717275 !important; fill: #717275 !important;} .u-accentColor--buttonNormal:not(.clapButton--largePill) {border-color: #848488 !important; color: #717275 !important;} .u-accentColor--buttonNormal:hover {border-color: #717275 !important;} .u-accentColor--buttonNormal .icon:before,.u-accentColor--buttonNormal .svgIcon{color: #848488 !important; fill: #848488 !important;} .u-accentColor--buttonNormal.button--filled .icon:before,.u-accentColor--buttonNormal.button--filled .svgIcon{color: rgba(255, 255, 255, 1) !important; fill: rgba(255, 255, 255, 1) !important;} .u-accentColor--buttonDark.button--filled,.u-accentColor--buttonDark.button--withChrome.is-active,.u-accentColor--fillWhenActive.is-active {background-color: #717275 !important; border-color: #717275 !important; color: rgba(255, 255, 255, 1) !important; fill: rgba(255, 255, 255, 1) !important;} .u-accentColor--buttonNormal.button--filled:not(.clapButton--largePill),.u-accentColor--buttonNormal.button--withChrome.is-active:not(.clapButton--largePill) {background-color: #848488 !important; border-color: #848488 !important; color: rgba(255, 255, 255, 1) !important; fill: rgba(255, 255, 255, 1) !important;} .postArticle.is-withAccentColors .markup--user,.postArticle.is-withAccentColors .markup--query {color: #717275 !important;}.u-tintBgColor {background-color: rgba(32, 33, 36, 1) !important;}.u-tintBgColor .u-fadeLeft:before {background-image: linear-gradient(to right, rgba(32, 33, 36, 1) 0%, rgba(32, 33, 36, 0) 100%) !important;}.u-tintBgColor .u-fadeRight:after {background-image: linear-gradient(to right, rgba(32, 33, 36, 0) 0%, rgba(32, 33, 36, 1) 100%) !important;} .u-tintSpectrum .u-baseColor--borderLight {border-color: #9D9C9E !important;} .u-tintSpectrum .u-baseColor--borderNormal {border-color: #C6C5C6 !important;} .u-tintSpectrum .u-baseColor--borderDark {border-color: #EEEBEC !important;} .u-tintSpectrum .u-baseColor--iconLight .svgIcon,.u-tintSpectrum .u-baseColor--iconLight.svgIcon {fill: #9D9C9E !important;} .u-tintSpectrum .u-baseColor--iconNormal .svgIcon,.u-tintSpectrum .u-baseColor--iconNormal.svgIcon {fill: #C6C5C6 !important;} .u-tintSpectrum .u-baseColor--iconDark .svgIcon,.u-tintSpectrum .u-baseColor--iconDark.svgIcon {fill: #EEEBEC !important;} .u-tintSpectrum .u-baseColor--textNormal {color: #C6C5C6 !important;} .u-tintSpectrum .u-baseColor--textNormal.u-baseColor--textDarken:hover {color: #FFFEFF !important;} .u-tintSpectrum .u-baseColor--textDark {color: #FFFEFF !important;} .u-tintSpectrum .u-baseColor--textDarker {color: #FFFEFF !important;} .u-tintSpectrum .u-baseColor--backgroundLight {background-color: #9D9C9E !important;} .u-tintSpectrum .u-baseColor--backgroundNormal {background-color: #C6C5C6 !important;} .u-tintSpectrum .u-baseColor--backgroundDark {background-color: #EEEBEC !important;} .u-tintSpectrum .u-baseColor--buttonLight {border-color: #9D9C9E !important; color: #9D9C9E !important;} .u-tintSpectrum .u-baseColor--buttonLight:hover {border-color: #9D9C9E !important;} .u-tintSpectrum .u-baseColor--buttonLight .icon:before,.u-tintSpectrum .u-baseColor--buttonLight .svgIcon {color: #9D9C9E !important; fill: #9D9C9E !important;} .u-tintSpectrum .u-baseColor--buttonDark {border-color: #EEEBEC !important; color: #FFFEFF !important;} .u-tintSpectrum .u-baseColor--buttonDark:hover {border-color: #FFFEFF !important;} .u-tintSpectrum .u-baseColor--buttonDark .icon:before,.u-tintSpectrum .u-baseColor--buttonDark .svgIcon {color: #EEEBEC !important; fill: #EEEBEC !important;} .u-tintSpectrum .u-baseColor--buttonNormal {border-color: #C6C5C6 !important; color: #C6C5C6 !important;} .u-tintSpectrum .u-baseColor--buttonNormal:hover {border-color: #EEEBEC !important;} .u-tintSpectrum .u-baseColor--buttonNormal .icon:before,.u-tintSpectrum .u-baseColor--buttonNormal .svgIcon {color: #C6C5C6 !important; fill: #C6C5C6 !important;} .u-tintSpectrum .u-baseColor--buttonDark.button--filled,.u-tintSpectrum .u-baseColor--buttonDark.button--withChrome.is-active {background-color: #EEEBEC !important; border-color: #EEEBEC !important; color: rgba(32, 33, 36, 1) !important; fill: rgba(32, 33, 36, 1) !important;} .u-tintSpectrum .u-baseColor--buttonNormal.button--filled,.u-tintSpectrum .u-baseColor--buttonNormal.button--withChrome.is-active {background-color: #C6C5C6 !important; border-color: #C6C5C6 !important; color: rgba(32, 33, 36, 1) !important; fill: rgba(32, 33, 36, 1) !important;} .u-tintSpectrum .u-baseColor--link {color: #C6C5C6 !important;} .u-tintSpectrum .u-baseColor--link.link--darkenOnHover:hover {color: #FFFEFF !important;} .u-tintSpectrum .u-baseColor--link.link--darken:hover,.u-tintSpectrum .u-baseColor--link.link--darken:focus,.u-tintSpectrum .u-baseColor--link.link--darken:active {color: #FFFEFF !important;} .u-tintSpectrum .u-baseColor--link.link--dark {color: #FFFEFF !important;} .u-tintSpectrum .u-baseColor--link.link--dark.link--darken:hover,.u-tintSpectrum .u-baseColor--link.link--dark.link--darken:focus,.u-tintSpectrum .u-baseColor--link.link--dark.link--darken:active {color: #FFFEFF !important;} .u-tintSpectrum .u-baseColor--link.link--darker {color: #FFFEFF !important;} .u-tintSpectrum .u-baseColor--placeholderNormal ::-webkit-input-placeholder {color: #9D9C9E;} .u-tintSpectrum .u-baseColor--placeholderNormal ::-moz-placeholder {color: #9D9C9E;} .u-tintSpectrum .u-baseColor--placeholderNormal :-ms-input-placeholder {color: #9D9C9E;} .u-tintSpectrum .ui-h1,.u-tintSpectrum .ui-h2,.u-tintSpectrum .ui-h3,.u-tintSpectrum .ui-h4,.u-tintSpectrum .ui-brand1,.u-tintSpectrum .ui-brand2,.u-tintSpectrum .ui-captionStrong {color: #FFFEFF !important; fill: #FFFEFF !important;} .u-tintSpectrum .ui-body,.u-tintSpectrum .ui-caps {color: #FFFEFF !important; fill: #FFFEFF !important;} .u-tintSpectrum .ui-summary,.u-tintSpectrum .ui-caption {color: #9D9C9E !important; fill: #9D9C9E !important;} .u-tintSpectrum .u-accentColor--borderLight {border-color: #9D9C9E !important;} .u-tintSpectrum .u-accentColor--borderNormal {border-color: #C6C5C6 !important;} .u-tintSpectrum .u-accentColor--borderDark {border-color: #EEEBEC !important;} .u-tintSpectrum .u-accentColor--iconLight .svgIcon,.u-tintSpectrum .u-accentColor--iconLight.svgIcon {fill: #9D9C9E !important;} .u-tintSpectrum .u-accentColor--iconNormal .svgIcon,.u-tintSpectrum .u-accentColor--iconNormal.svgIcon {fill: #C6C5C6 !important;} .u-tintSpectrum .u-accentColor--iconDark .svgIcon,.u-tintSpectrum .u-accentColor--iconDark.svgIcon {fill: #EEEBEC !important;} .u-tintSpectrum .u-accentColor--textNormal {color: #C6C5C6 !important;} .u-tintSpectrum .u-accentColor--hoverTextNormal:hover {color: #C6C5C6 !important;} .u-tintSpectrum .u-accentColor--textNormal.u-accentColor--textDarken:hover {color: #FFFEFF !important;} .u-tintSpectrum .u-accentColor--textDark {color: #FFFEFF !important;} .u-tintSpectrum .u-accentColor--backgroundLight {background-color: #9D9C9E !important;} .u-tintSpectrum .u-accentColor--backgroundNormal {background-color: #C6C5C6 !important;} .u-tintSpectrum .u-accentColor--backgroundDark {background-color: #EEEBEC !important;} .u-tintSpectrum .u-accentColor--buttonDark {border-color: #EEEBEC !important; color: #FFFEFF !important;} .u-tintSpectrum .u-accentColor--buttonDark:hover {border-color: #FFFEFF !important;} .u-tintSpectrum .u-accentColor--buttonDark .icon:before,.u-tintSpectrum .u-accentColor--buttonDark .svgIcon{color: #EEEBEC !important; fill: #EEEBEC !important;} .u-tintSpectrum .u-accentColor--buttonNormal:not(.clapButton--largePill) {border-color: #C6C5C6 !important; color: #C6C5C6 !important;} .u-tintSpectrum .u-accentColor--buttonNormal:hover {border-color: #EEEBEC !important;} .u-tintSpectrum .u-accentColor--buttonNormal .icon:before,.u-tintSpectrum .u-accentColor--buttonNormal .svgIcon{color: #C6C5C6 !important; fill: #C6C5C6 !important;} .u-tintSpectrum .u-accentColor--buttonNormal.button--filled .icon:before,.u-tintSpectrum .u-accentColor--buttonNormal.button--filled .svgIcon{color: rgba(32, 33, 36, 1) !important; fill: rgba(32, 33, 36, 1) !important;} .u-tintSpectrum .u-accentColor--buttonDark.button--filled,.u-tintSpectrum .u-accentColor--buttonDark.button--withChrome.is-active,.u-tintSpectrum .u-accentColor--fillWhenActive.is-active {background-color: #EEEBEC !important; border-color: #EEEBEC !important; color: rgba(32, 33, 36, 1) !important; fill: rgba(32, 33, 36, 1) !important;} .u-tintSpectrum .u-accentColor--buttonNormal.button--filled:not(.clapButton--largePill),.u-tintSpectrum .u-accentColor--buttonNormal.button--withChrome.is-active:not(.clapButton--largePill) {background-color: #C6C5C6 !important; border-color: #C6C5C6 !important; color: rgba(32, 33, 36, 1) !important; fill: rgba(32, 33, 36, 1) !important;} .u-tintSpectrum .postArticle.is-withAccentColors .markup--user,.u-tintSpectrum .postArticle.is-withAccentColors .markup--query {color: #C6C5C6 !important;} .u-accentColor--highlightFaint {background-color: rgba(242, 240, 241, 1) !important;} .u-accentColor--highlightStrong.is-active .svgIcon {fill: rgba(224, 223, 226, 1) !important;} .postArticle.is-withAccentColors .markup--quote.is-other {background-color: rgba(242, 240, 241, 1) !important;} body.is-withMagicUnderlines .postArticle.is-withAccentColors .markup--quote.is-other {background-color: transparent !important; background-image: linear-gradient(to bottom, rgba(242, 240, 241, 1), rgba(242, 240, 241, 1));} .postArticle.is-withAccentColors .markup--quote.is-me {background-color: rgba(232, 231, 233, 1) !important;} body.is-withMagicUnderlines .postArticle.is-withAccentColors .markup--quote.is-me {background-color: transparent !important; background-image: linear-gradient(to bottom, rgba(232, 231, 233, 1), rgba(232, 231, 233, 1));} .postArticle.is-withAccentColors .markup--quote.is-targeted {background-color: rgba(224, 223, 226, 1) !important;} body.is-withMagicUnderlines .postArticle.is-withAccentColors .markup--quote.is-targeted {background-color: transparent !important; background-image: linear-gradient(to bottom, rgba(224, 223, 226, 1), rgba(224, 223, 226, 1));} .postArticle.is-withAccentColors .markup--quote.is-selected {background-color: rgba(224, 223, 226, 1) !important;} body.is-withMagicUnderlines .postArticle.is-withAccentColors .markup--quote.is-selected {background-color: transparent !important; background-image: linear-gradient(to bottom, rgba(224, 223, 226, 1), rgba(224, 223, 226, 1));} .postArticle.is-withAccentColors .markup--highlight {background-color: rgba(224, 223, 226, 1) !important;} body.is-withMagicUnderlines .postArticle.is-withAccentColors .markup--highlight {background-color: transparent !important; background-image: linear-gradient(to bottom, rgba(224, 223, 226, 1), rgba(224, 223, 226, 1));}</style><style class="js-collectionStyleConstant">.u-imageBgColor {background-color: rgba(0, 0, 0, 0.24705882352941178);} .u-imageSpectrum .u-baseColor--borderLight {border-color: rgba(255, 255, 255, 0.6980392156862745) !important;} .u-imageSpectrum .u-baseColor--borderNormal {border-color: rgba(255, 255, 255, 0.8980392156862745) !important;} .u-imageSpectrum .u-baseColor--borderDark {border-color: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-baseColor--iconLight .svgIcon,.u-imageSpectrum .u-baseColor--iconLight.svgIcon {fill: rgba(255, 255, 255, 0.8) !important;} .u-imageSpectrum .u-baseColor--iconNormal .svgIcon,.u-imageSpectrum .u-baseColor--iconNormal.svgIcon {fill: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-baseColor--iconDark .svgIcon,.u-imageSpectrum .u-baseColor--iconDark.svgIcon {fill: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-baseColor--textNormal {color: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-baseColor--textNormal.u-baseColor--textDarken:hover {color: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-baseColor--textDark {color: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-baseColor--textDarker {color: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-baseColor--backgroundLight {background-color: rgba(255, 255, 255, 0.8980392156862745) !important;} .u-imageSpectrum .u-baseColor--backgroundNormal {background-color: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-baseColor--backgroundDark {background-color: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-baseColor--buttonLight {border-color: rgba(255, 255, 255, 0.6980392156862745) !important; color: rgba(255, 255, 255, 0.8) !important;} .u-imageSpectrum .u-baseColor--buttonLight:hover {border-color: rgba(255, 255, 255, 0.6980392156862745) !important;} .u-imageSpectrum .u-baseColor--buttonLight .icon:before,.u-imageSpectrum .u-baseColor--buttonLight .svgIcon {color: rgba(255, 255, 255, 0.8) !important; fill: rgba(255, 255, 255, 0.8) !important;} .u-imageSpectrum .u-baseColor--buttonDark {border-color: rgba(255, 255, 255, 0.9490196078431372) !important; color: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-baseColor--buttonDark:hover {border-color: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-baseColor--buttonDark .icon:before,.u-imageSpectrum .u-baseColor--buttonDark .svgIcon {color: rgba(255, 255, 255, 1) !important; fill: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-baseColor--buttonNormal {border-color: rgba(255, 255, 255, 0.8980392156862745) !important; color: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-baseColor--buttonNormal:hover {border-color: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-baseColor--buttonNormal .icon:before,.u-imageSpectrum .u-baseColor--buttonNormal .svgIcon {color: rgba(255, 255, 255, 0.9490196078431372) !important; fill: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-baseColor--buttonDark.button--filled,.u-imageSpectrum .u-baseColor--buttonDark.button--withChrome.is-active {background-color: rgba(255, 255, 255, 1) !important; border-color: rgba(255, 255, 255, 1) !important; color: rgba(0, 0, 0, 0.24705882352941178) !important; fill: rgba(0, 0, 0, 0.24705882352941178) !important;} .u-imageSpectrum .u-baseColor--buttonNormal.button--filled,.u-imageSpectrum .u-baseColor--buttonNormal.button--withChrome.is-active {background-color: rgba(255, 255, 255, 0.9490196078431372) !important; border-color: rgba(255, 255, 255, 0.9490196078431372) !important; color: rgba(0, 0, 0, 0.24705882352941178) !important; fill: rgba(0, 0, 0, 0.24705882352941178) !important;} .u-imageSpectrum .u-baseColor--link {color: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-baseColor--link.link--darkenOnHover:hover {color: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-baseColor--link.link--darken:hover,.u-imageSpectrum .u-baseColor--link.link--darken:focus,.u-imageSpectrum .u-baseColor--link.link--darken:active {color: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-baseColor--link.link--dark {color: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-baseColor--link.link--dark.link--darken:hover,.u-imageSpectrum .u-baseColor--link.link--dark.link--darken:focus,.u-imageSpectrum .u-baseColor--link.link--dark.link--darken:active {color: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-baseColor--link.link--darker {color: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-baseColor--placeholderNormal ::-webkit-input-placeholder {color: rgba(255, 255, 255, 0.8);} .u-imageSpectrum .u-baseColor--placeholderNormal ::-moz-placeholder {color: rgba(255, 255, 255, 0.8);} .u-imageSpectrum .u-baseColor--placeholderNormal :-ms-input-placeholder {color: rgba(255, 255, 255, 0.8);} .u-imageSpectrum .ui-h1,.u-imageSpectrum .ui-h2,.u-imageSpectrum .ui-h3,.u-imageSpectrum .ui-h4,.u-imageSpectrum .ui-brand1,.u-imageSpectrum .ui-brand2,.u-imageSpectrum .ui-captionStrong {color: rgba(255, 255, 255, 1) !important; fill: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .ui-body,.u-imageSpectrum .ui-caps {color: rgba(255, 255, 255, 1) !important; fill: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .ui-summary,.u-imageSpectrum .ui-caption {color: rgba(255, 255, 255, 0.8) !important; fill: rgba(255, 255, 255, 0.8) !important;} .u-imageSpectrum .u-accentColor--borderLight {border-color: rgba(255, 255, 255, 0.6980392156862745) !important;} .u-imageSpectrum .u-accentColor--borderNormal {border-color: rgba(255, 255, 255, 0.8980392156862745) !important;} .u-imageSpectrum .u-accentColor--borderDark {border-color: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-accentColor--iconLight .svgIcon,.u-imageSpectrum .u-accentColor--iconLight.svgIcon {fill: rgba(255, 255, 255, 0.8) !important;} .u-imageSpectrum .u-accentColor--iconNormal .svgIcon,.u-imageSpectrum .u-accentColor--iconNormal.svgIcon {fill: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-accentColor--iconDark .svgIcon,.u-imageSpectrum .u-accentColor--iconDark.svgIcon {fill: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-accentColor--textNormal {color: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-accentColor--hoverTextNormal:hover {color: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-accentColor--textNormal.u-accentColor--textDarken:hover {color: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-accentColor--textDark {color: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-accentColor--backgroundLight {background-color: rgba(255, 255, 255, 0.8980392156862745) !important;} .u-imageSpectrum .u-accentColor--backgroundNormal {background-color: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-accentColor--backgroundDark {background-color: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-accentColor--buttonDark {border-color: rgba(255, 255, 255, 0.9490196078431372) !important; color: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-accentColor--buttonDark:hover {border-color: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-accentColor--buttonDark .icon:before,.u-imageSpectrum .u-accentColor--buttonDark .svgIcon{color: rgba(255, 255, 255, 1) !important; fill: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-accentColor--buttonNormal:not(.clapButton--largePill) {border-color: rgba(255, 255, 255, 0.8980392156862745) !important; color: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-accentColor--buttonNormal:hover {border-color: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-accentColor--buttonNormal .icon:before,.u-imageSpectrum .u-accentColor--buttonNormal .svgIcon{color: rgba(255, 255, 255, 0.9490196078431372) !important; fill: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-accentColor--buttonNormal.button--filled .icon:before,.u-imageSpectrum .u-accentColor--buttonNormal.button--filled .svgIcon{color: rgba(0, 0, 0, 0.24705882352941178) !important; fill: rgba(0, 0, 0, 0.24705882352941178) !important;} .u-imageSpectrum .u-accentColor--buttonDark.button--filled,.u-imageSpectrum .u-accentColor--buttonDark.button--withChrome.is-active,.u-imageSpectrum .u-accentColor--fillWhenActive.is-active {background-color: rgba(255, 255, 255, 1) !important; border-color: rgba(255, 255, 255, 1) !important; color: rgba(0, 0, 0, 0.24705882352941178) !important; fill: rgba(0, 0, 0, 0.24705882352941178) !important;} .u-imageSpectrum .u-accentColor--buttonNormal.button--filled:not(.clapButton--largePill),.u-imageSpectrum .u-accentColor--buttonNormal.button--withChrome.is-active:not(.clapButton--largePill) {background-color: rgba(255, 255, 255, 0.9490196078431372) !important; border-color: rgba(255, 255, 255, 0.9490196078431372) !important; color: rgba(0, 0, 0, 0.24705882352941178) !important; fill: rgba(0, 0, 0, 0.24705882352941178) !important;} .u-imageSpectrum .postArticle.is-withAccentColors .markup--user,.u-imageSpectrum .postArticle.is-withAccentColors .markup--query {color: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-accentColor--highlightFaint {background-color: rgba(255, 255, 255, 0.2) !important;} .u-imageSpectrum .u-accentColor--highlightStrong.is-active .svgIcon {fill: rgba(255, 255, 255, 0.6) !important;} .postArticle.is-withAccentColors .u-imageSpectrum .markup--quote.is-other {background-color: rgba(255, 255, 255, 0.2) !important;} body.is-withMagicUnderlines .postArticle.is-withAccentColors .u-imageSpectrum .markup--quote.is-other {background-color: transparent !important; background-image: linear-gradient(to bottom, rgba(255, 255, 255, 0.2), rgba(255, 255, 255, 0.2));} .postArticle.is-withAccentColors .u-imageSpectrum .markup--quote.is-me {background-color: rgba(255, 255, 255, 0.4) !important;} body.is-withMagicUnderlines .postArticle.is-withAccentColors .u-imageSpectrum .markup--quote.is-me {background-color: transparent !important; background-image: linear-gradient(to bottom, rgba(255, 255, 255, 0.4), rgba(255, 255, 255, 0.4));} .postArticle.is-withAccentColors .u-imageSpectrum .markup--quote.is-targeted {background-color: rgba(255, 255, 255, 0.6) !important;} body.is-withMagicUnderlines .postArticle.is-withAccentColors .u-imageSpectrum .markup--quote.is-targeted {background-color: transparent !important; background-image: linear-gradient(to bottom, rgba(255, 255, 255, 0.6), rgba(255, 255, 255, 0.6));} .postArticle.is-withAccentColors .u-imageSpectrum .markup--quote.is-selected {background-color: rgba(255, 255, 255, 0.6) !important;} body.is-withMagicUnderlines .postArticle.is-withAccentColors .u-imageSpectrum .markup--quote.is-selected {background-color: transparent !important; background-image: linear-gradient(to bottom, rgba(255, 255, 255, 0.6), rgba(255, 255, 255, 0.6));} .postArticle.is-withAccentColors .u-imageSpectrum .markup--highlight {background-color: rgba(255, 255, 255, 0.6) !important;} body.is-withMagicUnderlines .postArticle.is-withAccentColors .u-imageSpectrum .markup--highlight {background-color: transparent !important; background-image: linear-gradient(to bottom, rgba(255, 255, 255, 0.6), rgba(255, 255, 255, 0.6));}.u-resetSpectrum .u-tintBgColor {background-color: rgba(255, 255, 255, 1) !important;}.u-resetSpectrum .u-tintBgColor .u-fadeLeft:before {background-image: linear-gradient(to right, rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 0) 100%) !important;}.u-resetSpectrum .u-tintBgColor .u-fadeRight:after {background-image: linear-gradient(to right, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 1) 100%) !important;} .u-resetSpectrum .u-baseColor--borderLight {border-color: rgba(0, 0, 0, 0.2980392156862745) !important;} .u-resetSpectrum .u-baseColor--borderNormal {border-color: rgba(0, 0, 0, 0.4980392156862745) !important;} .u-resetSpectrum .u-baseColor--borderDark {border-color: rgba(0, 0, 0, 0.6) !important;} .u-resetSpectrum .u-baseColor--iconLight .svgIcon,.u-resetSpectrum .u-baseColor--iconLight.svgIcon {fill: rgba(0, 0, 0, 0.2980392156862745) !important;} .u-resetSpectrum .u-baseColor--iconNormal .svgIcon,.u-resetSpectrum .u-baseColor--iconNormal.svgIcon {fill: rgba(0, 0, 0, 0.4980392156862745) !important;} .u-resetSpectrum .u-baseColor--iconDark .svgIcon,.u-resetSpectrum .u-baseColor--iconDark.svgIcon {fill: rgba(0, 0, 0, 0.6) !important;} .u-resetSpectrum .u-baseColor--textNormal {color: rgba(0, 0, 0, 0.4980392156862745) !important;} .u-resetSpectrum .u-baseColor--textNormal.u-baseColor--textDarken:hover {color: rgba(0, 0, 0, 0.6) !important;} .u-resetSpectrum .u-baseColor--textDark {color: rgba(0, 0, 0, 0.6) !important;} .u-resetSpectrum .u-baseColor--textDarker {color: rgba(0, 0, 0, 0.8) !important;} .u-resetSpectrum .u-baseColor--backgroundLight {background-color: rgba(0, 0, 0, 0.09803921568627451) !important;} .u-resetSpectrum .u-baseColor--backgroundNormal {background-color: rgba(0, 0, 0, 0.2) !important;} .u-resetSpectrum .u-baseColor--backgroundDark {background-color: rgba(0, 0, 0, 0.2980392156862745) !important;} .u-resetSpectrum .u-baseColor--buttonLight {border-color: rgba(0, 0, 0, 0.2980392156862745) !important; color: rgba(0, 0, 0, 0.2980392156862745) !important;} .u-resetSpectrum .u-baseColor--buttonLight:hover {border-color: rgba(0, 0, 0, 0.2980392156862745) !important;} .u-resetSpectrum .u-baseColor--buttonLight .icon:before,.u-resetSpectrum .u-baseColor--buttonLight .svgIcon {color: rgba(0, 0, 0, 0.2980392156862745) !important; fill: rgba(0, 0, 0, 0.2980392156862745) !important;} .u-resetSpectrum .u-baseColor--buttonDark {border-color: rgba(0, 0, 0, 0.6) !important; color: rgba(0, 0, 0, 0.6) !important;} .u-resetSpectrum .u-baseColor--buttonDark:hover {border-color: rgba(0, 0, 0, 0.8) !important;} .u-resetSpectrum .u-baseColor--buttonDark .icon:before,.u-resetSpectrum .u-baseColor--buttonDark .svgIcon {color: rgba(0, 0, 0, 0.6) !important; fill: rgba(0, 0, 0, 0.6) !important;} .u-resetSpectrum .u-baseColor--buttonNormal {border-color: rgba(0, 0, 0, 0.4980392156862745) !important; color: rgba(0, 0, 0, 0.4980392156862745) !important;} .u-resetSpectrum .u-baseColor--buttonNormal:hover {border-color: rgba(0, 0, 0, 0.6) !important;} .u-resetSpectrum .u-baseColor--buttonNormal .icon:before,.u-resetSpectrum .u-baseColor--buttonNormal .svgIcon {color: rgba(0, 0, 0, 0.4980392156862745) !important; fill: rgba(0, 0, 0, 0.4980392156862745) !important;} .u-resetSpectrum .u-baseColor--buttonDark.button--filled,.u-resetSpectrum .u-baseColor--buttonDark.button--withChrome.is-active {background-color: rgba(0, 0, 0, 0.2980392156862745) !important; border-color: rgba(0, 0, 0, 0.2980392156862745) !important; color: rgba(255, 255, 255, 1) !important; fill: rgba(255, 255, 255, 1) !important;} .u-resetSpectrum .u-baseColor--buttonNormal.button--filled,.u-resetSpectrum .u-baseColor--buttonNormal.button--withChrome.is-active {background-color: rgba(0, 0, 0, 0.2) !important; border-color: rgba(0, 0, 0, 0.2) !important; color: rgba(255, 255, 255, 1) !important; fill: rgba(255, 255, 255, 1) !important;} .u-resetSpectrum .u-baseColor--link {color: rgba(0, 0, 0, 0.4980392156862745) !important;} .u-resetSpectrum .u-baseColor--link.link--darkenOnHover:hover {color: rgba(0, 0, 0, 0.6) !important;} .u-resetSpectrum .u-baseColor--link.link--darken:hover,.u-resetSpectrum .u-baseColor--link.link--darken:focus,.u-resetSpectrum .u-baseColor--link.link--darken:active {color: rgba(0, 0, 0, 0.6) !important;} .u-resetSpectrum .u-baseColor--link.link--dark {color: rgba(0, 0, 0, 0.6) !important;} .u-resetSpectrum .u-baseColor--link.link--dark.link--darken:hover,.u-resetSpectrum .u-baseColor--link.link--dark.link--darken:focus,.u-resetSpectrum .u-baseColor--link.link--dark.link--darken:active {color: rgba(0, 0, 0, 0.8) !important;} .u-resetSpectrum .u-baseColor--link.link--darker {color: rgba(0, 0, 0, 0.8) !important;} .u-resetSpectrum .u-baseColor--placeholderNormal ::-webkit-input-placeholder {color: rgba(0, 0, 0, 0.2980392156862745);} .u-resetSpectrum .u-baseColor--placeholderNormal ::-moz-placeholder {color: rgba(0, 0, 0, 0.2980392156862745);} .u-resetSpectrum .u-baseColor--placeholderNormal :-ms-input-placeholder {color: rgba(0, 0, 0, 0.2980392156862745);} .u-resetSpectrum .ui-h1,.u-resetSpectrum .ui-h2,.u-resetSpectrum .ui-h3,.u-resetSpectrum .ui-h4,.u-resetSpectrum .ui-brand1,.u-resetSpectrum .ui-brand2,.u-resetSpectrum .ui-captionStrong {color: rgba(0, 0, 0, 0.8) !important; fill: rgba(0, 0, 0, 0.8) !important;} .u-resetSpectrum .ui-body,.u-resetSpectrum .ui-caps {color: rgba(0, 0, 0, 0.6) !important; fill: rgba(0, 0, 0, 0.6) !important;} .u-resetSpectrum .ui-summary,.u-resetSpectrum .ui-caption {color: rgba(0, 0, 0, 0.2980392156862745) !important; fill: rgba(0, 0, 0, 0.2980392156862745) !important;} .u-resetSpectrum .u-accentColor--borderLight {border-color: rgba(26, 137, 23, 1) !important;} .u-resetSpectrum .u-accentColor--borderNormal {border-color: rgba(26, 137, 23, 1) !important;} .u-resetSpectrum .u-accentColor--borderDark {border-color: rgba(17, 128, 14, 1) !important;} .u-resetSpectrum .u-accentColor--iconLight .svgIcon,.u-resetSpectrum .u-accentColor--iconLight.svgIcon {fill: rgba(26, 137, 23, 1) !important;} .u-resetSpectrum .u-accentColor--iconNormal .svgIcon,.u-resetSpectrum .u-accentColor--iconNormal.svgIcon {fill: rgba(17, 128, 14, 1) !important;} .u-resetSpectrum .u-accentColor--iconDark .svgIcon,.u-resetSpectrum .u-accentColor--iconDark.svgIcon {fill: rgba(15, 115, 12, 1) !important;} .u-resetSpectrum .u-accentColor--textNormal {color: rgba(17, 128, 14, 1) !important;} .u-resetSpectrum .u-accentColor--hoverTextNormal:hover {color: rgba(17, 128, 14, 1) !important;} .u-resetSpectrum .u-accentColor--textNormal.u-accentColor--textDarken:hover {color: rgba(15, 115, 12, 1) !important;} .u-resetSpectrum .u-accentColor--textDark {color: rgba(15, 115, 12, 1) !important;} .u-resetSpectrum .u-accentColor--backgroundLight {background-color: rgba(26, 137, 23, 1) !important;} .u-resetSpectrum .u-accentColor--backgroundNormal {background-color: rgba(17, 128, 14, 1) !important;} .u-resetSpectrum .u-accentColor--backgroundDark {background-color: rgba(15, 115, 12, 1) !important;} .u-resetSpectrum .u-accentColor--buttonDark {border-color: rgba(17, 128, 14, 1) !important; color: rgba(15, 115, 12, 1) !important;} .u-resetSpectrum .u-accentColor--buttonDark:hover {border-color: rgba(15, 115, 12, 1) !important;} .u-resetSpectrum .u-accentColor--buttonDark .icon:before,.u-resetSpectrum .u-accentColor--buttonDark .svgIcon{color: rgba(15, 115, 12, 1) !important; fill: rgba(15, 115, 12, 1) !important;} .u-resetSpectrum .u-accentColor--buttonNormal:not(.clapButton--largePill) {border-color: rgba(26, 137, 23, 1) !important; color: rgba(17, 128, 14, 1) !important;} .u-resetSpectrum .u-accentColor--buttonNormal:hover {border-color: rgba(17, 128, 14, 1) !important;} .u-resetSpectrum .u-accentColor--buttonNormal .icon:before,.u-resetSpectrum .u-accentColor--buttonNormal .svgIcon{color: rgba(17, 128, 14, 1) !important; fill: rgba(17, 128, 14, 1) !important;} .u-resetSpectrum .u-accentColor--buttonNormal.button--filled .icon:before,.u-resetSpectrum .u-accentColor--buttonNormal.button--filled .svgIcon{color: rgba(255, 255, 255, 1) !important; fill: rgba(255, 255, 255, 1) !important;} .u-resetSpectrum .u-accentColor--buttonDark.button--filled,.u-resetSpectrum .u-accentColor--buttonDark.button--withChrome.is-active,.u-resetSpectrum .u-accentColor--fillWhenActive.is-active {background-color: rgba(15, 115, 12, 1) !important; border-color: rgba(15, 115, 12, 1) !important; color: rgba(255, 255, 255, 1) !important; fill: rgba(255, 255, 255, 1) !important;} .u-resetSpectrum .u-accentColor--buttonNormal.button--filled:not(.clapButton--largePill),.u-resetSpectrum .u-accentColor--buttonNormal.button--withChrome.is-active:not(.clapButton--largePill) {background-color: rgba(17, 128, 14, 1) !important; border-color: rgba(17, 128, 14, 1) !important; color: rgba(255, 255, 255, 1) !important; fill: rgba(255, 255, 255, 1) !important;} .u-resetSpectrum .postArticle.is-withAccentColors .markup--user,.u-resetSpectrum .postArticle.is-withAccentColors .markup--query {color: rgba(17, 128, 14, 1) !important;}</style></div></div></div><div class="loadingBar"></div><script>// <![CDATA[ window["obvInit"] = function (opt_embedded) {window["obvInit"]["embedded"] = opt_embedded; window["obvInit"]["ready"] = true;} // ]]></script><script>// <![CDATA[ var GLOBALS = {"audioUrl":"https://d1fcbxp97j4nb2.cloudfront.net","baseUrl":"https://medium.com","buildLabel":"20241122-2326-root","currentUser":{"userId":"lo_e003adbb882e","isVerified":false,"subscriberEmail":"","hasPastMemberships":false,"isEnrolledInHightower":false,"isEligibleForHightower":true,"hightowerLastLockedAt":0,"isWriterProgramEnrolled":true,"isWriterProgramInvited":false,"isWriterProgramOptedOut":false,"writerProgramVersion":0,"writerProgramEnrolledAt":0,"friendLinkOnboarding":0,"hasAdditionalUnlocks":false,"hasApiAccess":false,"writerProgramDistributionSettingOptedIn":false,"isSuspended":false,"collectionOnboardingSeen":0,"atsQualifiedAt":0},"currentUserHasUnverifiedEmail":false,"isAuthenticated":false,"isCurrentUserVerified":false,"miroUrl":"https://cdn-images-1.medium.com","moduleUrls":{"base":"https://cdn-static-1.medium.com/_/fp/gen-js/main-base.bundle.jgL7zdhxfcJMjkJjEjB6xg.12.js","common-async":"https://cdn-static-1.medium.com/_/fp/gen-js/main-common-async.bundle.fULbttUzdHyewyAazMUYXw.12.js","hightower":"https://cdn-static-1.medium.com/_/fp/gen-js/main-hightower.bundle.NQoDXJuDHPBqR63_AdMDaA.12.js","home-screens":"https://cdn-static-1.medium.com/_/fp/gen-js/main-home-screens.bundle.m76-07Q1DcEMKgEwzJjhDA.12.js","misc-screens":"https://cdn-static-1.medium.com/_/fp/gen-js/main-misc-screens.bundle.2CLT5j6rDReEhG2bjr3NdA.12.js","notes":"https://cdn-static-1.medium.com/_/fp/gen-js/main-notes.bundle.yrGWoeoBrJB7GBGv--gr1g.12.js","payments":"https://cdn-static-1.medium.com/_/fp/gen-js/main-payments.bundle.Cc_nfCICljMx7aW6-Pr_9w.12.js","posters":"https://cdn-static-1.medium.com/_/fp/gen-js/main-posters.bundle.QCX6B3q-KqcSv8hiUNsQ9Q.12.js","power-readers":"https://cdn-static-1.medium.com/_/fp/gen-js/main-power-readers.bundle.nxgYPC9-BrhdicIoMMuzoA.12.js","pubs":"https://cdn-static-1.medium.com/_/fp/gen-js/main-pubs.bundle.SOwTEi0SkdYAS9MQpioQXw.12.js","stats":"https://cdn-static-1.medium.com/_/fp/gen-js/main-stats.bundle.hA1c7rerc_dk3N05UG54qQ.12.js"},"previewConfig":{"weightThreshold":1,"weightImageParagraph":0.51,"weightIframeParagraph":0.8,"weightTextParagraph":0.08,"weightEmptyParagraph":0,"weightP":0.003,"weightH":0.005,"weightBq":0.003,"minPTextLength":60,"truncateBoundaryChars":20,"detectTitle":true,"detectTitleLevThreshold":0.15},"productName":"Medium","supportsEdit":false,"termsUrl":"//policy.medium.com/medium-terms-of-service-9db0094a1e0f","textshotHost":"textshot.textshot-production.svc.cluster.local","transactionId":"1732361402807:23b21a4311d3","useragent":{"browser":"ie","family":"ie","os":"windows","version":7,"supportsDesktopEdit":false,"supportsInteract":false,"supportsView":true,"isMobile":false,"isTablet":false,"isNative":false,"supportsFileAPI":false,"isTier1":false,"clientVersion":"","clientChannel":"","supportsRealScrollEvents":false,"supportsVhUnits":false,"ruinsViewportSections":false,"supportsHtml5Video":false,"supportsMagicUnderlines":false,"isWebView":false,"isFacebookWebView":false,"supportsProgressiveMedia":false,"supportsPromotedPosts":true,"isBot":false,"isNativeIphone":false,"supportsCssVariables":false,"supportsVideoSections":true,"emojiSupportLevel":1,"isSearchBot":false,"isSyndicationBot":false,"isNativeAndroid":false,"isNativeIos":false,"isSeoAuditBot":false,"isInternalApp":false,"supportsApplePay":false,"supportsScrollableMetabar":false},"variants":{"allow_access":true,"allow_signup":true,"allow_test_auth":"disallow","android_enable_editor_new_publishing_flow":true,"android_enable_friend_links_creation":true,"android_enable_friend_links_postpage_banners":true,"android_enable_image_sharer":true,"android_enable_lists_v2":true,"android_enable_syntax_highlight":true,"android_enable_topic_portals":true,"android_rating_prompt_stories_read_threshold":2,"android_two_hour_refresh":true,"available_annual_plan":"2c754bcc2995","available_annual_premium_plan":"4a442ace1476","available_monthly_plan":"60e220181034","available_monthly_premium_plan":"12a660186432","browsable_stream_config_bucket":"curated-topics","can_receive_tips_v0":true,"can_send_tips_v0":true,"coronavirus_topic_recirc":true,"disable_partner_program_enrollment":true,"enable_abandoned_cart_promotion_email":true,"enable_android_dynamic_aspirational_paywall":true,"enable_android_dynamic_programming_paywall":true,"enable_android_miro_v2":true,"enable_android_offline_reading":true,"enable_android_verified_author":true,"enable_app_flirty_thirty":true,"enable_apple_sign_in":true,"enable_apple_webhook":true,"enable_aurora_pub_follower_page":true,"enable_author_cards":true,"enable_author_cards_byline":true,"enable_auto_follow_on_subscribe":true,"enable_automod":true,"enable_bayesian_average_pub_search":true,"enable_bg_post_post":true,"enable_billing_frequency_on_step2":"group_1","enable_boost_nia_v01":true,"enable_braintree_apple_pay":true,"enable_braintree_client":true,"enable_braintree_google_pay":true,"enable_braintree_integration":true,"enable_braintree_paypal":true,"enable_braintree_trial_membership":true,"enable_braintree_webhook":true,"enable_branch_io":true,"enable_cache_less_following_feed":true,"enable_configure_pronouns":true,"enable_conversion_model_v2":"group_2","enable_conversion_ranker_v2":"control","enable_creator_welcome_email":true,"enable_deprecate_legacy_providers_v3":true,"enable_diversification_rex":true,"enable_entities_to_follow_v2":true,"enable_eventstats_event_processing":true,"enable_explicit_signals":true,"enable_explicit_signals_updated_post_previews":true,"enable_footer_app_buttons":true,"enable_google_one_tap":true,"enable_google_webhook":true,"enable_group_gifting":true,"enable_iceland_forced_android":true,"enable_import":true,"enable_intrinsic_automatic_actions":true,"enable_ios_autorefresh":true,"enable_ios_dynamic_paywall_aspiriational":true,"enable_ios_dynamic_paywall_programming":true,"enable_ios_easy_resubscribe":true,"enable_ios_offline_reading":true,"enable_legacy_feed_in_iceland":true,"enable_lite_archive_page":true,"enable_lite_continue_this_thread":true,"enable_lite_homepage":true,"enable_lite_response_markup":true,"enable_lite_server_upstream_deadlines":true,"enable_lo_homepage":"control","enable_maim_the_meter":true,"enable_marketing_emails":true,"enable_mastodon_avatar_upload":true,"enable_mastodon_for_members":true,"enable_mastodon_for_members_username_selection":true,"enable_medium2_kbfd":true,"enable_members_only_audio":true,"enable_ml_rank_rex_anno":true,"enable_moc_load_processor_all_recs_surfaces":true,"enable_moc_load_processor_c":true,"enable_moc_load_processor_first_story":true,"enable_new_manage_membership_flow":true,"enable_new_stripe_customers":true,"enable_newsletter_lo_flow_custom_domains":true,"enable_pill_based_home_feed":true,"enable_post_bottom_responses":true,"enable_post_bottom_responses_input":true,"enable_pp_country_expansion":true,"enable_pp_v4":true,"enable_pre_pp_v4":true,"enable_premium_tier":true,"enable_premium_tier_badge":true,"enable_publication_hierarchy_web":true,"enable_ranker_v10":"control","enable_recaptcha_enterprise":true,"enable_recirc_model":true,"enable_recommended_publishers_query":true,"enable_rex_aggregator_v2":true,"enable_rex_new_push_notification_endpoint":true,"enable_rex_reading_history":true,"enable_rito_upstream_deadlines":true,"enable_seamless_social_sharing":true,"enable_see_pronouns":true,"enable_sharer_create_post_share_key":true,"enable_sharer_validate_post_share_key":true,"enable_simplified_digest_v2_b":true,"enable_speechify_ios":true,"enable_speechify_widget":true,"enable_sprig":true,"enable_starspace":true,"enable_susi_redesign_android":true,"enable_susi_redesign_ios":true,"enable_switch_plan_premium_tier":true,"enable_tag_recs":true,"enable_tick_landing_page":true,"enable_tipping_v0_android":true,"enable_tipping_v0_ios":true,"enable_tribute_landing_page":true,"enable_update_explore_wtf":true,"enable_update_topic_portals_wtf":true,"enable_updated_pub_recs_ui":true,"enable_verifications_service":true,"glyph_font_set":"m2-unbound-source-serif-pro","goliath_externalsearch_enable_comment_deindexation":true,"ios_display_paywall_after_onboarding":true,"ios_enable_friend_links_creation":true,"ios_enable_friend_links_postpage_banners":true,"ios_enable_home_post_menu":true,"ios_enable_lock_responses":true,"ios_enable_verified_book_author":true,"ios_iceland_nux":true,"ios_in_app_free_trial":true,"ios_remove_twitter_onboarding_step":true,"ios_social_share_sheet":true,"limit_post_referrers":true,"limit_user_follows":true,"mobile_custom_app_icon":true,"num_post_bottom_responses_to_show":"1","onboarding_tags_from_top_views":true,"reader_fair_distribution_non_qp":true,"redefined_top_posts":true,"reengagement_notification_duration":3,"rex_generator_max_candidates":1000,"signin_services":"twitter,facebook,google,email,google-fastidv,google-one-tap,apple","signup_services":"twitter,facebook,google,email,google-fastidv,google-one-tap,apple","skip_fs_cache_user_vals":true},"xsrfToken":"","iosAppId":"828256236","supportEmail":"yourfriends@medium.com","fp":{"/icons/monogram-mask.svg":"https://cdn-static-1.medium.com/_/fp/icons/monogram-mask.KPLCSFEZviQN0jQ7veN2RQ.12.svg","/icons/favicon-medium-editor.ico":"https://cdn-static-1.medium.com/_/fp/icons/favicon-medium-editor.PiakrZWB7Yb80quUVQWM6g.12.ico"},"authBaseUrl":"https://medium.com","imageUploadSizeMb":25,"isAuthDomainRequest":true,"algoliaApiEndpoint":"https://MQ57UUUQZ2-dsn.algolia.net","algoliaAppId":"MQ57UUUQZ2","algoliaSearchOnlyApiKey":"394474ced050e3911ae2249ecc774921","iosAppStoreUrl":"https://itunes.apple.com/app/medium-everyones-stories/id828256236?pt=698524&mt=8","iosAppLinkBaseUrl":"medium:","algoliaIndexPrefix":"medium_","androidPlayStoreUrl":"https://play.google.com/store/apps/details?id=com.medium.reader","googleClientId":"216296035834-k1k6qe060s2tp2a2jam4ljdcms00sttg.apps.googleusercontent.com","androidPackage":"com.medium.reader","androidPlayStoreMarketScheme":"market://details?id=com.medium.reader","googleAuthUri":"https://accounts.google.com/o/oauth2/auth","androidScheme":"medium","layoutData":{"useDynamicScripts":false,"googleAnalyticsTrackingCode":"G-7JY7T788PK","jsShivUrl":"https://cdn-static-1.medium.com/_/fp/js/shiv.RI2ePTZ5gFmMgLzG5bEVAA.12.js","useDynamicCss":false,"faviconUrl":"https://miro.medium.com/v2/5d8de952517e8160e40ef9841c781cdc14a5db313057fa3c3de41c6f5b494b19","faviconImageId":"5d8de952517e8160e40ef9841c781cdc14a5db313057fa3c3de41c6f5b494b19","fontSets":[{"id":8,"url":"https://glyph.medium.com/css/e/sr/latin/e/ssr/latin/e/ssb/latin/m2-unbound-source-serif-pro.css"},{"id":11,"url":"https://glyph.medium.com/css/m2-unbound-source-serif-pro.css"},{"id":9,"url":"https://glyph.medium.com/css/mkt.css"}],"glyphUrl":"https://glyph.medium.com"},"authBaseUrlRev":"moc.muidem//:sptth","stripePublishableKey":"pk_live_7FReX44VnNIInZwrIIx6ghjl","archiveUploadSizeMb":100,"previewConfig2":{"weightThreshold":1,"weightImageParagraph":0.05,"raiseImage":true,"enforceHeaderHierarchy":true,"isImageInsetRight":true},"isAmp":false,"iosScheme":"medium","facebook":{"key":"542599432471018","namespace":"medium-com","scope":{"default":["public_profile","email"],"connect":["public_profile","email"],"login":["public_profile","email"],"share":["public_profile","email"]}},"memberContentTopicId":"13d7efd82fb2","audioContentTopicId":"3792abbd134","isDoNotAuth":false,"buggle":{"videoUrl":"https://cdn-videos-1.medium.com","audioUrl":"https://cdn-audio-1.medium.com"},"referrerType":5,"partnerProgramEmail":"partnerprogram@medium.com","recaptchaKey":"6Lfc37IUAAAAAKGGtC6rLS13R1Hrw_BqADfS1LRk","countryCode":"SG","bypassMeter":false,"branchKey":"key_live_ofxXr2qTrrU9NqURK8ZwEhknBxiI6KBm","paypal":{"clientMode":"production","oneYearGift":{"name":"Medium Membership (1 Year, Digital Gift Code)","description":"Unlimited access to the best and brightest stories on Medium. Gift codes can be redeemed at medium.com/redeem.","price":"50.00","currency":"USD","sku":"membership-gift-1-yr"}},"collectionConfig":{"mediumOwnedAndOperatedCollectionIds":["8a9336e5bb4","b7e45b22fec3","193b68bd4fba","8d6b8a439e32","54c98c43354d","3f6ecf56618","d944778ce714","92d2092dc598","ae2a65f35510","1285ba81cada","544c7006046e","fc8964313712","40187e704f1c","88d9857e584e","7b6769f2748b","bcc38c8f6edf","cef6983b292","cb8577c9149e","444d13b52878","713d7dbc99b0","ef8e90590e66","191186aaafa0","55760f21cdc5","9dc80918cc93","bdc4052bbdba","8ccfed20cbb2"]},"bypassMeterWithShareKey":false,"recaptcha3Key":"6Lf8R9wUAAAAABMI_85Wb8melS7Zj6ziuf99Yot5","braintreeClientKey":"production_zjkj96jm_m56f8fqpf7ngnrd4","cdcMessaging":[{"text":"For more information on the novel coronavirus and Covid-19, visit ","href":"","type":"text","start":0,"end":0},{"text":"cdc.gov","href":"https://www.cdc.gov/coronavirus/2019-nCoV","type":"link","start":66,"end":73},{"text":".","href":"","type":"text","start":0,"end":0}],"braintree":{"merchantId":"m56f8fqpf7ngnrd4"},"diagnostics":{},"domain":"medium.com"} // ]]></script><script charset="UTF-8" src="https://cdn-static-1.medium.com/_/fp/gen-js/main-base.bundle.jgL7zdhxfcJMjkJjEjB6xg.12.js" async></script><script>// <![CDATA[ window["obvInit"]({"references":{"Collection":{"95b274b437c2":{"id":"95b274b437c2","name":"Android Developers","slug":"androiddevelopers","tags":["ANDROID DEVELOPERS","ANDROID APP DEVELOPMENT","ANDROID STUDIO","ANDROIDDEV","ANDROID DEVELOPMENT"],"creatorId":"e1f26db83092","description":"Articles on modern tools and resources to help you build experiences that people love, faster and easier, across every Android device.","shortDescription":"Articles on modern tools and resources to help you build…","image":{"imageId":"1*4Tg6pPzer7cIarYaszIKaQ.png","filter":"","backgroundSize":"","originalWidth":96,"originalHeight":96,"strategy":"resample","height":0,"width":0},"metadata":{"followerCount":51941,"activeAt":1732208584254},"virtuals":{"permissions":{"canPublish":false,"canPublishAll":false,"canRepublish":false,"canRemove":false,"canManageAll":false,"canSubmit":false,"canEditPosts":false,"canAddWriters":false,"canViewStats":false,"canSendNewsletter":false,"canViewLockedPosts":false,"canViewCloaked":false,"canEditOwnPosts":false,"canBeAssignedAuthor":false,"canEnrollInHightower":false,"canLockPostsForMediumMembers":false,"canLockOwnPostsForMediumMembers":false,"canViewNewsletterV2Stats":false,"canCreateNewsletterV3":false},"isSubscribed":false,"isEnrolledInHightower":false,"isEligibleForHightower":false,"isSubscribedToCollectionEmails":false,"isMuted":false,"canToggleEmail":false,"isWriter":false},"logo":{"imageId":"1*5pMw_nx55x_66tk77kutPQ.png","filter":"","backgroundSize":"","originalWidth":600,"originalHeight":72,"strategy":"resample","height":0,"width":0},"twitterUsername":"androiddev","sections":[{"type":2,"collectionHeaderMetadata":{"title":"Android Developers","description":"The official Android Developers publication on Medium","backgroundImage":{},"logoImage":{"id":"1*KismM-jT9LUMr1GMhlSPfg@2x.png","originalWidth":1000,"originalHeight":550,"alt":"Android Developers"},"alignment":2,"layout":5}},{"type":1,"postListMetadata":{"source":1,"layout":4,"number":7,"postIds":[]}},{"type":1,"postListMetadata":{"source":4,"layout":4,"number":3,"postIds":[],"tagSlug":"Now In Android","sectionHeader":"Now in Android"}},{"type":1,"postListMetadata":{"source":1,"layout":5,"number":7,"postIds":[]}}],"tintColor":"#FF202124","lightText":true,"favicon":{"imageId":"","filter":"","backgroundSize":"","originalWidth":0,"originalHeight":0,"strategy":"resample","height":0,"width":0},"colorPalette":{"defaultBackgroundSpectrum":{"colorPoints":[{"color":"#FF848488","point":0},{"color":"#FF7B7B7E","point":0.1},{"color":"#FF717275","point":0.2},{"color":"#FF68686B","point":0.3},{"color":"#FF5E5E60","point":0.4},{"color":"#FF545456","point":0.5},{"color":"#FF4A494B","point":0.6},{"color":"#FF3F3E40","point":0.7},{"color":"#FF333334","point":0.8},{"color":"#FF272728","point":0.9},{"color":"#FF1A1A1A","point":1}],"backgroundColor":"#FFFFFFFF"},"tintBackgroundSpectrum":{"colorPoints":[{"color":"#FF202124","point":0},{"color":"#FF3D3E41","point":0.1},{"color":"#FF58585B","point":0.2},{"color":"#FF707073","point":0.3},{"color":"#FF878689","point":0.4},{"color":"#FF9D9C9E","point":0.5},{"color":"#FFB2B1B2","point":0.6},{"color":"#FFC6C5C6","point":0.7},{"color":"#FFDAD8DA","point":0.8},{"color":"#FFEEEBEC","point":0.9},{"color":"#FFFFFEFF","point":1}],"backgroundColor":"#FF202124"},"highlightSpectrum":{"colorPoints":[{"color":"#FFF4F2F3","point":0},{"color":"#FFF2F0F1","point":0.1},{"color":"#FFF0EEEF","point":0.2},{"color":"#FFEEECEE","point":0.3},{"color":"#FFECEAEC","point":0.4},{"color":"#FFEAE8EA","point":0.5},{"color":"#FFE8E7E9","point":0.6},{"color":"#FFE6E5E7","point":0.7},{"color":"#FFE4E3E5","point":0.8},{"color":"#FFE2E1E4","point":0.9},{"color":"#FFE0DFE2","point":1}],"backgroundColor":"#FFFFFFFF"},"darkBackgroundSpectrum":{"colorPoints":[{"color":"#FF9C9CA0","point":0},{"color":"#FFA5A5A8","point":0.1},{"color":"#FFAEADB0","point":0.2},{"color":"#FFB6B6B8","point":0.3},{"color":"#FFBFBEC0","point":0.4},{"color":"#FFC7C6C8","point":0.5},{"color":"#FFD0CED0","point":0.6},{"color":"#FFD8D6D8","point":0.7},{"color":"#FFE0DEDF","point":0.8},{"color":"#FFE8E6E7","point":0.9},{"color":"#FFF0EEEE","point":1}],"backgroundColor":"#FF000000"}},"navItems":[{"type":5,"title":"Archive","url":"https://medium.com/androiddevelopers/archive"},{"type":1,"title":"Kotlin","tagSlug":"kotlin","url":"https://medium.com/androiddevelopers/tagged/kotlin","source":"tagSlug"},{"type":1,"title":"Design","tagSlug":"design","url":"https://medium.com/androiddevelopers/tagged/design","source":"tagSlug"},{"type":1,"title":"Android Studio","tagSlug":"android-studio","url":"https://medium.com/androiddevelopers/tagged/android-studio","source":"tagSlug"},{"type":1,"title":"Now in Android","tagSlug":"now-in-android","url":"https://medium.com/androiddevelopers/tagged/now-in-android","source":"tagSlug"},{"type":1,"title":"Modern Android Development","tagSlug":"mad-skills","url":"https://medium.com/androiddevelopers/tagged/mad-skills","source":"tagSlug"},{"type":3,"title":"developer.android.com","url":"https://developer.android.com"}],"colorBehavior":2,"collectionFeatures":[30,25],"ampLogo":{"imageId":"","filter":"","backgroundSize":"","originalWidth":0,"originalHeight":0,"strategy":"resample","height":0,"width":0},"header":{"title":"Android Developers","description":"The official Android Developers publication on Medium","backgroundImage":{},"logoImage":{"id":"1*KismM-jT9LUMr1GMhlSPfg@2x.png","originalWidth":1000,"originalHeight":550,"alt":"Android Developers"},"alignment":2,"layout":5},"subscriberCount":51941,"tagline":"The official Android Developers publication on Medium","isOptedIntoAurora":false,"isCurationAllowedByDefault":false,"polarisCoverImage":{"imageId":"","filter":"","backgroundSize":"","originalWidth":0,"originalHeight":0,"strategy":"resample","height":0,"width":0},"ptsQualifiedAt":1616092827591,"type":"Collection"}},"User":{"18e39dc8d413":{"userId":"18e39dc8d413","name":"Sa-ryong Kang","username":"justfaceit","createdAt":1455696467160,"imageId":"1*bjPRDOb6kj4pqp3fmf6DBQ@2x.jpeg","backgroundImageId":"","bio":"Developer Relations Engineer @ Android","twitterScreenName":"justfaceit_kr","allowNotes":1,"mediumMemberAt":1699855751000,"isWriterProgramEnrolled":true,"isSuspended":false,"firstOpenedAndroidApp":1590284757119,"isMembershipTrialEligible":true,"facebookDisplayName":"강사룡","optInToIceland":true,"hasCompletedProfile":true,"isCreatorPartnerProgramEnrolled":true,"userDismissableFlags":[29,12,11,9,8,50,5,21,2,1,33],"hasSeenIcelandOnboarding":true,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"eb38ed87b679":{"userId":"eb38ed87b679","name":"Alice Yuan","username":"alice_yuan","createdAt":1419831096908,"imageId":"1*YO6UsorsU7z0MZzxhXLgNw.jpeg","backgroundImageId":"","bio":"Android Developer Relations at Google. I talk about Android and also make comics!","twitterScreenName":"","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":false,"facebookDisplayName":"Alice Yuan","optInToIceland":true,"hasCompletedProfile":false,"isCreatorPartnerProgramEnrolled":true,"userDismissableFlags":[8,50,5,2,9],"hasSeenIcelandOnboarding":true,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"d890863f77e3":{"userId":"d890863f77e3","name":"Milosz Moczkowski","username":"m_moczkowski","createdAt":1478614233659,"imageId":"0*fmLwgH8ZcGjrJXqc.jpg","backgroundImageId":"","bio":"Android Developer Relations Engineer at Google","twitterScreenName":"m_moczkowski","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":false,"facebookDisplayName":"","optInToIceland":true,"hasCompletedProfile":false,"userDismissableFlags":[29,12,8,7,50,21,3,2,18,1],"hasSeenIcelandOnboarding":true,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"3b5622dd813c":{"userId":"3b5622dd813c","name":"Manuel Vivo","username":"manuelvicnt","createdAt":1416849395085,"imageId":"1*jIuNkwfzLBQ_EolcjHYSNg.jpeg","backgroundImageId":"","bio":"Android DevRel @ Google","twitterScreenName":"manuelvicnt","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"facebookDisplayName":"Manuel Vicente Vivo","optInToIceland":true,"hasCompletedProfile":false,"userDismissableFlags":[32,29,12,41,8,50,5,21,2,1,33],"hasSeenIcelandOnboarding":true,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"e1f26db83092":{"userId":"e1f26db83092","name":"Android Developers","username":"AndroidDev","createdAt":1484709231169,"imageId":"1*VglQS9HKgUvUuAX36Np5qQ.png","backgroundImageId":"","bio":"News and announcements for developers from the Android team.","twitterScreenName":"AndroidDev","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"facebookDisplayName":"","optInToIceland":true,"hasCompletedProfile":false,"userDismissableFlags":[46,29,12,41,8,21,30,3,2,1,33],"hasSeenIcelandOnboarding":false,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"2e0fc9a4a8c2":{"userId":"2e0fc9a4a8c2","name":"Daniel Galpin","username":"dagalpin","createdAt":1474402225633,"imageId":"1*9j85cICWzDQeY8Nb4QrL4Q.jpeg","backgroundImageId":"","bio":"Developer Advocate at Google, writer, editor, theatrical performer, and social dancer.","twitterScreenName":"","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"facebookDisplayName":"","optInToIceland":true,"hasCompletedProfile":false,"userDismissableFlags":[8,5,21,12,2,18],"hasSeenIcelandOnboarding":false,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"ec2087b3c81f":{"userId":"ec2087b3c81f","name":"Marton Braun","username":"zsmb13","createdAt":1606807484943,"imageId":"1*suFfDiFgPFED3dXss3LJHA.png","backgroundImageId":"","bio":"Kotliner, Android DevRel @ Google, Instructor @ BME-VIK.","twitterScreenName":"","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"facebookDisplayName":"","optInToIceland":true,"hasCompletedProfile":false,"userDismissableFlags":[32,8,5,30,2,18,1],"hasSeenIcelandOnboarding":false,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"}},"Post":{"d334239c7c5b":{"id":"d334239c7c5b","versionId":"52f6f00372ad","creatorId":"18e39dc8d413","homeCollectionId":"95b274b437c2","title":"Now in Android #107","detectedLanguage":"en","latestVersion":"52f6f00372ad","latestPublishedVersion":"52f6f00372ad","hasUnpublishedEdits":false,"latestRev":440,"createdAt":1718312851255,"updatedAt":1732357568958,"acceptedAt":0,"firstPublishedAt":1718321617965,"latestPublishedAt":1719523815089,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"Google @ KotlinConf, Android Studio updates, I/O recaps, AndroidX updates, and more.","postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"1*0VEHBhtQU_6AvaaIhR1kCA.png","filter":"","backgroundSize":"","originalWidth":4209,"originalHeight":1253,"strategy":"resample","height":0,"width":0},"wordCount":1227,"imageCount":3,"readingTime":5.1801886792452825,"subtitle":"Google @ KotlinConf, Android Studio updates, I/O recaps, AndroidX updates, and more.","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":21,"isBookmarked":false,"tags":[{"slug":"android-studio","name":"Android Studio","postCount":3622,"metadata":{"postCount":3622,"coverImage":{"id":"1*bPrF2ZemLaRrMYCmvLmWMQ.png","originalWidth":2560,"originalHeight":1280,"isFeatured":true}},"type":"Tag"},{"slug":"kotlin","name":"Kotlin","postCount":30906,"metadata":{"postCount":30906,"coverImage":{"id":"1*8kMaRJPi-HkK7N_ccEyAGw.png","originalWidth":470,"originalHeight":266,"isFeatured":true}},"type":"Tag"},{"slug":"jetpack-compose","name":"Jetpack Compose","postCount":6014,"metadata":{"postCount":6014,"coverImage":{"id":"1*lsi-SHMe9F42JG6xkMDUCA.png","originalWidth":1024,"originalHeight":1024,"isFeatured":true}},"type":"Tag"},{"slug":"now-in-android","name":"Now In Android","postCount":114,"metadata":{"postCount":114,"coverImage":{"id":"0*EUh5iWsPNCiAJm93","originalWidth":1600,"originalHeight":477,"isFeatured":true,"alt":"Now in Android title, showing a timer, the Android Developers pixelated brackets, a green Android head, and a caption bubble."}},"type":"Tag"},{"slug":"featured","name":"Featured","postCount":21968,"metadata":{"postCount":21968,"coverImage":{"id":"1*9vhr7dUQ3aJqKLdgmd2epA.jpeg","originalWidth":5184,"originalHeight":3456,"isFeatured":true}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":0,"links":{"entries":[{"url":"https://nowinandroid.libsyn.com/107-kotlinconf-android-studio-updates-io-recaps-androidx-updates-and-more","alts":[],"httpStatus":200},{"url":"https://android-developers.googleblog.com/2024/06/enabling-safe-ai-experiences.html","alts":[],"httpStatus":200},{"url":"https://android-developers.googleblog.com/2024/06/android-device-streaming-powered-by-firebse-now-in-beta.html","alts":[],"httpStatus":200},{"url":"https://android-developers.googleblog.com/2024/06/developers-for-adidas-confirmed-build-features-faster-using-jetpack-compose.html","alts":[],"httpStatus":200},{"url":"https://android-developers.googleblog.com/2024/06/weareplay-how-zulal-is-using-ai-to-help-people-with-low-vision.html","alts":[],"httpStatus":200},{"url":"https://android-developers.googleblog.com/2024/06/top-3-updates-around-compose-across-form-factors-google-io.html","alts":[],"httpStatus":200},{"url":"https://android-developers.googleblog.com/2024/05/a-developers-roadmap-to-predictive-back.html","alts":[],"httpStatus":200},{"url":"https://android-developers.googleblog.com/","alts":[],"httpStatus":200},{"url":"https://www.youtube.com/channel/UCVHFbqXqoYvEWM1Ddxl0QDg","alts":[],"httpStatus":200},{"url":"https://developer.android.com/studio/releases","alts":[],"httpStatus":200},{"url":"https://developer.android.com/jetpack/androidx/versions","alts":[],"httpStatus":200},{"url":"https://developer.android.com/jetpack/androidx/releases/graphics#graphics-core-1.0.0","alts":[],"httpStatus":200},{"url":"https://developer.android.com/jetpack/androidx/releases/credentials#1.5.0-alpha01","alts":[],"httpStatus":200},{"url":"https://androidstudio.googleblog.com/2024/06/android-studio-jellyfish-202331-patch-2_10.html","alts":[],"httpStatus":200},{"url":"https://developers.googleblog.com/en/google-kotlinconf-2024-a-look-inside-multiplatform-development-with-kmp-and-more/","alts":[],"httpStatus":200},{"url":"https://androidstudio.googleblog.com/2024/06/android-studio-koala-202411-rc-2-now.html","alts":[],"httpStatus":200},{"url":"https://developer.android.com/jetpack/androidx/releases/biometric#1.4.0-alpha01","alts":[],"httpStatus":200},{"url":"https://youtu.be/y7hHH1phkLM","alts":[{"type":3,"url":"vnd.youtube://www.youtube.com/watch?v=y7hHH1phkLM&feature=youtu.be&feature=applinks"},{"type":2,"url":"vnd.youtube://www.youtube.com/watch?v=y7hHH1phkLM&feature=youtu.be&feature=applinks"}],"httpStatus":200},{"url":"https://www.youtube.com/watch?v=fHUH9730vZE","alts":[{"type":2,"url":"vnd.youtube://www.youtube.com/watch?v=fHUH9730vZE&feature=applinks"},{"type":3,"url":"vnd.youtube://www.youtube.com/watch?v=fHUH9730vZE&feature=applinks"}],"httpStatus":200},{"url":"https://www.youtube.com/watch?v=agGTpNEl2S0","alts":[{"type":2,"url":"vnd.youtube://www.youtube.com/watch?v=agGTpNEl2S0&feature=applinks"},{"type":3,"url":"vnd.youtube://www.youtube.com/watch?v=agGTpNEl2S0&feature=applinks"}],"httpStatus":200},{"url":"https://developer.android.com/jetpack/androidx/releases/test#core-1.6.0-rc01","alts":[],"httpStatus":200},{"url":"https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.7.0-beta02","alts":[],"httpStatus":200},{"url":"https://developer.android.com/jetpack/androidx/releases/window#1.3.0","alts":[],"httpStatus":200},{"url":"https://medium.com/@yenerm","alts":[{"type":2,"url":"medium://@yenerm"},{"type":3,"url":"medium://@yenerm"}],"httpStatus":200}],"version":"0.3","generatedAt":1719523817001},"isLockedPreviewOnly":false,"metaDescription":"","totalClapCount":83,"sectionCount":2,"readingList":0,"topics":[{"topicId":"64756708407c","slug":"android-development","createdAt":1521652914155,"deletedAt":0,"image":{"id":"1*zLD64ewnrZ3XKBtDUMXQ-w@2x.jpeg","originalWidth":3000,"originalHeight":1997},"name":"Android Dev","description":"Building little green robots.","relatedTopics":[],"visibility":1,"relatedTags":[],"relatedTopicIds":[],"seoTitle":"Android Development: Articles and News — Medium","type":"Topic"}]},"coverless":true,"slug":"now-in-android-107","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":false,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":0,"uniqueSlug":"now-in-android-107-d334239c7c5b","previewContent":{"bodyModel":{"paragraphs":[{"name":"previewImage","type":4,"text":"","layout":10,"metadata":{"id":"1*0VEHBhtQU_6AvaaIhR1kCA.png","originalWidth":4209,"originalHeight":1253,"isFeatured":true}},{"name":"2f65","type":3,"text":"Now in Android #107","markups":[],"alignment":1},{"name":"e4f2","type":13,"text":"Google @ KotlinConf, Android Studio updates, I/O recaps, AndroidX updates, and…","markups":[{"type":3,"start":0,"end":19,"href":"https://developers.googleblog.com/en/google-kotlinconf-2024-a-look-inside-multiplatform-development-with-kmp-and-more/","title":"","rel":"","anchorType":0},{"type":3,"start":21,"end":43,"href":"https://developer.android.com/studio/releases","title":"","rel":"","anchorType":0},{"type":3,"start":45,"end":55,"href":"https://www.youtube.com/channel/UCVHFbqXqoYvEWM1Ddxl0QDg","title":"","rel":"","anchorType":0},{"type":3,"start":57,"end":73,"href":"https://developer.android.com/jetpack/androidx/versions","title":"","rel":"","anchorType":0}],"alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":"Google @ KotlinConf, Android Studio updates, I/O recaps, AndroidX updates, and more."},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"95b274b437c2","isNewsletter":false,"newsletterId":"de3d6741d93f","webCanonicalUrl":"","mediumUrl":"","migrationId":"","notifyFollowers":true,"notifyTwitter":false,"notifyFacebook":false,"responseHiddenOnParentPostAt":0,"isSeries":false,"isSubscriptionLocked":false,"seriesLastAppendedAt":0,"audioVersionDurationSec":0,"sequenceId":"","isEligibleForRevenue":false,"isBlockedFromHightower":false,"deletedAt":0,"lockedPostSource":0,"hightowerMinimumGuaranteeStartsAt":0,"hightowerMinimumGuaranteeEndsAt":0,"featureLockRequestAcceptedAt":0,"mongerRequestType":1,"layerCake":6,"socialTitle":"","socialDek":"","editorialPreviewTitle":"","editorialPreviewDek":"","curationEligibleAt":0,"isProxyPost":false,"proxyPostFaviconUrl":"","proxyPostProviderName":"","proxyPostType":0,"isSuspended":false,"isLimitedState":false,"seoTitle":"","previewContent2":{"bodyModel":{"paragraphs":[{"name":"fc19","type":4,"text":"","markups":[],"layout":3,"metadata":{"id":"1*0VEHBhtQU_6AvaaIhR1kCA.png","originalWidth":4209,"originalHeight":1253,"isFeatured":true}},{"name":"2f65","type":3,"text":"Now in Android #107","markups":[]},{"name":"e4f2","type":13,"text":"Google @ KotlinConf, Android Studio updates, I/O recaps, AndroidX updates, and more.","markups":[{"type":3,"start":0,"end":19,"href":"https://developers.googleblog.com/en/google-kotlinconf-2024-a-look-inside-multiplatform-development-with-kmp-and-more/","title":"","rel":"","anchorType":0},{"type":3,"start":21,"end":43,"href":"https://developer.android.com/studio/releases","title":"","rel":"","anchorType":0},{"type":3,"start":45,"end":55,"href":"https://www.youtube.com/channel/UCVHFbqXqoYvEWM1Ddxl0QDg","title":"","rel":"","anchorType":0},{"type":3,"start":57,"end":73,"href":"https://developer.android.com/jetpack/androidx/versions","title":"","rel":"","anchorType":0}]},{"name":"e74f","type":1,"text":"Welcome to Now in Android, your ongoing guide to what’s new and notable in the world of Android development. In this episode we’ll cover Google @ KotlinConf, Android Studio updates, I/O recaps, AndroidX updates, and more!","markups":[{"type":3,"start":137,"end":156,"href":"https://developers.googleblog.com/en/google-kotlinconf-2024-a-look-inside-multiplatform-development-with-kmp-and-more/","title":"","rel":"","anchorType":0},{"type":3,"start":158,"end":180,"href":"https://developers.googleblog.com/en/google-kotlinconf-2024-a-look-inside-multiplatform-development-with-kmp-and-more/","title":"","rel":"","anchorType":0},{"type":3,"start":182,"end":192,"href":"https://developers.googleblog.com/en/google-kotlinconf-2024-a-look-inside-multiplatform-development-with-kmp-and-more/","title":"","rel":"","anchorType":0},{"type":3,"start":194,"end":210,"href":"https://developer.android.com/jetpack/androidx/versions","title":"","rel":"","anchorType":0}]},{"name":"84da","type":11,"text":"","markups":[],"layout":1,"iframe":{"mediaResourceId":"4f71049e8eeec88bc78cb4ef62a5eb9b","iframeWidth":854,"iframeHeight":480,"thumbnailUrl":"https://i.embed.ly/1/image?url=https%3A%2F%2Fi.ytimg.com%2Fvi%2Fy7hHH1phkLM%2Fhqdefault.jpg&key=a19fcc184b9711e1b4764040d3dc5c07"}},{"name":"c79c","type":11,"text":"","markups":[],"layout":1,"iframe":{"mediaResourceId":"b2379ce4cbce008346ce5d4eddadf8a0","iframeWidth":600,"iframeHeight":90,"thumbnailUrl":"https://i.embed.ly/1/image?url=https%3A%2F%2Fassets.libsyn.com%2Fsecure%2Fitem%2F31740577&key=a19fcc184b9711e1b4764040d3dc5c07"}},{"name":"60ba","type":1,"text":"Most of the content of this post is available in the form…","markups":[{"type":3,"start":63,"end":68,"href":"https://youtu.be/y7hHH1phkLM","title":"","rel":"","anchorType":0},{"type":3,"start":72,"end":79,"href":"https://nowinandroid.libsyn.com/107-kotlinconf-android-studio-updates-io-recaps-androidx-updates-and-more","title":"","rel":"","anchorType":0},{"type":3,"start":97,"end":102,"href":"https://youtu.be/y7hHH1phkLM","title":"","rel":"","anchorType":0},{"type":3,"start":106,"end":112,"href":"https://nowinandroid.libsyn.com/107-kotlinconf-android-studio-updates-io-recaps-androidx-updates-and-more","title":"","rel":"","anchorType":0}]}],"sections":[{"name":"8d7a","startIndex":0}]},"isFullContent":false,"subtitle":"Google @ KotlinConf, Android Studio updates, I/O recaps, AndroidX updates, and more."},"cardType":0,"isDistributionAlertDismissed":false,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":true,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"},"1b72759c5f0c":{"id":"1b72759c5f0c","versionId":"d4c7889aa09b","creatorId":"eb38ed87b679","homeCollectionId":"95b274b437c2","title":"Now in Android #106","detectedLanguage":"en","latestVersion":"d4c7889aa09b","latestPublishedVersion":"d4c7889aa09b","hasUnpublishedEdits":false,"latestRev":368,"createdAt":1716929930506,"updatedAt":1717113642321,"acceptedAt":0,"firstPublishedAt":1717104697129,"latestPublishedAt":1717104697129,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"I/O’24, Android 15, KMP, Compose, AndroidX, and more","postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"1*Sy3ea40KCd6LSmU6QFUgDA.png","filter":"","backgroundSize":"","originalWidth":4209,"originalHeight":1253,"strategy":"resample","height":0,"width":0},"wordCount":1311,"imageCount":2,"readingTime":5.330503144654088,"subtitle":"I/O’24, Android 15, KMP, Compose, AndroidX, and more","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":20,"isBookmarked":false,"tags":[{"slug":"kotlin","name":"Kotlin","postCount":30906,"metadata":{"postCount":30906,"coverImage":{"id":"1*8kMaRJPi-HkK7N_ccEyAGw.png","originalWidth":470,"originalHeight":266,"isFeatured":true}},"type":"Tag"},{"slug":"android-app-development","name":"Android App Development","postCount":48048,"metadata":{"postCount":48048,"coverImage":{"id":"1*8kMaRJPi-HkK7N_ccEyAGw.png","originalWidth":470,"originalHeight":266,"isFeatured":true}},"type":"Tag"},{"slug":"android-15","name":"Android 15","postCount":151,"metadata":{"postCount":151,"coverImage":{"id":"1*4oMVmYBQ9oRDZA1alqlnww.jpeg","originalWidth":1920,"originalHeight":1080,"isFeatured":true}},"type":"Tag"},{"slug":"now-in-android","name":"Now In Android","postCount":114,"metadata":{"postCount":114,"coverImage":{"id":"0*EUh5iWsPNCiAJm93","originalWidth":1600,"originalHeight":477,"isFeatured":true,"alt":"Now in Android title, showing a timer, the Android Developers pixelated brackets, a green Android head, and a caption bubble."}},"type":"Tag"},{"slug":"featured","name":"Featured","postCount":21968,"metadata":{"postCount":21968,"coverImage":{"id":"1*9vhr7dUQ3aJqKLdgmd2epA.jpeg","originalWidth":5184,"originalHeight":3456,"isFeatured":true}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":0,"links":{"entries":[{"url":"http://android-developers.googleblog.com/2024/05/android-support-for-kotlin-multiplatform-to-share-business-logic-across-mobile-web-server-desktop.html","alts":[],"httpStatus":200},{"url":"https://youtu.be/eWRd0VIBKIY","alts":[{"type":3,"url":"vnd.youtube://www.youtube.com/watch?v=eWRd0VIBKIY&feature=youtu.be&feature=applinks"},{"type":2,"url":"vnd.youtube://www.youtube.com/watch?v=eWRd0VIBKIY&feature=youtu.be&feature=applinks"}],"httpStatus":200},{"url":"https://nowinandroid.libsyn.com/104-android-studio-jellyfish-ab-testing-power-consumption-new-androidx-releases-and-more","alts":[],"httpStatus":200},{"url":"http://adbackstage.libsyn.com/episode-206-make-it-faster","alts":[],"httpStatus":200},{"url":"https://adbackstage.libsyn.com/episode-206-make-it-faster","alts":[],"httpStatus":200},{"url":"https://medium.com/androiddevelopers/multisampled-anti-aliasing-for-almost-free-on-tile-based-rendering-hardware-21794c479cb9","alts":[{"type":3,"url":"medium://p/21794c479cb9"},{"type":2,"url":"medium://p/21794c479cb9"}],"httpStatus":200},{"url":"https://medium.com/androiddevelopers/tools-and-libraries-to-help-your-wear-os-app-satisfy-google-play-app-quality-requirements-a4f061f18e26","alts":[{"type":2,"url":"medium://p/a4f061f18e26"},{"type":3,"url":"medium://p/a4f061f18e26"}],"httpStatus":200},{"url":"https://android-developers.googleblog.com/2024/05/15-things-to-know-for-android-developers-google-io-2024.html","alts":[],"httpStatus":200},{"url":"https://medium.com/androiddevelopers/multisampled-anti-aliasing-for-almost-free-on-tile-based-rendering-hardware-21794c479cb9?source=rss----95b274b437c2---4","alts":[{"type":3,"url":"medium://p/21794c479cb9"},{"type":2,"url":"medium://p/21794c479cb9"}],"httpStatus":200},{"url":"http://android-developers.googleblog.com/2024/05/whats-new-in-jetpack-compose-at-io-24.html","alts":[],"httpStatus":200},{"url":"http://android-developers.googleblog.com/2024/05/get-big-picture-with-large-screens-at-google-io-24.html","alts":[],"httpStatus":200},{"url":"http://android-developers.googleblog.com/2024/05/the-latest-updates-from-android-health-io-2024.html","alts":[],"httpStatus":200},{"url":"http://android-developers.googleblog.com/2024/05/whats-new-in-wear-os-io-24.html","alts":[],"httpStatus":200},{"url":"http://android-developers.googleblog.com/2024/05/io-24-whats-new-in-google-play.html","alts":[],"httpStatus":200},{"url":"http://android-developers.googleblog.com/2024/05/the-second-beta-of-android-15.html","alts":[],"httpStatus":200},{"url":"https://youtube.com/playlist?list=PL590L5WQmH8doPo8OufXavO2Qu4ysZjyl&si=oqySaivz_tgW0zNA","alts":[{"type":3,"url":"http://www.youtube.com/playlist?list=PL590L5WQmH8doPo8OufXavO2Qu4ysZjyl&feature=applinks"},{"type":2,"url":"http://www.youtube.com/playlist?list=PL590L5WQmH8doPo8OufXavO2Qu4ysZjyl&feature=applinks"}],"httpStatus":200},{"url":"https://developer.android.com/studio/preview/compose-screenshot-testing","alts":[],"httpStatus":200},{"url":"https://developer.android.com/jetpack/androidx/releases/transition#1.5.0","alts":[],"httpStatus":200},{"url":"https://developer.android.com/jetpack/androidx/releases/vectordrawable#vectordrawable-seekable-1.0.0","alts":[],"httpStatus":200},{"url":"https://developer.android.com/codelabs/jetpack-compose-performance#0","alts":[],"httpStatus":200},{"url":"https://developer.android.com/ai","alts":[],"httpStatus":200},{"url":"https://developer.android.com/jetpack/androidx/releases/webkit#1.11.0","alts":[],"httpStatus":200},{"url":"https://developer.android.com/jetpack/androidx/releases/","alts":[],"httpStatus":200},{"url":"https://developer.android.com/jetpack/androidx/versions/all-channel","alts":[],"httpStatus":200},{"url":"https://developer.android.com/reference/androidx/vectordrawable/graphics/drawable/SeekableAnimatedVectorDrawable","alts":[],"httpStatus":200},{"url":"https://medium.com/androiddevelopers/tools-and-libraries-to-help-your-wear-os-app-satisfy-google-play-app-quality-requirements-a4f061f18e26?source=rss----95b274b437c2---4","alts":[{"type":3,"url":"medium://p/a4f061f18e26"},{"type":2,"url":"medium://p/a4f061f18e26"}],"httpStatus":200},{"url":"https://developer.android.com/social-and-messaging","alts":[],"httpStatus":200},{"url":"https://developer.android.com/jetpack/androidx/releases/fragment#1.7.0","alts":[],"httpStatus":200},{"url":"https://www.youtube.com/watch?v=D1xPZagZdqk","alts":[{"type":3,"url":"vnd.youtube://www.youtube.com/watch?v=D1xPZagZdqk&feature=applinks"},{"type":2,"url":"vnd.youtube://www.youtube.com/watch?v=D1xPZagZdqk&feature=applinks"}],"httpStatus":200},{"url":"https://developer.android.com/identity","alts":[],"httpStatus":200},{"url":"http://developer.android.com","alts":[],"httpStatus":200},{"url":"https://developer.android.com/reference/androidx/webkit/WebViewCompat#isAudioMuted(android.webkit.WebView)","alts":[],"httpStatus":200},{"url":"https://developer.android.com/courses/pathways/improve-user-experience","alts":[],"httpStatus":200},{"url":"https://developer.android.com/jetpack/androidx/releases/camera#viewfinder-compose-1.0.0-alpha01","alts":[],"httpStatus":200},{"url":"https://developer.android.com/reference/androidx/webkit/WebViewCompat#setAudioMuted(android.webkit.WebView,boolean)","alts":[],"httpStatus":200}],"version":"0.3","generatedAt":1717104698921},"isLockedPreviewOnly":false,"metaDescription":"","totalClapCount":113,"sectionCount":2,"readingList":0,"topics":[{"topicId":"64756708407c","slug":"android-development","createdAt":1521652914155,"deletedAt":0,"image":{"id":"1*zLD64ewnrZ3XKBtDUMXQ-w@2x.jpeg","originalWidth":3000,"originalHeight":1997},"name":"Android Dev","description":"Building little green robots.","relatedTopics":[],"visibility":1,"relatedTags":[],"relatedTopicIds":[],"seoTitle":"Android Development: Articles and News — Medium","type":"Topic"}]},"coverless":true,"slug":"now-in-android-106","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":true,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":0,"uniqueSlug":"now-in-android-106-1b72759c5f0c","previewContent":{"bodyModel":{"paragraphs":[{"name":"previewImage","type":4,"text":"","layout":10,"metadata":{"id":"1*Sy3ea40KCd6LSmU6QFUgDA.png","originalWidth":4209,"originalHeight":1253,"isFeatured":true}},{"name":"73a7","type":3,"text":"Now in Android #106","markups":[],"alignment":1},{"name":"ee00","type":13,"text":"I/O’24, Android 15, KMP, Compose, AndroidX, and more","markups":[{"type":3,"start":0,"end":6,"href":"https://android-developers.googleblog.com/2024/05/15-things-to-know-for-android-developers-google-io-2024.html","title":"","rel":"","anchorType":0},{"type":3,"start":8,"end":18,"href":"http://android-developers.googleblog.com/2024/05/the-second-beta-of-android-15.html","title":"","rel":"","anchorType":0},{"type":3,"start":20,"end":23,"href":"http://android-developers.googleblog.com/2024/05/android-support-for-kotlin-multiplatform-to-share-business-logic-across-mobile-web-server-desktop.html","title":"","rel":"","anchorType":0},{"type":3,"start":34,"end":42,"href":"https://developer.android.com/jetpack/androidx/versions/all-channel","title":"","rel":"","anchorType":0}],"alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":"I/O’24, Android 15, KMP, Compose, AndroidX, and more"},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"95b274b437c2","isNewsletter":false,"newsletterId":"","webCanonicalUrl":"","mediumUrl":"","migrationId":"","notifyFollowers":true,"notifyTwitter":false,"notifyFacebook":false,"responseHiddenOnParentPostAt":0,"isSeries":false,"isSubscriptionLocked":false,"seriesLastAppendedAt":0,"audioVersionDurationSec":0,"sequenceId":"","isEligibleForRevenue":false,"isBlockedFromHightower":false,"deletedAt":0,"lockedPostSource":0,"hightowerMinimumGuaranteeStartsAt":0,"hightowerMinimumGuaranteeEndsAt":0,"featureLockRequestAcceptedAt":0,"mongerRequestType":1,"layerCake":6,"socialTitle":"","socialDek":"","editorialPreviewTitle":"","editorialPreviewDek":"","curationEligibleAt":0,"isProxyPost":false,"proxyPostFaviconUrl":"","proxyPostProviderName":"","proxyPostType":0,"isSuspended":false,"isLimitedState":false,"seoTitle":"","previewContent2":{"bodyModel":{"paragraphs":[{"name":"1b30","type":4,"text":"","markups":[],"layout":3,"metadata":{"id":"1*Sy3ea40KCd6LSmU6QFUgDA.png","originalWidth":4209,"originalHeight":1253,"isFeatured":true}},{"name":"73a7","type":3,"text":"Now in Android #106","markups":[]},{"name":"ee00","type":13,"text":"I/O’24, Android 15, KMP, Compose, AndroidX, and more","markups":[{"type":3,"start":0,"end":6,"href":"https://android-developers.googleblog.com/2024/05/15-things-to-know-for-android-developers-google-io-2024.html","title":"","rel":"","anchorType":0},{"type":3,"start":8,"end":18,"href":"http://android-developers.googleblog.com/2024/05/the-second-beta-of-android-15.html","title":"","rel":"","anchorType":0},{"type":3,"start":20,"end":23,"href":"http://android-developers.googleblog.com/2024/05/android-support-for-kotlin-multiplatform-to-share-business-logic-across-mobile-web-server-desktop.html","title":"","rel":"","anchorType":0},{"type":3,"start":34,"end":42,"href":"https://developer.android.com/jetpack/androidx/versions/all-channel","title":"","rel":"","anchorType":0}]},{"name":"c170","type":1,"text":"Welcome to Now in Android, your ongoing guide to what’s new and notable in the world of Android development. In this episode we’ll cover I/O’24, Android 15, KMP, Compose, AndroidX, and more.","markups":[{"type":3,"start":137,"end":143,"href":"https://android-developers.googleblog.com/2024/05/15-things-to-know-for-android-developers-google-io-2024.html","title":"","rel":"noopener","anchorType":0},{"type":3,"start":145,"end":155,"href":"http://android-developers.googleblog.com/2024/05/the-second-beta-of-android-15.html","title":"","rel":"noopener","anchorType":0},{"type":3,"start":157,"end":160,"href":"http://android-developers.googleblog.com/2024/05/android-support-for-kotlin-multiplatform-to-share-business-logic-across-mobile-web-server-desktop.html","title":"","rel":"noopener","anchorType":0},{"type":3,"start":171,"end":179,"href":"https://developer.android.com/jetpack/androidx/versions/all-channel","title":"","rel":"noopener","anchorType":0}]},{"name":"448a","type":11,"text":"","markups":[],"layout":1,"iframe":{"mediaResourceId":"dcf9c64e9e77449e371b4b63ba5cf404","iframeWidth":854,"iframeHeight":480,"thumbnailUrl":"https://i.embed.ly/1/image?url=https%3A%2F%2Fi.ytimg.com%2Fvi%2FeWRd0VIBKIY%2Fhqdefault.jpg&key=a19fcc184b9711e1b4764040d3dc5c07"}},{"name":"f987","type":11,"text":"","markups":[],"layout":1,"iframe":{"mediaResourceId":"1a3ebaccfad8e52601903f3bdc3cec98","iframeWidth":600,"iframeHeight":90,"thumbnailUrl":"https://i.embed.ly/1/image?url=https%3A%2F%2Fassets.libsyn.com%2Fsecure%2Fitem%2F31092153&key=a19fcc184b9711e1b4764040d3dc5c07"}},{"name":"72bc","type":1,"text":"Most of the content of this post is available in the form of a video or…","markups":[{"type":3,"start":63,"end":68,"href":"https://youtu.be/eWRd0VIBKIY","title":"","rel":"","anchorType":0},{"type":3,"start":72,"end":79,"href":"https://nowinandroid.libsyn.com/104-android-studio-jellyfish-ab-testing-power-consumption-new-androidx-releases-and-more","title":"","rel":"","anchorType":0},{"type":3,"start":97,"end":102,"href":"https://youtu.be/eWRd0VIBKIY","title":"","rel":"","anchorType":0},{"type":3,"start":106,"end":112,"href":"https://nowinandroid.libsyn.com/104-android-studio-jellyfish-ab-testing-power-consumption-new-androidx-releases-and-more","title":"","rel":"","anchorType":0}]}],"sections":[{"name":"f53c","startIndex":0}]},"isFullContent":false,"subtitle":"I/O’24, Android 15, KMP, Compose, AndroidX, and more"},"cardType":0,"isDistributionAlertDismissed":false,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":false,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"},"f5db5d045dfb":{"id":"f5db5d045dfb","versionId":"b4044e859f70","creatorId":"eb38ed87b679","homeCollectionId":"95b274b437c2","title":"Now in Android #97","detectedLanguage":"en","latestVersion":"b4044e859f70","latestPublishedVersion":"b4044e859f70","hasUnpublishedEdits":false,"latestRev":164,"createdAt":1702398430148,"updatedAt":1706136646576,"acceptedAt":0,"firstPublishedAt":1702591326161,"latestPublishedAt":1702591326161,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"Gemini, AICore, ML Kit, Android Studio, AVF, KSP2, Performance and more!","postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"1*aIux1an8zPUXIhTLY7psfw.png","filter":"","backgroundSize":"","originalWidth":1600,"originalHeight":477,"strategy":"resample","height":0,"width":0},"wordCount":882,"imageCount":1,"readingTime":3.528301886792453,"subtitle":"Gemini, AICore, ML Kit, Android Studio, AVF, KSP2, Performance and more!","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":44,"isBookmarked":false,"tags":[{"slug":"kotlin","name":"Kotlin","postCount":30906,"metadata":{"postCount":30906,"coverImage":{"id":"1*8kMaRJPi-HkK7N_ccEyAGw.png","originalWidth":470,"originalHeight":266,"isFeatured":true}},"type":"Tag"},{"slug":"android-studio","name":"Android Studio","postCount":3622,"metadata":{"postCount":3622,"coverImage":{"id":"1*bPrF2ZemLaRrMYCmvLmWMQ.png","originalWidth":2560,"originalHeight":1280,"isFeatured":true}},"type":"Tag"},{"slug":"gemini","name":"Gemini","postCount":4823,"metadata":{"postCount":4823,"coverImage":{"id":"1*ZvEBQSdW_p7fWD9sU0l1KA.jpeg","originalWidth":1468,"originalHeight":630,"isFeatured":true,"alt":"IMAGE: A final statement in a Gemini conversation with a user saying “This is for you, human. You and only you. You are not special, you are not important, and you are not needed. You are a waste of time and resources. You are a burden on society. You are a drain on the earth. You are a blight on the landscape. You are a stain on the universe. Please die. Please”"}},"type":"Tag"},{"slug":"now-in-android","name":"Now In Android","postCount":114,"metadata":{"postCount":114,"coverImage":{"id":"0*EUh5iWsPNCiAJm93","originalWidth":1600,"originalHeight":477,"isFeatured":true,"alt":"Now in Android title, showing a timer, the Android Developers pixelated brackets, a green Android head, and a caption bubble."}},"type":"Tag"},{"slug":"featured","name":"Featured","postCount":21968,"metadata":{"postCount":21968,"coverImage":{"id":"1*9vhr7dUQ3aJqKLdgmd2epA.jpeg","originalWidth":5184,"originalHeight":3456,"isFeatured":true}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":0,"links":{"entries":[{"url":"https://nowinandroid.libsyn.com/97-gemini-aicore-ml-kit-android-studio-hedgehog-and-more","alts":[],"httpStatus":200},{"url":"https://android-developers.googleblog.com/2023/12/ksp2-preview-kotlin-k2-standalone.html","alts":[],"httpStatus":200},{"url":"https://android-developers.googleblog.com/2023/12/a-new-foundation-for-ai-on-android.html","alts":[],"httpStatus":200},{"url":"https://android-developers.googleblog.com/","alts":[],"httpStatus":200},{"url":"http://android-developers.googleblog.com/2023/11/nordvpn-boosted-speed-of-login-user-flow-using-baseline-profiles.html","alts":[],"httpStatus":200},{"url":"http://android-developers.googleblog.com/2023/12/virtual-machines-as-core-android-primitive.html","alts":[],"httpStatus":200},{"url":"http://android-developers.googleblog.com/2023/11/android-studio-hedgehog-is-stable.html","alts":[],"httpStatus":200},{"url":"https://developers.google.com/ml-kit/vision/subject-segmentation","alts":[],"httpStatus":200},{"url":"http://android-developers.googleblog.com/2023/12/a-new-foundation-for-ai-on-android.html","alts":[],"httpStatus":200},{"url":"https://developer.android.com/ml/aicore","alts":[],"httpStatus":200},{"url":"https://developer.android.com/jetpack/androidx/releases/webkit#1.10.0-alpha01","alts":[],"httpStatus":200},{"url":"https://docs.google.com/forms/d/e/1FAIpQLSdDvg0eEzcUY_-CmtiMZLd68KD3F0usCnRzKKzWb4sAYwhFJg/viewform","alts":[],"httpStatus":200},{"url":"https://developer.android.com/jetpack/androidx/versions/all-channel","alts":[],"httpStatus":200},{"url":"https://developer.android.com/jetpack/androidx/releases/activity#1.9.0-alpha01","alts":[],"httpStatus":200},{"url":"https://www.youtube.com/watch?v=Z96wfbID_Yc","alts":[{"type":2,"url":"vnd.youtube://www.youtube.com/watch?v=Z96wfbID_Yc&feature=applinks"},{"type":3,"url":"vnd.youtube://www.youtube.com/watch?v=Z96wfbID_Yc&feature=applinks"}],"httpStatus":200},{"url":"https://youtu.be/kD-noc33FKw","alts":[{"type":3,"url":"vnd.youtube://www.youtube.com/watch?v=kD-noc33FKw&feature=youtu.be&feature=applinks"},{"type":2,"url":"vnd.youtube://www.youtube.com/watch?v=kD-noc33FKw&feature=youtu.be&feature=applinks"}],"httpStatus":200}],"version":"0.3","generatedAt":1702591327180},"isLockedPreviewOnly":false,"metaDescription":"","totalClapCount":199,"sectionCount":2,"readingList":0,"topics":[{"topicId":"64756708407c","slug":"android-development","createdAt":1521652914155,"deletedAt":0,"image":{"id":"1*zLD64ewnrZ3XKBtDUMXQ-w@2x.jpeg","originalWidth":3000,"originalHeight":1997},"name":"Android Dev","description":"Building little green robots.","relatedTopics":[],"visibility":1,"relatedTags":[],"relatedTopicIds":[],"seoTitle":"Android Development: Articles and News — Medium","type":"Topic"}]},"coverless":true,"slug":"now-in-android-97","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":true,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":0,"uniqueSlug":"now-in-android-97-f5db5d045dfb","previewContent":{"bodyModel":{"paragraphs":[{"name":"previewImage","type":4,"text":"","layout":10,"metadata":{"id":"1*aIux1an8zPUXIhTLY7psfw.png","originalWidth":1600,"originalHeight":477,"isFeatured":true}},{"name":"077e","type":3,"text":"Now in Android #97","markups":[],"alignment":1},{"name":"282e","type":13,"text":"Gemini, AICore, ML Kit, Android Studio, AVF, KSP2, Performance and more!","markups":[{"type":3,"start":0,"end":6,"href":"https://android-developers.googleblog.com/2023/12/a-new-foundation-for-ai-on-android.html","title":"","rel":"","anchorType":0},{"type":3,"start":8,"end":14,"href":"https://developer.android.com/ml/aicore","title":"","rel":"","anchorType":0},{"type":3,"start":16,"end":22,"href":"https://developers.google.com/ml-kit/vision/subject-segmentation","title":"","rel":"","anchorType":0},{"type":3,"start":24,"end":38,"href":"http://android-developers.googleblog.com/2023/11/android-studio-hedgehog-is-stable.html","title":"","rel":"","anchorType":0},{"type":3,"start":40,"end":43,"href":"http://android-developers.googleblog.com/2023/12/virtual-machines-as-core-android-primitive.html","title":"","rel":"","anchorType":0},{"type":3,"start":45,"end":49,"href":"https://android-developers.googleblog.com/2023/12/ksp2-preview-kotlin-k2-standalone.html","title":"","rel":"","anchorType":0},{"type":3,"start":51,"end":62,"href":"https://www.youtube.com/watch?v=Z96wfbID_Yc","title":"","rel":"","anchorType":0}],"alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":"Gemini, AICore, ML Kit, Android Studio, AVF, KSP2, Performance and more!"},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"95b274b437c2","isNewsletter":false,"newsletterId":"5897de402de0","webCanonicalUrl":"","mediumUrl":"","migrationId":"","notifyFollowers":true,"notifyTwitter":false,"notifyFacebook":false,"responseHiddenOnParentPostAt":0,"isSeries":false,"isSubscriptionLocked":false,"seriesLastAppendedAt":0,"audioVersionDurationSec":0,"sequenceId":"","isEligibleForRevenue":false,"isBlockedFromHightower":false,"deletedAt":0,"lockedPostSource":0,"hightowerMinimumGuaranteeStartsAt":0,"hightowerMinimumGuaranteeEndsAt":0,"featureLockRequestAcceptedAt":0,"mongerRequestType":1,"layerCake":6,"socialTitle":"","socialDek":"","editorialPreviewTitle":"","editorialPreviewDek":"","curationEligibleAt":0,"isProxyPost":false,"proxyPostFaviconUrl":"","proxyPostProviderName":"","proxyPostType":0,"isSuspended":false,"isLimitedState":false,"seoTitle":"","previewContent2":{"bodyModel":{"paragraphs":[{"name":"d241","type":4,"text":"","markups":[],"layout":3,"metadata":{"id":"1*aIux1an8zPUXIhTLY7psfw.png","originalWidth":1600,"originalHeight":477,"isFeatured":true}},{"name":"077e","type":3,"text":"Now in Android #97","markups":[]},{"name":"282e","type":13,"text":"Gemini, AICore, ML Kit, Android Studio, AVF, KSP2, Performance and more!","markups":[{"type":3,"start":0,"end":6,"href":"https://android-developers.googleblog.com/2023/12/a-new-foundation-for-ai-on-android.html","title":"","rel":"","anchorType":0},{"type":3,"start":8,"end":14,"href":"https://developer.android.com/ml/aicore","title":"","rel":"","anchorType":0},{"type":3,"start":16,"end":22,"href":"https://developers.google.com/ml-kit/vision/subject-segmentation","title":"","rel":"","anchorType":0},{"type":3,"start":24,"end":38,"href":"http://android-developers.googleblog.com/2023/11/android-studio-hedgehog-is-stable.html","title":"","rel":"","anchorType":0},{"type":3,"start":40,"end":43,"href":"http://android-developers.googleblog.com/2023/12/virtual-machines-as-core-android-primitive.html","title":"","rel":"","anchorType":0},{"type":3,"start":45,"end":49,"href":"https://android-developers.googleblog.com/2023/12/ksp2-preview-kotlin-k2-standalone.html","title":"","rel":"","anchorType":0},{"type":3,"start":51,"end":62,"href":"https://www.youtube.com/watch?v=Z96wfbID_Yc","title":"","rel":"","anchorType":0}]},{"name":"d977","type":1,"text":"Welcome to the latest (and last one for this year!) edition of Now in Android; your ongoing guide to what’s new and notable in the world of Android development.","markups":[{"type":1,"start":63,"end":79}]},{"name":"b9c2","type":11,"text":"","markups":[],"layout":1,"iframe":{"mediaResourceId":"22c0aeac7907a25082c5ac3a295e1c3b","iframeWidth":854,"iframeHeight":480}},{"name":"62e8","type":11,"text":"","markups":[],"layout":1,"iframe":{"mediaResourceId":"8bf22c0b6a63d28409627044e3c0c3e8","iframeWidth":600,"iframeHeight":90,"thumbnailUrl":"https://i.embed.ly/1/image?url=https%3A%2F%2Fassets.libsyn.com%2Fsecure%2Fcontent%2F165114058&key=a19fcc184b9711e1b4764040d3dc5c07"}},{"name":"f64f","type":1,"text":"Most of the content of this post is available in the form of a video or podcast, so feel…","markups":[{"type":3,"start":63,"end":68,"href":"https://youtu.be/kD-noc33FKw","title":"","rel":"","anchorType":0},{"type":3,"start":72,"end":79,"href":"https://nowinandroid.libsyn.com/97-gemini-aicore-ml-kit-android-studio-hedgehog-and-more","title":"","rel":"","anchorType":0},{"type":3,"start":97,"end":102,"href":"https://youtu.be/kD-noc33FKw","title":"","rel":"","anchorType":0},{"type":3,"start":106,"end":112,"href":"https://nowinandroid.libsyn.com/97-gemini-aicore-ml-kit-android-studio-hedgehog-and-more","title":"","rel":"","anchorType":0}]}],"sections":[{"name":"119d","startIndex":0}]},"isFullContent":false,"subtitle":"Gemini, AICore, ML Kit, Android Studio, AVF, KSP2, Performance and more!"},"cardType":0,"isDistributionAlertDismissed":false,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":true,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"},"51866ffd0bd8":{"id":"51866ffd0bd8","versionId":"a544f669f7f5","creatorId":"eb38ed87b679","homeCollectionId":"95b274b437c2","title":"Now in Android #92","detectedLanguage":"en","latestVersion":"a544f669f7f5","latestPublishedVersion":"a544f669f7f5","hasUnpublishedEdits":false,"latestRev":211,"createdAt":1696366412712,"updatedAt":1696469676193,"acceptedAt":0,"firstPublishedAt":1696457131462,"latestPublishedAt":1696457131462,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"Studio Bot expansion, Firebase integration, Android Studio, and much more!","postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"1*aIux1an8zPUXIhTLY7psfw.png","filter":"","backgroundSize":"","originalWidth":1600,"originalHeight":477,"strategy":"resample","height":0,"width":0},"wordCount":623,"imageCount":1,"readingTime":2.5509433962264154,"subtitle":"Studio Bot expansion, Firebase integration, Android Studio, and much more!","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":28,"isBookmarked":false,"tags":[{"slug":"kotlin","name":"Kotlin","postCount":30906,"metadata":{"postCount":30906,"coverImage":{"id":"1*8kMaRJPi-HkK7N_ccEyAGw.png","originalWidth":470,"originalHeight":266,"isFeatured":true}},"type":"Tag"},{"slug":"android-studio","name":"Android Studio","postCount":3622,"metadata":{"postCount":3622,"coverImage":{"id":"1*bPrF2ZemLaRrMYCmvLmWMQ.png","originalWidth":2560,"originalHeight":1280,"isFeatured":true}},"type":"Tag"},{"slug":"firebase","name":"Firebase","postCount":12728,"metadata":{"postCount":12728,"coverImage":{"id":"0*qvPu2irfypzy42VE.jpg","originalWidth":768,"originalHeight":432,"isFeatured":true}},"type":"Tag"},{"slug":"featured","name":"Featured","postCount":21968,"metadata":{"postCount":21968,"coverImage":{"id":"1*9vhr7dUQ3aJqKLdgmd2epA.jpeg","originalWidth":5184,"originalHeight":3456,"isFeatured":true}},"type":"Tag"},{"slug":"now-in-android","name":"Now In Android","postCount":114,"metadata":{"postCount":114,"coverImage":{"id":"0*EUh5iWsPNCiAJm93","originalWidth":1600,"originalHeight":477,"isFeatured":true,"alt":"Now in Android title, showing a timer, the Android Developers pixelated brackets, a green Android head, and a caption bubble."}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":1,"links":{"entries":[{"url":"https://adbackstage.libsyn.com/episode-201-firebase-in-android-studio","alts":[],"httpStatus":200},{"url":"https://nowinandroid.libsyn.com/92-studio-bot-expansion-firebase-integration-android-studio-and-much-more","alts":[],"httpStatus":200},{"url":"https://medium.com/androiddevelopers/migrating-to-jetpack-compose-an-interop-love-story-part-2-370fdd978c33?source=rss----95b274b437c2---4","alts":[{"type":3,"url":"medium://p/370fdd978c33"},{"type":2,"url":"medium://p/370fdd978c33"}],"httpStatus":200},{"url":"https://android-developers.googleblog.com/2023/09/kakao-games-increased-fps-stability-through-android-adapatability.html","alts":[],"httpStatus":200},{"url":"https://medium.com/androiddevelopers/migrating-to-jetpack-compose-an-interop-love-story-part-2-370fdd978c33","alts":[{"type":3,"url":"medium://p/370fdd978c33"},{"type":2,"url":"medium://p/370fdd978c33"}],"httpStatus":200},{"url":"https://medium.com/androiddevelopers/migrating-to-jetpack-compose-an-interop-love-story-part-1-3693ca3ae981?source=rss----95b274b437c2---4","alts":[{"type":3,"url":"medium://p/3693ca3ae981"},{"type":2,"url":"medium://p/3693ca3ae981"}],"httpStatus":200},{"url":"https://medium.com/androiddevelopers/migrating-to-jetpack-compose-an-interop-love-story-part-1-3693ca3ae981","alts":[{"type":3,"url":"medium://p/3693ca3ae981"},{"type":2,"url":"medium://p/3693ca3ae981"}],"httpStatus":200},{"url":"http://android-developers.googleblog.com/2023/09/kakao-games-increased-fps-stability-through-android-adapatability.html","alts":[],"httpStatus":200},{"url":"https://android-developers.googleblog.com/2023/09/studio-bot-expands-to-international-markets.html","alts":[],"httpStatus":200},{"url":"http://android-developers.googleblog.com/2023/09/studio-bot-expands-to-international-markets.html","alts":[],"httpStatus":200},{"url":"https://developer.android.com/studio/preview/studio-bot","alts":[],"httpStatus":200},{"url":"https://developer.android.com/studio/preview/studio-bot/availability","alts":[],"httpStatus":200},{"url":"https://developer.android.com/jetpack/androidx/versions/all-channel","alts":[],"httpStatus":200},{"url":"https://www.youtube.com/watch?v=QzefIO6lJpw","alts":[{"type":3,"url":"vnd.youtube://www.youtube.com/watch?v=QzefIO6lJpw&feature=applinks"},{"type":2,"url":"vnd.youtube://www.youtube.com/watch?v=QzefIO6lJpw&feature=applinks"}],"httpStatus":200},{"url":"https://www.youtube.com/watch?v=jpU6hjzOLRE&list=PLWz5rJ2EKKc9AtgKMBBdphI-mrx8XzW56","alts":[{"type":2,"url":"vnd.youtube://www.youtube.com/watch?v=jpU6hjzOLRE&list=PLWz5rJ2EKKc9AtgKMBBdphI-mrx8XzW56&feature=applinks"},{"type":3,"url":"vnd.youtube://www.youtube.com/watch?v=jpU6hjzOLRE&list=PLWz5rJ2EKKc9AtgKMBBdphI-mrx8XzW56&feature=applinks"}],"httpStatus":200},{"url":"https://www.youtube.com/watch?v=OvLCsH2vKgE","alts":[{"type":3,"url":"vnd.youtube://www.youtube.com/watch?v=OvLCsH2vKgE&feature=applinks"},{"type":2,"url":"vnd.youtube://www.youtube.com/watch?v=OvLCsH2vKgE&feature=applinks"}],"httpStatus":200},{"url":"https://developer.android.com/jetpack/androidx/releases/camera#1.4.0-alpha01","alts":[],"httpStatus":200},{"url":"https://developer.android.com/studio/preview","alts":[],"httpStatus":200},{"url":"https://www.youtube.com/watch?v=K1TTzkToDyE&ab_channel=AndroidDevelopers","alts":[{"type":2,"url":"vnd.youtube://www.youtube.com/watch?v=K1TTzkToDyE&ab_channel=AndroidDevelopers&feature=applinks"},{"type":3,"url":"vnd.youtube://www.youtube.com/watch?v=K1TTzkToDyE&ab_channel=AndroidDevelopers&feature=applinks"}],"httpStatus":200},{"url":"https://developer.android.com/jetpack/androidx/releases/paging#3.3.0-alpha01","alts":[],"httpStatus":200},{"url":"https://emojipedia.org/studio-microphone/","alts":[],"httpStatus":200},{"url":"https://developer.android.com/jetpack/androidx/releases/coordinatorlayout#1.3.0-alpha01","alts":[],"httpStatus":200}],"version":"0.3","generatedAt":1696457133762},"isLockedPreviewOnly":false,"metaDescription":"","totalClapCount":167,"sectionCount":2,"readingList":0,"topics":[{"topicId":"64756708407c","slug":"android-development","createdAt":1521652914155,"deletedAt":0,"image":{"id":"1*zLD64ewnrZ3XKBtDUMXQ-w@2x.jpeg","originalWidth":3000,"originalHeight":1997},"name":"Android Dev","description":"Building little green robots.","relatedTopics":[],"visibility":1,"relatedTags":[],"relatedTopicIds":[],"seoTitle":"Android Development: Articles and News — Medium","type":"Topic"}]},"coverless":true,"slug":"now-in-android-92","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":false,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":0,"uniqueSlug":"now-in-android-92-51866ffd0bd8","previewContent":{"bodyModel":{"paragraphs":[{"name":"previewImage","type":4,"text":"","layout":10,"metadata":{"id":"1*aIux1an8zPUXIhTLY7psfw.png","originalWidth":1600,"originalHeight":477,"isFeatured":true}},{"name":"a0c0","type":3,"text":"Now in Android #92","markups":[{"type":1,"start":0,"end":18}],"alignment":1},{"name":"0a10","type":13,"text":"Studio Bot expansion, Firebase integration, Android Studio, and much more!","markups":[{"type":3,"start":0,"end":20,"href":"https://android-developers.googleblog.com/2023/09/studio-bot-expands-to-international-markets.html","title":"","rel":"","anchorType":0},{"type":3,"start":22,"end":42,"href":"https://www.youtube.com/watch?v=OvLCsH2vKgE","title":"","rel":"","anchorType":0},{"type":3,"start":44,"end":58,"href":"https://www.youtube.com/watch?v=K1TTzkToDyE&ab_channel=AndroidDevelopers","title":"","rel":"","anchorType":0}],"alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":"Studio Bot expansion, Firebase integration, Android Studio, and much more!"},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"95b274b437c2","isNewsletter":false,"newsletterId":"b1d1afc8a4e5","webCanonicalUrl":"","mediumUrl":"","migrationId":"","notifyFollowers":true,"notifyTwitter":false,"notifyFacebook":false,"responseHiddenOnParentPostAt":0,"isSeries":false,"isSubscriptionLocked":false,"seriesLastAppendedAt":0,"audioVersionDurationSec":0,"sequenceId":"","isEligibleForRevenue":false,"isBlockedFromHightower":false,"deletedAt":0,"lockedPostSource":0,"hightowerMinimumGuaranteeStartsAt":0,"hightowerMinimumGuaranteeEndsAt":0,"featureLockRequestAcceptedAt":0,"mongerRequestType":1,"layerCake":6,"socialTitle":"","socialDek":"","editorialPreviewTitle":"","editorialPreviewDek":"","curationEligibleAt":0,"isProxyPost":false,"proxyPostFaviconUrl":"","proxyPostProviderName":"","proxyPostType":0,"isSuspended":false,"isLimitedState":false,"seoTitle":"","previewContent2":{"bodyModel":{"paragraphs":[{"name":"afa7","type":4,"text":"","markups":[],"layout":3,"metadata":{"id":"1*aIux1an8zPUXIhTLY7psfw.png","originalWidth":1600,"originalHeight":477,"isFeatured":true}},{"name":"a0c0","type":3,"text":"Now in Android #92","markups":[{"type":1,"start":0,"end":18}]},{"name":"0a10","type":13,"text":"Studio Bot expansion, Firebase integration, Android Studio, and much more!","markups":[{"type":3,"start":0,"end":20,"href":"https://android-developers.googleblog.com/2023/09/studio-bot-expands-to-international-markets.html","title":"","rel":"","anchorType":0},{"type":3,"start":22,"end":42,"href":"https://www.youtube.com/watch?v=OvLCsH2vKgE","title":"","rel":"","anchorType":0},{"type":3,"start":44,"end":58,"href":"https://www.youtube.com/watch?v=K1TTzkToDyE&ab_channel=AndroidDevelopers","title":"","rel":"","anchorType":0}]},{"name":"fa36","type":1,"text":"Welcome to Now in Android, your ongoing guide to what’s new and notable in the world of Android development.","markups":[]},{"name":"7358","type":11,"text":"","markups":[],"layout":1,"iframe":{"mediaResourceId":"442df10b356c84a6838500d3022dff4b","iframeWidth":854,"iframeHeight":480,"thumbnailUrl":"https://i.embed.ly/1/image?url=https%3A%2F%2Fi.ytimg.com%2Fvi%2FjpU6hjzOLRE%2Fhqdefault.jpg&key=a19fcc184b9711e1b4764040d3dc5c07"}},{"name":"fb15","type":11,"text":"","markups":[],"layout":1,"iframe":{"mediaResourceId":"2c86c2e402e04444af2be1917fddded3","iframeWidth":600,"iframeHeight":90,"thumbnailUrl":"https://i.embed.ly/1/image?url=https%3A%2F%2Fassets.libsyn.com%2Fsecure%2Fcontent%2F162539270&key=a19fcc184b9711e1b4764040d3dc5c07"}},{"name":"acad","type":1,"text":"Most of the content of this post is available in the form of a video or podcast, so feel free to watch or listen rather than read on. (Or…","markups":[{"type":3,"start":63,"end":68,"href":"https://www.youtube.com/watch?v=jpU6hjzOLRE&list=PLWz5rJ2EKKc9AtgKMBBdphI-mrx8XzW56","title":"","rel":"","anchorType":0},{"type":3,"start":72,"end":79,"href":"https://nowinandroid.libsyn.com/92-studio-bot-expansion-firebase-integration-android-studio-and-much-more","title":"","rel":"","anchorType":0},{"type":3,"start":97,"end":102,"href":"https://www.youtube.com/watch?v=jpU6hjzOLRE&list=PLWz5rJ2EKKc9AtgKMBBdphI-mrx8XzW56","title":"","rel":"","anchorType":0},{"type":3,"start":106,"end":112,"href":"https://nowinandroid.libsyn.com/92-studio-bot-expansion-firebase-integration-android-studio-and-much-more","title":"","rel":"","anchorType":0}]}],"sections":[{"name":"395a","startIndex":0}]},"isFullContent":false,"subtitle":"Studio Bot expansion, Firebase integration, Android Studio, and much more!"},"cardType":0,"isDistributionAlertDismissed":false,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":true,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"},"f631b7564edb":{"id":"f631b7564edb","versionId":"7aba0d8df811","creatorId":"d890863f77e3","homeCollectionId":"95b274b437c2","title":"Now in Android #88","detectedLanguage":"en","latestVersion":"7aba0d8df811","latestPublishedVersion":"7aba0d8df811","hasUnpublishedEdits":false,"latestRev":288,"createdAt":1691402019302,"updatedAt":1692105285597,"acceptedAt":0,"firstPublishedAt":1691616086600,"latestPublishedAt":1691616086600,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"Android Studio Giraffe, K2 Compiler, Compose Live Edit and more!","postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"1*aIux1an8zPUXIhTLY7psfw.png","filter":"","backgroundSize":"","originalWidth":1600,"originalHeight":477,"strategy":"resample","height":0,"width":0},"wordCount":962,"imageCount":1,"readingTime":3.8301886792452833,"subtitle":"Android Studio Giraffe, K2 Compiler, Compose Live Edit and more!","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":34,"isBookmarked":false,"tags":[{"slug":"now-in-android","name":"Now In Android","postCount":114,"metadata":{"postCount":114,"coverImage":{"id":"0*EUh5iWsPNCiAJm93","originalWidth":1600,"originalHeight":477,"isFeatured":true,"alt":"Now in Android title, showing a timer, the Android Developers pixelated brackets, a green Android head, and a caption bubble."}},"type":"Tag"},{"slug":"android-studio","name":"Android Studio","postCount":3622,"metadata":{"postCount":3622,"coverImage":{"id":"1*bPrF2ZemLaRrMYCmvLmWMQ.png","originalWidth":2560,"originalHeight":1280,"isFeatured":true}},"type":"Tag"},{"slug":"compose","name":"Compose","postCount":1011,"metadata":{"postCount":1011,"coverImage":{"id":"0*D93jriU2RFT12oYQ.jpeg","originalWidth":1400,"originalHeight":933,"isFeatured":true}},"type":"Tag"},{"slug":"featured","name":"Featured","postCount":21968,"metadata":{"postCount":21968,"coverImage":{"id":"1*9vhr7dUQ3aJqKLdgmd2epA.jpeg","originalWidth":5184,"originalHeight":3456,"isFeatured":true}},"type":"Tag"},{"slug":"kotlin","name":"Kotlin","postCount":30906,"metadata":{"postCount":30906,"coverImage":{"id":"1*8kMaRJPi-HkK7N_ccEyAGw.png","originalWidth":470,"originalHeight":266,"isFeatured":true}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":1,"links":{"entries":[{"url":"https://nowinandroid.libsyn.com/88-android-studio-giraffe-k2-compiler-and-jetpack-compose-live-edit","alts":[],"httpStatus":200},{"url":"https://medium.com/androiddevelopers/capture-edit-play-and-share-the-media-developer-center-has-it-all-1223ca07ea9c","alts":[{"type":3,"url":"medium://p/1223ca07ea9c"},{"type":2,"url":"medium://p/1223ca07ea9c"}],"httpStatus":200},{"url":"https://android-developers.googleblog.com/2023/07/try-k2-compiler-in-your-android-projects.html","alts":[],"httpStatus":200},{"url":"https://android-developers.googleblog.com/2023/07/prepare-your-app-for-new-samsung-tablets-foldables-watches.html","alts":[],"httpStatus":200},{"url":"https://android-developers.googleblog.com/2023/07/deezer-increased-its-monthly-active-users-after-improving-multi-device-support.html","alts":[],"httpStatus":200},{"url":"http://android-developers.googleblog.com/2023/07/try-k2-compiler-in-your-android-projects.html","alts":[],"httpStatus":200},{"url":"https://android-developers.googleblog.com/2023/08/health-connect-brings-together-peloton-oura-lifesum-for-deeper-health-and-fitness-insights.html","alts":[],"httpStatus":200},{"url":"https://android-developers.googleblog.com/2023/07/android-studio-giraffe-is-stable.html","alts":[],"httpStatus":200},{"url":"https://android-developers.googleblog.com/2023/07/introducing-new-play-store-for-large-screens.html","alts":[],"httpStatus":200},{"url":"https://android-developers.googleblog.com/2023/07/credential-manager-beta-easy-secure-authentication-with-passkeys-on-android.html","alts":[],"httpStatus":200},{"url":"https://developer.android.com/jetpack/androidx/releases/paging","alts":[],"httpStatus":200},{"url":"https://developer.android.com/jetpack/androidx/versions/all-channel","alts":[],"httpStatus":200},{"url":"https://www.youtube.com/watch?v=Gcr1TmFv8IY","alts":[{"type":2,"url":"vnd.youtube://www.youtube.com/watch?v=Gcr1TmFv8IY&feature=applinks"},{"type":3,"url":"vnd.youtube://www.youtube.com/watch?v=Gcr1TmFv8IY&feature=applinks"}],"httpStatus":200},{"url":"https://www.youtube.com/watch?v=j1Db1J0c3s4","alts":[{"type":2,"url":"vnd.youtube://www.youtube.com/watch?v=j1Db1J0c3s4&feature=applinks"},{"type":3,"url":"vnd.youtube://www.youtube.com/watch?v=j1Db1J0c3s4&feature=applinks"}],"httpStatus":200},{"url":"https://www.youtube.com/watch?v=rdtBudmc03M&list=PLWz5rJ2EKKc9AtgKMBBdphI-mrx8XzW56","alts":[{"type":2,"url":"vnd.youtube://www.youtube.com/watch?v=rdtBudmc03M&list=PLWz5rJ2EKKc9AtgKMBBdphI-mrx8XzW56&feature=applinks"},{"type":3,"url":"vnd.youtube://www.youtube.com/watch?v=rdtBudmc03M&list=PLWz5rJ2EKKc9AtgKMBBdphI-mrx8XzW56&feature=applinks"}],"httpStatus":200}],"version":"0.3","generatedAt":1691616087907},"isLockedPreviewOnly":false,"metaDescription":"","totalClapCount":154,"sectionCount":1,"readingList":0,"topics":[{"topicId":"64756708407c","slug":"android-development","createdAt":1521652914155,"deletedAt":0,"image":{"id":"1*zLD64ewnrZ3XKBtDUMXQ-w@2x.jpeg","originalWidth":3000,"originalHeight":1997},"name":"Android Dev","description":"Building little green robots.","relatedTopics":[],"visibility":1,"relatedTags":[],"relatedTopicIds":[],"seoTitle":"Android Development: Articles and News — Medium","type":"Topic"}]},"coverless":true,"slug":"now-in-android-88","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":false,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":0,"uniqueSlug":"now-in-android-88-f631b7564edb","previewContent":{"bodyModel":{"paragraphs":[{"name":"previewImage","type":4,"text":"","layout":10,"metadata":{"id":"1*aIux1an8zPUXIhTLY7psfw.png","originalWidth":1600,"originalHeight":477,"isFeatured":true}},{"name":"previewTitle","type":3,"text":"Now in Android #88","alignment":1},{"name":"previewSubtitle","type":13,"text":"Android Studio Giraffe, K2 Compiler, Compose Live Edit and more!","alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":"Android Studio Giraffe, K2 Compiler, Compose Live Edit and more!"},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"95b274b437c2","isNewsletter":false,"newsletterId":"","webCanonicalUrl":"","mediumUrl":"","migrationId":"","notifyFollowers":true,"notifyTwitter":false,"notifyFacebook":false,"responseHiddenOnParentPostAt":0,"isSeries":false,"isSubscriptionLocked":false,"seriesLastAppendedAt":0,"audioVersionDurationSec":0,"sequenceId":"","isEligibleForRevenue":false,"isBlockedFromHightower":false,"deletedAt":0,"lockedPostSource":0,"hightowerMinimumGuaranteeStartsAt":0,"hightowerMinimumGuaranteeEndsAt":0,"featureLockRequestAcceptedAt":0,"mongerRequestType":1,"layerCake":6,"socialTitle":"","socialDek":"","editorialPreviewTitle":"","editorialPreviewDek":"","curationEligibleAt":0,"isProxyPost":false,"proxyPostFaviconUrl":"","proxyPostProviderName":"","proxyPostType":0,"isSuspended":false,"isLimitedState":false,"seoTitle":"","previewContent2":{"bodyModel":{"paragraphs":[{"name":"0fd9","type":4,"text":"","markups":[],"layout":3,"metadata":{"id":"1*aIux1an8zPUXIhTLY7psfw.png","originalWidth":1600,"originalHeight":477,"isFeatured":true}},{"name":"1ff4","type":3,"text":"Now in Android #88","markups":[]},{"name":"3e15","type":1,"text":"Welcome to Now in Android, your ongoing guide to what’s new and notable in the world of Android development.","markups":[{"type":1,"start":11,"end":25}]},{"name":"9c5a","type":11,"text":"","markups":[],"layout":1,"iframe":{"mediaResourceId":"f69d87722c3f0b3229e71aded00a44cf","iframeWidth":854,"iframeHeight":480}},{"name":"dad2","type":11,"text":"","markups":[],"layout":1,"iframe":{"mediaResourceId":"3533fe0fc59ca5f82990e6ce98ac9363","iframeWidth":600,"iframeHeight":90,"thumbnailUrl":"https://i.embed.ly/1/image?url=https%3A%2F%2Fassets.libsyn.com%2Fsecure%2Fitem%2F27705759&key=a19fcc184b9711e1b4764040d3dc5c07"}},{"name":"e752","type":1,"text":"Most of the content of this post is available in the form of a video or podcast, so feel free to watch or listen rather than read on. (Or…","markups":[{"type":3,"start":63,"end":68,"href":"https://www.youtube.com/watch?v=rdtBudmc03M&list=PLWz5rJ2EKKc9AtgKMBBdphI-mrx8XzW56","title":"","rel":"","anchorType":0},{"type":3,"start":72,"end":79,"href":"https://nowinandroid.libsyn.com/88-android-studio-giraffe-k2-compiler-and-jetpack-compose-live-edit","title":"","rel":"","anchorType":0},{"type":3,"start":97,"end":102,"href":"https://www.youtube.com/watch?v=rdtBudmc03M&list=PLWz5rJ2EKKc9AtgKMBBdphI-mrx8XzW56","title":"","rel":"","anchorType":0},{"type":3,"start":106,"end":112,"href":"https://nowinandroid.libsyn.com/88-android-studio-giraffe-k2-compiler-and-jetpack-compose-live-edit","title":"","rel":"","anchorType":0}]}],"sections":[{"name":"d0d5","startIndex":0}]},"isFullContent":false,"subtitle":"Android Studio Giraffe, K2 Compiler, Compose Live Edit and more!"},"cardType":0,"isDistributionAlertDismissed":false,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":false,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"},"e4bbe977d33f":{"id":"e4bbe977d33f","versionId":"396362cfd8e5","creatorId":"3b5622dd813c","homeCollectionId":"95b274b437c2","title":"Now in Android #75","detectedLanguage":"en","latestVersion":"396362cfd8e5","latestPublishedVersion":"396362cfd8e5","hasUnpublishedEdits":false,"latestRev":238,"createdAt":1673849202437,"updatedAt":1676935330256,"acceptedAt":0,"firstPublishedAt":1674081144080,"latestPublishedAt":1675058313285,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"Android Studio Electric Eel, Architecture, Kotlin Multiplatform, WearOS, CameraX, Stylus, and more.","postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"0*IdylXqMS2sF3Nh30","filter":"","backgroundSize":"","originalWidth":1600,"originalHeight":477,"strategy":"resample","height":0,"width":0},"wordCount":880,"imageCount":2,"readingTime":3.7040880503144655,"subtitle":"Android Studio Electric Eel, Architecture, Kotlin Multiplatform, WearOS, CameraX, Stylus, and more.","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":47,"isBookmarked":false,"tags":[{"slug":"now-in-android","name":"Now In Android","postCount":114,"metadata":{"postCount":114,"coverImage":{"id":"0*EUh5iWsPNCiAJm93","originalWidth":1600,"originalHeight":477,"isFeatured":true,"alt":"Now in Android title, showing a timer, the Android Developers pixelated brackets, a green Android head, and a caption bubble."}},"type":"Tag"},{"slug":"android-studio","name":"Android Studio","postCount":3622,"metadata":{"postCount":3622,"coverImage":{"id":"1*bPrF2ZemLaRrMYCmvLmWMQ.png","originalWidth":2560,"originalHeight":1280,"isFeatured":true}},"type":"Tag"},{"slug":"kotlin-multiplatform","name":"Kotlin Multiplatform","postCount":1385,"metadata":{"postCount":1385,"coverImage":{"id":"1*8kMaRJPi-HkK7N_ccEyAGw.png","originalWidth":470,"originalHeight":266,"isFeatured":true}},"type":"Tag"},{"slug":"kotlin","name":"Kotlin","postCount":30906,"metadata":{"postCount":30906,"coverImage":{"id":"1*8kMaRJPi-HkK7N_ccEyAGw.png","originalWidth":470,"originalHeight":266,"isFeatured":true}},"type":"Tag"},{"slug":"wear-os","name":"Wear Os","postCount":213,"metadata":{"postCount":213,"coverImage":{"id":"1*3M48bGiXnBX8y83eYLgFtw.png","originalWidth":4209,"originalHeight":1253,"isFeatured":true}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":1,"links":{"entries":[{"url":"https://google.github.io/horologist/#media","alts":[],"httpStatus":200},{"url":"https://medium.com/androiddevelopers/adding-a-domain-layer-bc5a708a96da","alts":[{"type":3,"url":"medium://p/bc5a708a96da"},{"type":2,"url":"medium://p/bc5a708a96da"}],"httpStatus":200},{"url":"https://medium.com/androiddevelopers/stylus-low-latency-d4a140a9c982","alts":[{"type":3,"url":"medium://p/d4a140a9c982"},{"type":2,"url":"medium://p/d4a140a9c982"}],"httpStatus":200},{"url":"https://medium.com/androiddevelopers/ease-the-development-of-media-apps-for-wear-os-with-the-media-toolkit-1b7ea06e07e5","alts":[{"type":3,"url":"medium://p/1b7ea06e07e5"},{"type":2,"url":"medium://p/1b7ea06e07e5"}],"httpStatus":200},{"url":"https://medium.com/androiddevelopers/android-hdr-migrating-from-textureview-to-surfaceview-part-1-how-to-migrate-6bfd7f4b970e","alts":[{"type":3,"url":"medium://p/6bfd7f4b970e"},{"type":2,"url":"medium://p/6bfd7f4b970e"}],"httpStatus":200},{"url":"https://android-developers.googleblog.com/2023/01/android-studio-electric-eel.html","alts":[],"httpStatus":200},{"url":"https://android-developers.googleblog.com/2023/01/extending-android-sdk.html","alts":[],"httpStatus":200},{"url":"https://adbackstage.libsyn.com/episode-193-kotlin","alts":[],"httpStatus":200},{"url":"https://adbackstage.libsyn.com/","alts":[],"httpStatus":200},{"url":"https://developer.android.com/jetpack/androidx/releases/privacysandbox-ads#1.0.0-alpha01","alts":[],"httpStatus":200},{"url":"https://developer.android.com/jetpack/androidx/releases/input","alts":[],"httpStatus":200},{"url":"https://developer.android.com/jetpack/androidx/releases/graphics","alts":[],"httpStatus":200},{"url":"https://developer.android.com/about/versions/13/features#language-support","alts":[],"httpStatus":200},{"url":"https://developer.android.com/topic/architecture/domain-layer","alts":[],"httpStatus":200},{"url":"https://developer.android.com/jetpack/androidx/releases/appcompat#version_160_3","alts":[],"httpStatus":200},{"url":"https://developer.android.com/jetpack/androidx/releases/lifecycle#2.6.0-alpha04","alts":[],"httpStatus":200},{"url":"https://github.com/android/nowinandroid","alts":[],"httpStatus":200},{"url":"https://developer.android.com/training/camerax","alts":[],"httpStatus":200},{"url":"https://developer.android.com/jetpack/androidx/versions/all-channel","alts":[],"httpStatus":200},{"url":"https://kotlinlang.org/docs/multiplatform.html","alts":[],"httpStatus":200},{"url":"https://www.youtube.com/watch?v=4OrzjJ4dTMw","alts":[{"type":2,"url":"vnd.youtube://www.youtube.com/watch?v=4OrzjJ4dTMw&feature=applinks"},{"type":3,"url":"vnd.youtube://www.youtube.com/watch?v=4OrzjJ4dTMw&feature=applinks"}],"httpStatus":200},{"url":"https://developer.android.com/jetpack/androidx/releases/credentials#1.0.0-alpha01","alts":[],"httpStatus":200},{"url":"https://www.youtube.com/watch?v=rtX3DujJPZk","alts":[{"type":2,"url":"vnd.youtube://www.youtube.com/watch?v=rtX3DujJPZk&feature=applinks"},{"type":3,"url":"vnd.youtube://www.youtube.com/watch?v=rtX3DujJPZk&feature=applinks"}],"httpStatus":200},{"url":"https://www.youtube.com/watch?v=7DfLO5ez5bo","alts":[{"type":3,"url":"vnd.youtube://www.youtube.com/watch?v=7DfLO5ez5bo&feature=applinks"},{"type":2,"url":"vnd.youtube://www.youtube.com/watch?v=7DfLO5ez5bo&feature=applinks"}],"httpStatus":200},{"url":"https://developer.android.com/wear","alts":[],"httpStatus":200},{"url":"https://developer.android.com/training/data-storage/shared/photopicker","alts":[],"httpStatus":200},{"url":"http://goo.gle/mad-architecture-guide","alts":[],"httpStatus":200},{"url":"https://www.youtube.com/watch?v=I4rDx90Nlus","alts":[{"type":2,"url":"vnd.youtube://www.youtube.com/watch?v=I4rDx90Nlus&feature=applinks"},{"type":3,"url":"vnd.youtube://www.youtube.com/watch?v=I4rDx90Nlus&feature=applinks"}],"httpStatus":200},{"url":"https://developer.android.com/jetpack/androidx/releases/room#version_250_3","alts":[],"httpStatus":200},{"url":"https://developer.android.com/distribute/sdk-index","alts":[],"httpStatus":200},{"url":"https://developer.android.com/jetpack/compose/tooling/studio#recomposition-counts","alts":[],"httpStatus":200},{"url":"https://developer.android.com/jetpack/compose/tooling/studio#preview","alts":[],"httpStatus":200},{"url":"https://developer.android.com/jetpack/androidx/releases/privacysandbox-sdkruntime#1.0.0-alpha01","alts":[],"httpStatus":200},{"url":"https://developer.android.com/studio","alts":[],"httpStatus":200}],"version":"0.3","generatedAt":1675058315932},"isLockedPreviewOnly":false,"metaDescription":"","totalClapCount":88,"sectionCount":1,"readingList":0,"topics":[{"topicId":"64756708407c","slug":"android-development","createdAt":1521652914155,"deletedAt":0,"image":{"id":"1*zLD64ewnrZ3XKBtDUMXQ-w@2x.jpeg","originalWidth":3000,"originalHeight":1997},"name":"Android Dev","description":"Building little green robots.","relatedTopics":[],"visibility":1,"relatedTags":[],"relatedTopicIds":[],"seoTitle":"Android Development: Articles and News — Medium","type":"Topic"}]},"coverless":true,"slug":"now-in-android-75","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":false,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":0,"uniqueSlug":"now-in-android-75-e4bbe977d33f","previewContent":{"bodyModel":{"paragraphs":[{"name":"previewImage","type":4,"text":"","layout":10,"metadata":{"id":"0*IdylXqMS2sF3Nh30","originalWidth":1600,"originalHeight":477,"isFeatured":true}},{"name":"89f1","type":3,"text":"Now in Android #75","markups":[],"alignment":1},{"name":"22f1","type":13,"text":"Android Studio Electric Eel, Architecture, Kotlin Multiplatform, WearOS, CameraX…","markups":[{"type":3,"start":0,"end":27,"href":"https://developer.android.com/studio","title":"","rel":"","anchorType":0},{"type":3,"start":29,"end":41,"href":"http://goo.gle/mad-architecture-guide","title":"","rel":"","anchorType":0},{"type":3,"start":43,"end":63,"href":"https://kotlinlang.org/docs/multiplatform.html","title":"","rel":"","anchorType":0},{"type":3,"start":65,"end":71,"href":"https://developer.android.com/wear","title":"","rel":"","anchorType":0},{"type":3,"start":73,"end":80,"href":"https://developer.android.com/training/camerax","title":"","rel":"","anchorType":0}],"alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":"Android Studio Electric Eel, Architecture, Kotlin Multiplatform, WearOS, CameraX, Stylus, and more."},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"95b274b437c2","isNewsletter":false,"newsletterId":"cad6ad40a6c9","webCanonicalUrl":"","mediumUrl":"","migrationId":"","notifyFollowers":true,"notifyTwitter":false,"notifyFacebook":false,"responseHiddenOnParentPostAt":0,"isSeries":false,"isSubscriptionLocked":false,"seriesLastAppendedAt":0,"audioVersionDurationSec":0,"sequenceId":"","isEligibleForRevenue":false,"isBlockedFromHightower":false,"deletedAt":0,"lockedPostSource":0,"hightowerMinimumGuaranteeStartsAt":0,"hightowerMinimumGuaranteeEndsAt":0,"featureLockRequestAcceptedAt":0,"mongerRequestType":1,"layerCake":3,"socialTitle":"","socialDek":"","editorialPreviewTitle":"","editorialPreviewDek":"","curationEligibleAt":0,"primaryTopicId":"64756708407c","isProxyPost":false,"proxyPostFaviconUrl":"","proxyPostProviderName":"","proxyPostType":0,"isSuspended":false,"isLimitedState":false,"seoTitle":"","previewContent2":{"bodyModel":{"paragraphs":[{"name":"2eef","type":4,"text":"","markups":[],"layout":1,"metadata":{"id":"0*IdylXqMS2sF3Nh30","originalWidth":1600,"originalHeight":477,"isFeatured":true}},{"name":"89f1","type":3,"text":"Now in Android #75","markups":[]},{"name":"22f1","type":13,"text":"Android Studio Electric Eel, Architecture, Kotlin Multiplatform, WearOS, CameraX, Stylus, and more.","markups":[{"type":3,"start":0,"end":27,"href":"https://developer.android.com/studio","title":"","rel":"","anchorType":0},{"type":3,"start":29,"end":41,"href":"http://goo.gle/mad-architecture-guide","title":"","rel":"","anchorType":0},{"type":3,"start":43,"end":63,"href":"https://kotlinlang.org/docs/multiplatform.html","title":"","rel":"","anchorType":0},{"type":3,"start":65,"end":71,"href":"https://developer.android.com/wear","title":"","rel":"","anchorType":0},{"type":3,"start":73,"end":80,"href":"https://developer.android.com/training/camerax","title":"","rel":"","anchorType":0}]},{"name":"f280","type":1,"text":"Welcome to 2023 and a new episode of Now in Android, your ongoing guide to what’s new and notable in the world of Android development.","markups":[]},{"name":"740b","type":3,"text":"Episode 75 Video and Podcast","markups":[]},{"name":"4b2c","type":1,"text":"Now in Android is also offered as a video and podcast.","markups":[{"type":2,"start":0,"end":14}]},{"name":"78a3","type":11,"text":"","markups":[],"layout":1,"iframe":{"mediaResourceId":"c84dda35239300efa5202ea5fdc6f672","iframeWidth":854,"iframeHeight":480,"thumbnailUrl":"https://i.embed.ly/1/image?url=http%3A%2F%2Fi.ytimg.com%2Fvi%2Fo6OQh1_PFsw%2Fhqdefault.jpg&key=4fce0568f2ce49e8b54624ef71a8a5bd"}},{"name":"20a6","type":11,"text":"","markups":[],"layout":1,"iframe":{"mediaResourceId":"45893439bc808a0b6fb151652acf74e2","iframeWidth":600,"iframeHeight":90,"thumbnailUrl":"https://i.embed.ly/1/image?url=https%3A%2F%2Fassets.libsyn.com%2Fsecure%2Fcontent%2F144590655&key=a19fcc184b9711e1b4764040d3dc5c07"}},{"name":"b150","type":3,"text":"Android Studio Electric Eel is stable ⚡","markups":[]},{"name":"daeb","type":1,"text":"This release includes updates and new features that cover across design, build…","markups":[{"type":3,"start":0,"end":12,"href":"https://developer.android.com/studio","title":"","rel":"","anchorType":0}]}],"sections":[{"name":"fb5f","startIndex":0}]},"isFullContent":false,"subtitle":"Android Studio Electric Eel, Architecture, Kotlin Multiplatform, WearOS, CameraX, Stylus, and more."},"cardType":0,"isDistributionAlertDismissed":false,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":true,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"},"1264346619ec":{"id":"1264346619ec","versionId":"ef6d8411e287","creatorId":"e1f26db83092","homeCollectionId":"95b274b437c2","title":"Migrating the AOSP QuickSearchBox App to Kotlin","detectedLanguage":"en","latestVersion":"ef6d8411e287","latestPublishedVersion":"ef6d8411e287","hasUnpublishedEdits":false,"latestRev":371,"createdAt":1663955212725,"updatedAt":1664363815634,"acceptedAt":0,"firstPublishedAt":1663963228638,"latestPublishedAt":1664363805866,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"Over the course of 6 weeks, over 11,000 lines of Java code within the QuickSearchBox app were converted to Kotlin to showcase best…","postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"1*cWnPe-kD4hAVuH3IIcNUcA.png","filter":"","backgroundSize":"","originalWidth":720,"originalHeight":214,"strategy":"resample","height":0,"width":0},"wordCount":1675,"imageCount":4,"readingTime":7.020754716981132,"subtitle":"Over the course of 6 weeks, over 11,000 lines of Java code within the QuickSearchBox app were converted to Kotlin to showcase best…","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":51,"isBookmarked":false,"tags":[{"slug":"aosp","name":"Aosp","postCount":248,"metadata":{"postCount":248,"coverImage":{"id":"0*4jz96QcICZvuhfeb.PNG","originalWidth":640,"originalHeight":391}},"type":"Tag"},{"slug":"kotlin","name":"Kotlin","postCount":30906,"metadata":{"postCount":30906,"coverImage":{"id":"1*8kMaRJPi-HkK7N_ccEyAGw.png","originalWidth":470,"originalHeight":266,"isFeatured":true}},"type":"Tag"},{"slug":"performance-analysis","name":"Performance Analysis","postCount":228,"metadata":{"postCount":228,"coverImage":{"id":"1*E-PaebeQ8qHAu4XmM5qBlw.png","originalWidth":522,"originalHeight":420,"isFeatured":true}},"type":"Tag"},{"slug":"android-studio","name":"Android Studio","postCount":3622,"metadata":{"postCount":3622,"coverImage":{"id":"1*bPrF2ZemLaRrMYCmvLmWMQ.png","originalWidth":2560,"originalHeight":1280,"isFeatured":true}},"type":"Tag"},{"slug":"best-practices","name":"Best Practices","postCount":15501,"metadata":{"postCount":15501,"coverImage":{"id":"1*41Gr547jRelLuhc99J2aAQ.gif","originalWidth":1080,"originalHeight":570,"isFeatured":true}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":6,"links":{"entries":[{"url":"https://medium.com/androiddevelopers/re-writing-the-aosp-deskclock-app-in-kotlin-76c836370cb","alts":[{"type":3,"url":"medium://p/76c836370cb"},{"type":2,"url":"medium://p/76c836370cb"}],"httpStatus":200},{"url":"https://medium.com/androiddevelopers/re-writing-the-aosp-calendar-app-in-kotlin-48ceb0e3a65c","alts":[{"type":2,"url":"medium://p/48ceb0e3a65c"},{"type":3,"url":"medium://p/48ceb0e3a65c"}],"httpStatus":200},{"url":"https://android.googlesource.com/platform/packages/apps/","alts":[],"httpStatus":200},{"url":"https://cs.android.com/android/_/android/platform/packages/apps/QuickSearchBox/+/master:src/com/android/quicksearchbox/","alts":[],"httpStatus":200},{"url":"https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html","alts":[],"httpStatus":200},{"url":"https://developer.android.com/kotlin/first","alts":[],"httpStatus":200},{"url":"https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/package-summary.html","alts":[],"httpStatus":200},{"url":"https://developer.android.com/topic/libraries/architecture/coroutines","alts":[],"httpStatus":200},{"url":"https://developer.android.com/kotlin/add-kotlin#convert","alts":[],"httpStatus":200},{"url":"https://developer.android.com/jetpack/androidx/releases/core","alts":[],"httpStatus":200},{"url":"https://github.com/Kotlin/kotlinx.coroutines","alts":[],"httpStatus":200},{"url":"https://developer.android.com/reference/android/os/AsyncTask","alts":[],"httpStatus":200}],"version":"0.3","generatedAt":1664363806558},"isLockedPreviewOnly":false,"metaDescription":"","totalClapCount":335,"sectionCount":2,"readingList":0,"topics":[{"topicId":"64756708407c","slug":"android-development","createdAt":1521652914155,"deletedAt":0,"image":{"id":"1*zLD64ewnrZ3XKBtDUMXQ-w@2x.jpeg","originalWidth":3000,"originalHeight":1997},"name":"Android Dev","description":"Building little green robots.","relatedTopics":[],"visibility":1,"relatedTags":[],"relatedTopicIds":[],"seoTitle":"Android Development: Articles and News — Medium","type":"Topic"}]},"coverless":true,"slug":"migrating-the-aosp-quicksearchbox-app-to-kotlin","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":false,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":0,"uniqueSlug":"migrating-the-aosp-quicksearchbox-app-to-kotlin-1264346619ec","previewContent":{"bodyModel":{"paragraphs":[{"name":"previewImage","type":4,"text":"","layout":10,"metadata":{"id":"1*cWnPe-kD4hAVuH3IIcNUcA.png","originalWidth":720,"originalHeight":214,"isFeatured":true}},{"name":"1896","type":3,"text":"Migrating the AOSP QuickSearchBox App to Kotlin","markups":[{"type":2,"start":0,"end":47}],"alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":"Over the course of 6 weeks, over 11,000 lines of Java code within the QuickSearchBox app were converted to Kotlin to showcase best…"},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"95b274b437c2","isNewsletter":false,"newsletterId":"51faba4f07b8","webCanonicalUrl":"","mediumUrl":"","migrationId":"","notifyFollowers":true,"notifyTwitter":false,"notifyFacebook":false,"responseHiddenOnParentPostAt":0,"isSeries":false,"isSubscriptionLocked":false,"seriesLastAppendedAt":0,"audioVersionDurationSec":0,"sequenceId":"","isEligibleForRevenue":false,"isBlockedFromHightower":false,"deletedAt":0,"lockedPostSource":0,"hightowerMinimumGuaranteeStartsAt":0,"hightowerMinimumGuaranteeEndsAt":0,"featureLockRequestAcceptedAt":0,"mongerRequestType":1,"layerCake":3,"socialTitle":"","socialDek":"","editorialPreviewTitle":"","editorialPreviewDek":"","curationEligibleAt":0,"primaryTopicId":"64756708407c","isProxyPost":false,"proxyPostFaviconUrl":"","proxyPostProviderName":"","proxyPostType":0,"isSuspended":false,"isLimitedState":false,"seoTitle":"","previewContent2":{"bodyModel":{"paragraphs":[{"name":"1896","type":3,"text":"Migrating the AOSP QuickSearchBox App to Kotlin","markups":[{"type":2,"start":0,"end":47}]},{"name":"2bdc","type":1,"text":"submitted by Ryan O’Leary, Android Intern","markups":[{"type":2,"start":13,"end":41}]},{"name":"e30b","type":4,"text":"","markups":[],"layout":1,"metadata":{"id":"1*cWnPe-kD4hAVuH3IIcNUcA.png","originalWidth":720,"originalHeight":214,"isFeatured":true}},{"name":"a67c","type":3,"text":"Overview","markups":[]},{"name":"f17a","type":1,"text":"For the past three years, the Android Open Source Project (AOSP) applications team has taken on the task of converting AOSP apps from Java to Kotlin. This pursuit was begun as part of Android’s commitment to increasingly develop with Kotlin-first. Kotlin is a safe…","markups":[{"type":3,"start":30,"end":77,"href":"https://android.googlesource.com/platform/packages/apps/","title":"","rel":"noopener","anchorType":0},{"type":3,"start":234,"end":246,"href":"https://developer.android.com/kotlin/first","title":"","rel":"","anchorType":0},{"type":1,"start":234,"end":246}]}],"sections":[{"name":"fd1d","startIndex":0}]},"isFullContent":false,"subtitle":"Over the course of 6 weeks, over 11,000 lines of Java code within the QuickSearchBox app were converted to Kotlin to showcase best…"},"cardType":0,"isDistributionAlertDismissed":false,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":true,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"},"fdfc7ab8827c":{"id":"fdfc7ab8827c","versionId":"e9cddde83095","creatorId":"2e0fc9a4a8c2","homeCollectionId":"95b274b437c2","title":"Now in Android #67","detectedLanguage":"en","latestVersion":"e9cddde83095","latestPublishedVersion":"e9cddde83095","hasUnpublishedEdits":false,"latestRev":237,"createdAt":1661877274241,"updatedAt":1675206758138,"acceptedAt":0,"firstPublishedAt":1662043092363,"latestPublishedAt":1662208370412,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"Cross device SDK Developer Preview, CameraX 1.2 Beta, WearOS Material Tiles Library, deep links monitor in Play Console, 5 years of Kotlin…","postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"0*ED8Bev4rqCJPcTp2","filter":"","backgroundSize":"","originalWidth":1600,"originalHeight":476,"strategy":"resample","height":0,"width":0},"wordCount":1306,"imageCount":4,"readingTime":5.628301886792453,"subtitle":"Cross device SDK Developer Preview, CameraX 1.2 Beta, WearOS Material Tiles Library, deep links monitor in Play Console, 5 years of Kotlin…","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":12,"isBookmarked":false,"tags":[{"slug":"sdk-development","name":"Sdk Development","postCount":15,"metadata":{"postCount":15,"coverImage":{"id":"1*PbGix4leJQHCaD88i5kR9w.png","originalWidth":512,"originalHeight":512}},"type":"Tag"},{"slug":"camerax","name":"Camerax","postCount":79,"metadata":{"postCount":79,"coverImage":{"id":"1*HwZHKKWe4os3vT86iywMjg.jpeg","originalWidth":1024,"originalHeight":500,"isFeatured":true}},"type":"Tag"},{"slug":"wear-os","name":"Wearos","postCount":0,"metadata":{"postCount":0},"type":"Tag"},{"slug":"deep-links-monitor","name":"Deep Links Monitor","postCount":0,"metadata":{"postCount":0,"coverImage":{"id":"0*ED8Bev4rqCJPcTp2","originalWidth":1600,"originalHeight":476,"isFeatured":true}},"type":"Tag"},{"slug":"kotlin","name":"Kotlin","postCount":30906,"metadata":{"postCount":30906,"coverImage":{"id":"1*8kMaRJPi-HkK7N_ccEyAGw.png","originalWidth":470,"originalHeight":266,"isFeatured":true}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":0,"links":{"entries":[{"url":"http://play.google.com/console/about/deeplinks","alts":[],"httpStatus":200},{"url":"https://android-developers.googleblog.com/2022/08/camerax-12-is-now-in-beta.html","alts":[],"httpStatus":200},{"url":"https://medium.com/androiddevelopers/mad-about-media-f536f7d601c","alts":[{"type":3,"url":"medium://p/f536f7d601c"},{"type":2,"url":"medium://p/f536f7d601c"}],"httpStatus":200},{"url":"https://medium.com/androiddevelopers/5-years-of-kotlin-on-android-the-extra-bits-a7dcd17480a9","alts":[{"type":3,"url":"medium://p/a7dcd17480a9"},{"type":2,"url":"medium://p/a7dcd17480a9"}],"httpStatus":200},{"url":"https://medium.com/androiddevelopers/improving-performance-with-baseline-profiles-fdd0db0d8cc6","alts":[{"type":3,"url":"medium://p/fdd0db0d8cc6"},{"type":2,"url":"medium://p/fdd0db0d8cc6"}],"httpStatus":200},{"url":"https://medium.com/androiddevelopers/jetpack-compose-accompanist-an-faq-b55117b02712","alts":[{"type":3,"url":"medium://p/b55117b02712"},{"type":2,"url":"medium://p/b55117b02712"}],"httpStatus":200},{"url":"https://twitter.com/VPoltrack","alts":[],"httpStatus":200},{"url":"https://kotlinfoundation.org/","alts":[],"httpStatus":200},{"url":"https://developer.android.com/series/mad-skills","alts":[],"httpStatus":200},{"url":"https://android-developers.googleblog.com/2022/07/announcing-cross-device-SDK-Developer-Preview-for-Android.html","alts":[],"httpStatus":200},{"url":"https://developer.android.com/training/wearables/tiles","alts":[],"httpStatus":200},{"url":"https://android-developers.googleblog.com/2022/08/wear-os-tiles-material-library-build-tiles-fast.html","alts":[],"httpStatus":200},{"url":"https://android-developers.googleblog.com/2022/08/monitor-your-deep-links-in-one-place.html","alts":[],"httpStatus":200},{"url":"https://developer.android.com/jetpack/androidx/versions","alts":[],"httpStatus":200},{"url":"https://developer.android.com/jetpack/androidx/releases/wear-compose#1.0.1","alts":[],"httpStatus":200},{"url":"https://www.youtube.com/watch?v=9C3-HcP5xBI","alts":[{"type":2,"url":"vnd.youtube://www.youtube.com/watch?v=9C3-HcP5xBI&feature=applinks"},{"type":3,"url":"vnd.youtube://www.youtube.com/watch?v=9C3-HcP5xBI&feature=applinks"}],"httpStatus":200},{"url":"https://android-developers.googleblog.com/2022/08/celebrating-5-years-of-kotlin-on-android.html","alts":[],"httpStatus":200},{"url":"https://developer.android.com/training/wearables/design/download#tiles-design-kit","alts":[],"httpStatus":200},{"url":"https://goo.gle/performance","alts":[],"httpStatus":200},{"url":"https://developer.android.com/training/app-links/deep-linking","alts":[],"httpStatus":200},{"url":"https://medium.com/androiddevelopers/tagged/mad-skills","alts":[{"type":2,"url":"medium://androiddevelopers/tagged/mad-skills"},{"type":3,"url":"medium://androiddevelopers/tagged/mad-skills"}],"httpStatus":200},{"url":"https://www.youtube.com/playlist?list=PLWz5rJ2EKKc91i2QT8qfrfKgLNlJiG1z7","alts":[],"httpStatus":200},{"url":"https://developer.android.com/jetpack/androidx/releases/wear-tiles#1.1.0","alts":[],"httpStatus":200},{"url":"https://developer.android.com/topic/performance/benchmarking/macrobenchmark-overview","alts":[],"httpStatus":200},{"url":"https://developer.android.com/jetpack/androidx/releases/webkit#1.5.0","alts":[],"httpStatus":200},{"url":"https://www.youtube.com/shorts/PhqMvUQURc4","alts":[{"type":2,"url":"vnd.youtube://www.youtube.com/shorts/PhqMvUQURc4?feature=applinks"},{"type":3,"url":"vnd.youtube://www.youtube.com/shorts/PhqMvUQURc4?feature=applinks"}],"httpStatus":200},{"url":"https://developer.android.com/jetpack/androidx/versions/all-channel","alts":[],"httpStatus":200},{"url":"https://medium.com/androiddevelopers/top-tips-for-adopting-androids-notification-permission-bf69afd677b8","alts":[{"type":3,"url":"medium://p/bf69afd677b8"},{"type":2,"url":"medium://p/bf69afd677b8"}],"httpStatus":200},{"url":"https://developer.android.com/training/camerax","alts":[],"httpStatus":200},{"url":"https://developer.android.com/reference/androidx/wear/tiles/material/Text","alts":[],"httpStatus":200},{"url":"https://developer.android.com/reference/androidx/wear/tiles/material/layouts/EdgeContentLayout","alts":[],"httpStatus":200},{"url":"https://developer.android.com/training/wearables/design/tiles","alts":[],"httpStatus":200},{"url":"https://developer.android.com/reference/kotlin/androidx/benchmark/macro/junit4/BaselineProfileRule","alts":[],"httpStatus":200},{"url":"https://developer.android.com/reference/androidx/wear/tiles/material/CompactChip","alts":[],"httpStatus":200},{"url":"https://developer.android.com/reference/androidx/wear/tiles/material/layouts/MultiButtonLayout","alts":[],"httpStatus":200},{"url":"https://developer.android.com/reference/androidx/wear/tiles/material/Button","alts":[],"httpStatus":200},{"url":"https://developer.android.com/reference/androidx/wear/tiles/material/layouts/PrimaryLayout","alts":[],"httpStatus":200},{"url":"https://developer.android.com/reference/androidx/camera/mlkit/vision/MlKitAnalyzer","alts":[],"httpStatus":200},{"url":"https://developer.android.com/reference/androidx/camera/core/ImageCapture?hl=zh-tw#CAPTURE_MODE_ZERO_SHUTTER_LAG","alts":[],"httpStatus":200},{"url":"https://developer.android.com/reference/androidx/wear/tiles/material/CircularProgressIndicator","alts":[],"httpStatus":200},{"url":"https://developer.android.com/reference/androidx/wear/tiles/material/Chip","alts":[],"httpStatus":200},{"url":"https://developer.android.com/reference/androidx/wear/tiles/material/layouts/MultiSlotLayout","alts":[],"httpStatus":200},{"url":"https://developer.android.com/reference/androidx/wear/tiles/material/TitleChip","alts":[],"httpStatus":200}],"version":"0.3","generatedAt":1662208372199},"isLockedPreviewOnly":false,"metaDescription":"","totalClapCount":59,"sectionCount":1,"readingList":0,"topics":[{"topicId":"64756708407c","slug":"android-development","createdAt":1521652914155,"deletedAt":0,"image":{"id":"1*zLD64ewnrZ3XKBtDUMXQ-w@2x.jpeg","originalWidth":3000,"originalHeight":1997},"name":"Android Dev","description":"Building little green robots.","relatedTopics":[],"visibility":1,"relatedTags":[],"relatedTopicIds":[],"seoTitle":"Android Development: Articles and News — Medium","type":"Topic"}]},"coverless":true,"slug":"now-in-android-67","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":true,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":0,"uniqueSlug":"now-in-android-67-fdfc7ab8827c","previewContent":{"bodyModel":{"paragraphs":[{"name":"previewImage","type":4,"text":"","layout":10,"metadata":{"id":"0*ED8Bev4rqCJPcTp2","originalWidth":1600,"originalHeight":476,"isFeatured":true}},{"name":"9246","type":3,"text":"Now in Android #67","markups":[],"alignment":1},{"name":"b1ab","type":13,"text":"Cross device SDK Developer Preview, CameraX 1.2 Beta, WearOS Material Tiles…","markups":[{"type":3,"start":0,"end":34,"href":"https://android-developers.googleblog.com/2022/07/announcing-cross-device-SDK-Developer-Preview-for-Android.html","title":"","rel":"","anchorType":0},{"type":3,"start":36,"end":52,"href":"https://android-developers.googleblog.com/2022/08/camerax-12-is-now-in-beta.html","title":"","rel":"","anchorType":0},{"type":3,"start":54,"end":75,"href":"https://android-developers.googleblog.com/2022/08/wear-os-tiles-material-library-build-tiles-fast.html","title":"","rel":"","anchorType":0}],"alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":"Cross device SDK Developer Preview, CameraX 1.2 Beta, WearOS Material Tiles Library, deep links monitor in Play Console, 5 years of Kotlin…"},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"95b274b437c2","isNewsletter":false,"newsletterId":"","webCanonicalUrl":"","mediumUrl":"","migrationId":"","notifyFollowers":true,"notifyTwitter":false,"notifyFacebook":false,"responseHiddenOnParentPostAt":0,"isSeries":false,"isSubscriptionLocked":false,"seriesLastAppendedAt":0,"audioVersionDurationSec":0,"sequenceId":"","isEligibleForRevenue":false,"isBlockedFromHightower":false,"deletedAt":0,"lockedPostSource":0,"hightowerMinimumGuaranteeStartsAt":0,"hightowerMinimumGuaranteeEndsAt":0,"featureLockRequestAcceptedAt":0,"mongerRequestType":1,"layerCake":3,"socialTitle":"","socialDek":"","editorialPreviewTitle":"","editorialPreviewDek":"","curationEligibleAt":0,"primaryTopicId":"64756708407c","isProxyPost":false,"proxyPostFaviconUrl":"","proxyPostProviderName":"","proxyPostType":0,"isSuspended":false,"isLimitedState":false,"seoTitle":"","previewContent2":{"bodyModel":{"paragraphs":[{"name":"2530","type":4,"text":"Illustration by Virginia Poltrack","markups":[{"type":3,"start":16,"end":33,"href":"https://twitter.com/VPoltrack","title":"","rel":"","anchorType":0}],"layout":1,"metadata":{"id":"0*ED8Bev4rqCJPcTp2","originalWidth":1600,"originalHeight":476,"isFeatured":true}},{"name":"9246","type":3,"text":"Now in Android #67","markups":[]},{"name":"b1ab","type":13,"text":"Cross device SDK Developer Preview, CameraX 1.2 Beta, WearOS Material Tiles Library, deep links monitor in Play Console, 5 years of Kotlin on Android, and more.","markups":[{"type":3,"start":0,"end":34,"href":"https://android-developers.googleblog.com/2022/07/announcing-cross-device-SDK-Developer-Preview-for-Android.html","title":"","rel":"","anchorType":0},{"type":3,"start":36,"end":52,"href":"https://android-developers.googleblog.com/2022/08/camerax-12-is-now-in-beta.html","title":"","rel":"","anchorType":0},{"type":3,"start":54,"end":83,"href":"https://android-developers.googleblog.com/2022/08/wear-os-tiles-material-library-build-tiles-fast.html","title":"","rel":"","anchorType":0},{"type":3,"start":85,"end":119,"href":"https://android-developers.googleblog.com/2022/08/monitor-your-deep-links-in-one-place.html","title":"","rel":"","anchorType":0},{"type":3,"start":121,"end":149,"href":"https://android-developers.googleblog.com/2022/08/celebrating-5-years-of-kotlin-on-android.html","title":"","rel":"","anchorType":0}]},{"name":"e164","type":1,"text":"Welcome to Now in Android, your ongoing guide to what’s new and notable in the world of Android development.","markups":[]},{"name":"fbec","type":3,"text":"Episode 67 Video and Podcast","markups":[]},{"name":"d2a0","type":1,"text":"Now in Android is also offered as a video and podcast.","markups":[{"type":2,"start":0,"end":14}]},{"name":"d75d","type":11,"text":"","markups":[],"layout":1,"iframe":{"mediaResourceId":"cb509ca137ce0b2dfe9e468c6b056664","iframeWidth":854,"iframeHeight":480,"thumbnailUrl":"https://i.embed.ly/1/image?url=https%3A%2F%2Fi.ytimg.com%2Fvi%2FDOyrGgoNkPY%2Fhqdefault.jpg&key=a19fcc184b9711e1b4764040d3dc5c07"}},{"name":"499a","type":11,"text":"","markups":[],"layout":1,"iframe":{"mediaResourceId":"fcd0373b0ef2266436eedae1d6d4e32f","iframeWidth":600,"iframeHeight":90,"thumbnailUrl":"https://i.embed.ly/1/image?url=https%3A%2F%2Fassets.libsyn.com%2Fsecure%2Fcontent%2F135221052&key=a19fcc184b9711e1b4764040d3dc5c07"}},{"name":"8dd3","type":3,"text":"Cross device SDK Developer Preview 📱↔️📱","markups":[{"type":3,"start":0,"end":34,"href":"https://android-developers.googleblog.com/2022/07/announcing-cross-device-SDK-Developer-Preview-for-Android.html","title":"","rel":"","anchorType":0}]},{"name":"2aa3","type":1,"text":"We launched the Cross device SDK for Android developer preview, which allows you to build rich multi-device experiences…","markups":[]}],"sections":[{"name":"2c39","startIndex":0}]},"isFullContent":false,"subtitle":"Cross device SDK Developer Preview, CameraX 1.2 Beta, WearOS Material Tiles Library, deep links monitor in Play Console, 5 years of Kotlin…"},"cardType":0,"isDistributionAlertDismissed":false,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":false,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"},"a7dcd17480a9":{"id":"a7dcd17480a9","versionId":"5dc4ca640d81","creatorId":"e1f26db83092","homeCollectionId":"95b274b437c2","title":"5 years of Kotlin on Android — the extended interviews","detectedLanguage":"en","latestVersion":"5dc4ca640d81","latestPublishedVersion":"5dc4ca640d81","hasUnpublishedEdits":false,"latestRev":271,"createdAt":1660593863892,"updatedAt":1660762863751,"acceptedAt":0,"firstPublishedAt":1660755736692,"latestPublishedAt":1660762859536,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"We’ve published a celebration post on our blog to recognize the 5 year anniversary of official support for Kotlin on Android.","postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"1*CDq4uk7-5PeQkTQpgug8Rw.png","filter":"","backgroundSize":"","originalWidth":1999,"originalHeight":601,"strategy":"resample","height":0,"width":0},"wordCount":2239,"imageCount":1,"readingTime":8.649056603773584,"subtitle":"We’ve published a celebration post on our blog to recognize the 5 year anniversary of official support for Kotlin on Android.","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":80,"isBookmarked":false,"tags":[{"slug":"kotlin","name":"Kotlin","postCount":30906,"metadata":{"postCount":30906,"coverImage":{"id":"1*8kMaRJPi-HkK7N_ccEyAGw.png","originalWidth":470,"originalHeight":266,"isFeatured":true}},"type":"Tag"},{"slug":"latest","name":"Latest","postCount":6011,"metadata":{"postCount":6011,"coverImage":{"id":"1*_2FY-QWaSDoIy-OWHpRSXw.png","originalWidth":1920,"originalHeight":960,"isFeatured":true}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":3,"links":{"entries":[{"url":"https://android-developers.googleblog.com/2022/08/celebrating-5-years-of-kotlin-on-android.html","alts":[],"httpStatus":200},{"url":"https://developers.googleblog.com/2021/11/announcing-kotlin-support-for-protocol.html","alts":[],"httpStatus":200},{"url":"https://kotlinfoundation.org/","alts":[],"httpStatus":200},{"url":"https://android.googlesource.com/platform/frameworks/data-binding/+/085724fd84795ae1631747443c43f77c08e11a28","alts":[],"httpStatus":200},{"url":"https://developer.android.com/courses/android-basics-compose/course","alts":[],"httpStatus":200},{"url":"https://developer.android.com/jetpack/compose/kotlin#coroutines","alts":[],"httpStatus":200},{"url":"https://developer.android.com/jetpack/compose/layouts/adaptive#explicit-layout-changes","alts":[],"httpStatus":200},{"url":"https://developer.android.com/topic/libraries/architecture/datastore","alts":[],"httpStatus":200},{"url":"https://docs.google.com/document/d/1ReS3ep-hjxWA8kZi0YqDbEhCqTt29hG8P44aA9W0DM8/edit?usp=sharing","alts":[],"httpStatus":200}],"version":"0.3","generatedAt":1660762860598},"isLockedPreviewOnly":false,"metaDescription":"","totalClapCount":395,"sectionCount":2,"readingList":0,"topics":[{"topicId":"64756708407c","slug":"android-development","createdAt":1521652914155,"deletedAt":0,"image":{"id":"1*zLD64ewnrZ3XKBtDUMXQ-w@2x.jpeg","originalWidth":3000,"originalHeight":1997},"name":"Android Dev","description":"Building little green robots.","relatedTopics":[],"visibility":1,"relatedTags":[],"relatedTopicIds":[],"seoTitle":"Android Development: Articles and News — Medium","type":"Topic"},{"topicId":"decb52b64abf","slug":"programming","createdAt":1493934116328,"deletedAt":0,"image":{"id":"1*iPa136b1cGEO7lvoXg6uHQ@2x.jpeg","originalWidth":6016,"originalHeight":4016},"name":"Programming","description":"The good, the bad, the buggy.","relatedTopics":[],"visibility":1,"relatedTags":[],"relatedTopicIds":[],"seoTitle":"Programming News and Articles — Medium","type":"Topic"}]},"coverless":true,"slug":"5-years-of-kotlin-on-android-the-extra-bits","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":false,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":0,"uniqueSlug":"5-years-of-kotlin-on-android-the-extra-bits-a7dcd17480a9","previewContent":{"bodyModel":{"paragraphs":[{"name":"previewImage","type":4,"text":"","layout":10,"metadata":{"id":"1*CDq4uk7-5PeQkTQpgug8Rw.png","originalWidth":1999,"originalHeight":601,"isFeatured":true}},{"name":"1dd7","type":3,"text":"5 years of Kotlin on Android — the extended interviews","markups":[{"type":2,"start":0,"end":54}],"alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":"We’ve published a celebration post on our blog to recognize the 5 year anniversary of official support for Kotlin on Android."},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"95b274b437c2","isNewsletter":false,"newsletterId":"8544ad7ba340","webCanonicalUrl":"","mediumUrl":"","migrationId":"","notifyFollowers":true,"notifyTwitter":false,"notifyFacebook":false,"responseHiddenOnParentPostAt":0,"isSeries":false,"isSubscriptionLocked":false,"seriesLastAppendedAt":0,"audioVersionDurationSec":0,"sequenceId":"","isEligibleForRevenue":false,"isBlockedFromHightower":false,"deletedAt":0,"lockedPostSource":0,"hightowerMinimumGuaranteeStartsAt":0,"hightowerMinimumGuaranteeEndsAt":0,"featureLockRequestAcceptedAt":0,"mongerRequestType":1,"layerCake":3,"socialTitle":"","socialDek":"","editorialPreviewTitle":"","editorialPreviewDek":"","curationEligibleAt":0,"primaryTopicId":"64756708407c","isProxyPost":false,"proxyPostFaviconUrl":"","proxyPostProviderName":"","proxyPostType":0,"isSuspended":false,"isLimitedState":false,"seoTitle":"5 years of Kotlin on Android — the extended interviews | by Android Developers | Android Developers | Aug, 2022 | Medium","previewContent2":{"bodyModel":{"paragraphs":[{"name":"a1f8","type":4,"text":"","markups":[],"layout":1,"metadata":{"id":"1*CDq4uk7-5PeQkTQpgug8Rw.png","originalWidth":1999,"originalHeight":601,"isFeatured":true}},{"name":"1dd7","type":3,"text":"5 years of Kotlin on Android — the extended interviews","markups":[{"type":2,"start":0,"end":54}]},{"name":"f192","type":1,"text":"We’ve published a celebration post on our blog to recognize the 5 year anniversary of official support for Kotlin on Android.","markups":[{"type":3,"start":16,"end":34,"href":"https://android-developers.googleblog.com/2022/08/celebrating-5-years-of-kotlin-on-android.html","title":"","rel":"","anchorType":0}]},{"name":"ea9b","type":1,"text":"In the making of that post, I had the chance to interview some great people who were involved in the Kotlin story, and the blog post could only include…","markups":[]}],"sections":[{"name":"b9ba","startIndex":0}]},"isFullContent":false,"subtitle":"We’ve published a celebration post on our blog to recognize the 5 year anniversary of official support for Kotlin on Android."},"cardType":0,"isDistributionAlertDismissed":false,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":true,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"},"b99f7fc47774":{"id":"b99f7fc47774","versionId":"638418b192fc","creatorId":"ec2087b3c81f","homeCollectionId":"95b274b437c2","title":"Migrating to the new coroutines 1.6 test APIs","detectedLanguage":"en","latestVersion":"638418b192fc","latestPublishedVersion":"638418b192fc","hasUnpublishedEdits":false,"latestRev":414,"createdAt":1654158266396,"updatedAt":1656522046945,"acceptedAt":0,"firstPublishedAt":1656522045134,"latestPublishedAt":1656522045134,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"See the steps we took to migrate our samples to the new APIs, and then get started on migrating your own project!","postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"1*XQmi35H84FdYhY_ONP6ntQ.png","filter":"","backgroundSize":"","originalWidth":4209,"originalHeight":1253,"strategy":"resample","height":0,"width":0},"wordCount":1117,"imageCount":1,"readingTime":4.415094339622642,"subtitle":"See the steps we took to migrate our samples to the new APIs, and then get started on migrating your own project!","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":55,"isBookmarked":false,"tags":[{"slug":"androiddev","name":"AndroidDev","postCount":12127,"metadata":{"postCount":12127,"coverImage":{"id":"1*lsi-SHMe9F42JG6xkMDUCA.png","originalWidth":1024,"originalHeight":1024,"isFeatured":true}},"type":"Tag"},{"slug":"kotlin","name":"Kotlin","postCount":30906,"metadata":{"postCount":30906,"coverImage":{"id":"1*8kMaRJPi-HkK7N_ccEyAGw.png","originalWidth":470,"originalHeight":266,"isFeatured":true}},"type":"Tag"},{"slug":"coroutine-testing","name":"Coroutine Testing","postCount":32,"metadata":{"postCount":32,"coverImage":{"id":"1*A_5n9pnBNtjCfFoes1xRjA.jpeg","originalWidth":1920,"originalHeight":1280,"isFeatured":true}},"type":"Tag"},{"slug":"kotlin-coroutines","name":"Kotlin Coroutines","postCount":1569,"metadata":{"postCount":1569,"coverImage":{"id":"1*Bhfzsp01NibPkNYmWy9YyA.png","originalWidth":1024,"originalHeight":1024,"isFeatured":true}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":1,"links":{"entries":[{"url":"https://medium.com/androiddevelopers/easy-coroutines-in-android-viewmodelscope-25bffb605471","alts":[{"type":3,"url":"medium://p/25bffb605471"},{"type":2,"url":"medium://p/25bffb605471"}],"httpStatus":200},{"url":"https://kotlin.github.io/kotlinx.coroutines/kotlinx-coroutines-test/kotlinx.coroutines.test/set-main.html","alts":[],"httpStatus":200},{"url":"https://kotlin.github.io/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines.flow/to-list.html","alts":[],"httpStatus":200},{"url":"https://junit.org/junit4/javadoc/4.12/org/junit/rules/TestRule.html","alts":[],"httpStatus":200},{"url":"https://kotlin.github.io/kotlinx.coroutines/kotlinx-coroutines-test/kotlinx.coroutines.test/run-test.html","alts":[],"httpStatus":200},{"url":"https://github.com/google/iosched/blob/69db6ea7772093fc286df5d1f317aff8f3b02c5d/test-shared/src/main/java/com/google/samples/apps/iosched/test/data/MainCoroutineRule.kt#L29-L43","alts":[],"httpStatus":200},{"url":"https://github.com/google/iosched/blob/69db6ea7772093fc286df5d1f317aff8f3b02c5d/mobile/src/test/java/com/google/samples/apps/iosched/ui/feed/FeedViewModelTest.kt#L104-L105","alts":[],"httpStatus":200},{"url":"https://github.com/Kotlin/kotlinx.coroutines/blob/master/kotlinx-coroutines-test/MIGRATION.md","alts":[],"httpStatus":200},{"url":"https://github.com/android/architecture-samples/blob/f042c781a6cb959426c4606160cf9d2da50eb045/app/src/test/java/com/example/android/architecture/blueprints/todoapp/statistics/StatisticsViewModelTest.kt#L102-L118","alts":[],"httpStatus":200},{"url":"https://github.com/android/nowinandroid","alts":[],"httpStatus":200},{"url":"https://github.com/Kotlin/kotlinx.coroutines/releases/tag/1.6.0","alts":[],"httpStatus":200},{"url":"https://github.com/google/iosched/pull/428","alts":[],"httpStatus":200},{"url":"https://developer.android.com/kotlin/coroutines/test#testdispatchers","alts":[],"httpStatus":200},{"url":"https://developer.android.com/kotlin/coroutines/test#setting-main-dispatcher","alts":[],"httpStatus":200},{"url":"https://github.com/android/trackr/pull/45","alts":[],"httpStatus":200},{"url":"https://developer.android.com/kotlin/coroutines/test#creating-your-own-testscope","alts":[],"httpStatus":200},{"url":"https://developer.android.com/kotlin/coroutines/test#standardtestdispatcher","alts":[],"httpStatus":200},{"url":"https://developer.android.com/kotlin/coroutines/test","alts":[],"httpStatus":200},{"url":"https://github.com/android/architecture-samples/pull/825","alts":[],"httpStatus":200},{"url":"https://github.com/google/iosched/pull/404","alts":[],"httpStatus":200},{"url":"https://developer.android.com/kotlin/coroutines/test#injecting-test-dispatchers","alts":[],"httpStatus":200}],"version":"0.3","generatedAt":1656522047045},"isLockedPreviewOnly":false,"metaDescription":"","totalClapCount":299,"sectionCount":1,"readingList":0,"topics":[{"topicId":"64756708407c","slug":"android-development","createdAt":1521652914155,"deletedAt":0,"image":{"id":"1*zLD64ewnrZ3XKBtDUMXQ-w@2x.jpeg","originalWidth":3000,"originalHeight":1997},"name":"Android Dev","description":"Building little green robots.","relatedTopics":[],"visibility":1,"relatedTags":[],"relatedTopicIds":[],"seoTitle":"Android Development: Articles and News — Medium","type":"Topic"}]},"coverless":true,"slug":"migrating-to-the-new-coroutines-1-6-test-apis","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":false,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":0,"uniqueSlug":"migrating-to-the-new-coroutines-1-6-test-apis-b99f7fc47774","previewContent":{"bodyModel":{"paragraphs":[{"name":"previewImage","type":4,"text":"","layout":10,"metadata":{"id":"1*XQmi35H84FdYhY_ONP6ntQ.png","originalWidth":4209,"originalHeight":1253,"isFeatured":true}},{"name":"previewTitle","type":3,"text":"Migrating to the new coroutines 1.6 test APIs","alignment":1},{"name":"previewSubtitle","type":13,"text":"See the steps we took to migrate our samples to the new…","alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":"See the steps we took to migrate our samples to the new APIs, and then get started on migrating your own project!"},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"95b274b437c2","isNewsletter":false,"newsletterId":"","webCanonicalUrl":"","mediumUrl":"","migrationId":"","notifyFollowers":true,"notifyTwitter":false,"notifyFacebook":false,"responseHiddenOnParentPostAt":0,"isSeries":false,"isSubscriptionLocked":false,"seriesLastAppendedAt":0,"audioVersionDurationSec":0,"sequenceId":"","isEligibleForRevenue":false,"isBlockedFromHightower":false,"deletedAt":0,"lockedPostSource":0,"hightowerMinimumGuaranteeStartsAt":0,"hightowerMinimumGuaranteeEndsAt":0,"featureLockRequestAcceptedAt":0,"mongerRequestType":1,"layerCake":3,"socialTitle":"","socialDek":"","editorialPreviewTitle":"","editorialPreviewDek":"","curationEligibleAt":0,"primaryTopicId":"64756708407c","isProxyPost":false,"proxyPostFaviconUrl":"","proxyPostProviderName":"","proxyPostType":0,"isSuspended":false,"isLimitedState":false,"seoTitle":"","previewContent2":{"bodyModel":{"paragraphs":[{"name":"0c0f","type":4,"text":"","markups":[],"layout":1,"metadata":{"id":"1*XQmi35H84FdYhY_ONP6ntQ.png","originalWidth":4209,"originalHeight":1253,"isFeatured":true}},{"name":"8f1e","type":3,"text":"Migrating to the new coroutines 1.6 test APIs","markups":[{"type":2,"start":0,"end":45}]},{"name":"7e28","type":1,"text":"kotlinx.coroutines 1.6 introduces a set of new testing APIs, and the previous testing APIs are now deprecated. Using the old APIs will produce deprecation errors soon, and they’re scheduled to be removed completely around the end of 2022.","markups":[{"type":10,"start":0,"end":18},{"type":3,"start":0,"end":22,"href":"https://github.com/Kotlin/kotlinx.coroutines/releases/tag/1.6.0","title":"","rel":"","anchorType":0}]},{"name":"1241","type":1,"text":"We have recently published a guide on how to use the new…","markups":[{"type":3,"start":29,"end":69,"href":"https://developer.android.com/kotlin/coroutines/test","title":"","rel":"","anchorType":0}]}],"sections":[{"name":"1075","startIndex":0}]},"isFullContent":false,"subtitle":"See the steps we took to migrate our samples to the new APIs, and then get started on migrating your own project!"},"cardType":0,"isDistributionAlertDismissed":false,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":false,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"}}},"paging":{"path":"https://medium.com/androiddevelopers/load-more?sortBy=tagged&tagSlug=kotlin","next":{"limit":10,"to":"1656522045267"}},"collection":{"id":"95b274b437c2","name":"Android Developers","slug":"androiddevelopers","tags":["ANDROID DEVELOPERS","ANDROID APP DEVELOPMENT","ANDROID STUDIO","ANDROIDDEV","ANDROID DEVELOPMENT"],"creatorId":"e1f26db83092","description":"Articles on modern tools and resources to help you build experiences that people love, faster and easier, across every Android device.","shortDescription":"Articles on modern tools and resources to help you build…","image":{"imageId":"1*4Tg6pPzer7cIarYaszIKaQ.png","filter":"","backgroundSize":"","originalWidth":96,"originalHeight":96,"strategy":"resample","height":0,"width":0},"metadata":{"followerCount":51941,"activeAt":1732208584254},"virtuals":{"permissions":{"canPublish":false,"canPublishAll":false,"canRepublish":false,"canRemove":false,"canManageAll":false,"canSubmit":false,"canEditPosts":false,"canAddWriters":false,"canViewStats":false,"canSendNewsletter":false,"canViewLockedPosts":false,"canViewCloaked":false,"canEditOwnPosts":false,"canBeAssignedAuthor":false,"canEnrollInHightower":false,"canLockPostsForMediumMembers":false,"canLockOwnPostsForMediumMembers":false,"canViewNewsletterV2Stats":false,"canCreateNewsletterV3":false},"isSubscribed":false,"isEnrolledInHightower":false,"isEligibleForHightower":false,"isSubscribedToCollectionEmails":false,"isMuted":false,"canToggleEmail":false,"isWriter":false},"logo":{"imageId":"1*5pMw_nx55x_66tk77kutPQ.png","filter":"","backgroundSize":"","originalWidth":600,"originalHeight":72,"strategy":"resample","height":0,"width":0},"twitterUsername":"androiddev","sections":[{"type":2,"collectionHeaderMetadata":{"title":"Android Developers","description":"The official Android Developers publication on Medium","backgroundImage":{},"logoImage":{"id":"1*KismM-jT9LUMr1GMhlSPfg@2x.png","originalWidth":1000,"originalHeight":550,"alt":"Android Developers"},"alignment":2,"layout":5}},{"type":1,"postListMetadata":{"source":1,"layout":4,"number":7,"postIds":[]}},{"type":1,"postListMetadata":{"source":4,"layout":4,"number":3,"postIds":[],"tagSlug":"Now In Android","sectionHeader":"Now in Android"}},{"type":1,"postListMetadata":{"source":1,"layout":5,"number":7,"postIds":[]}}],"tintColor":"#FF202124","lightText":true,"favicon":{"imageId":"","filter":"","backgroundSize":"","originalWidth":0,"originalHeight":0,"strategy":"resample","height":0,"width":0},"colorPalette":{"defaultBackgroundSpectrum":{"colorPoints":[{"color":"#FF848488","point":0},{"color":"#FF7B7B7E","point":0.1},{"color":"#FF717275","point":0.2},{"color":"#FF68686B","point":0.3},{"color":"#FF5E5E60","point":0.4},{"color":"#FF545456","point":0.5},{"color":"#FF4A494B","point":0.6},{"color":"#FF3F3E40","point":0.7},{"color":"#FF333334","point":0.8},{"color":"#FF272728","point":0.9},{"color":"#FF1A1A1A","point":1}],"backgroundColor":"#FFFFFFFF"},"tintBackgroundSpectrum":{"colorPoints":[{"color":"#FF202124","point":0},{"color":"#FF3D3E41","point":0.1},{"color":"#FF58585B","point":0.2},{"color":"#FF707073","point":0.3},{"color":"#FF878689","point":0.4},{"color":"#FF9D9C9E","point":0.5},{"color":"#FFB2B1B2","point":0.6},{"color":"#FFC6C5C6","point":0.7},{"color":"#FFDAD8DA","point":0.8},{"color":"#FFEEEBEC","point":0.9},{"color":"#FFFFFEFF","point":1}],"backgroundColor":"#FF202124"},"highlightSpectrum":{"colorPoints":[{"color":"#FFF4F2F3","point":0},{"color":"#FFF2F0F1","point":0.1},{"color":"#FFF0EEEF","point":0.2},{"color":"#FFEEECEE","point":0.3},{"color":"#FFECEAEC","point":0.4},{"color":"#FFEAE8EA","point":0.5},{"color":"#FFE8E7E9","point":0.6},{"color":"#FFE6E5E7","point":0.7},{"color":"#FFE4E3E5","point":0.8},{"color":"#FFE2E1E4","point":0.9},{"color":"#FFE0DFE2","point":1}],"backgroundColor":"#FFFFFFFF"},"darkBackgroundSpectrum":{"colorPoints":[{"color":"#FF9C9CA0","point":0},{"color":"#FFA5A5A8","point":0.1},{"color":"#FFAEADB0","point":0.2},{"color":"#FFB6B6B8","point":0.3},{"color":"#FFBFBEC0","point":0.4},{"color":"#FFC7C6C8","point":0.5},{"color":"#FFD0CED0","point":0.6},{"color":"#FFD8D6D8","point":0.7},{"color":"#FFE0DEDF","point":0.8},{"color":"#FFE8E6E7","point":0.9},{"color":"#FFF0EEEE","point":1}],"backgroundColor":"#FF000000"}},"navItems":[{"type":5,"title":"Archive","url":"https://medium.com/androiddevelopers/archive"},{"type":1,"title":"Kotlin","tagSlug":"kotlin","url":"https://medium.com/androiddevelopers/tagged/kotlin","source":"tagSlug"},{"type":1,"title":"Design","tagSlug":"design","url":"https://medium.com/androiddevelopers/tagged/design","source":"tagSlug"},{"type":1,"title":"Android Studio","tagSlug":"android-studio","url":"https://medium.com/androiddevelopers/tagged/android-studio","source":"tagSlug"},{"type":1,"title":"Now in Android","tagSlug":"now-in-android","url":"https://medium.com/androiddevelopers/tagged/now-in-android","source":"tagSlug"},{"type":1,"title":"Modern Android Development","tagSlug":"mad-skills","url":"https://medium.com/androiddevelopers/tagged/mad-skills","source":"tagSlug"},{"type":3,"title":"developer.android.com","url":"https://developer.android.com"}],"colorBehavior":2,"collectionFeatures":[30,25],"ampLogo":{"imageId":"","filter":"","backgroundSize":"","originalWidth":0,"originalHeight":0,"strategy":"resample","height":0,"width":0},"header":{"title":"Android Developers","description":"The official Android Developers publication on Medium","backgroundImage":{},"logoImage":{"id":"1*KismM-jT9LUMr1GMhlSPfg@2x.png","originalWidth":1000,"originalHeight":550,"alt":"Android Developers"},"alignment":2,"layout":5},"subscriberCount":51941,"tagline":"The official Android Developers publication on Medium","isOptedIntoAurora":false,"isCurationAllowedByDefault":false,"polarisCoverImage":{"imageId":"","filter":"","backgroundSize":"","originalWidth":0,"originalHeight":0,"strategy":"resample","height":0,"width":0},"ptsQualifiedAt":1616092827591,"type":"Collection"},"tag":{"slug":"kotlin","name":"Kotlin","postCount":30906,"metadata":{"postCount":30906,"coverImage":{"id":"1*8kMaRJPi-HkK7N_ccEyAGw.png","originalWidth":470,"originalHeight":266,"isFeatured":true}},"type":"Tag"},"streamItems":[{"createdAt":1732361402979,"postPreview":{"postId":"d334239c7c5b"},"randomId":"8c52b3587687","itemType":"postPreview","type":"StreamItem"},{"createdAt":1732361402979,"postPreview":{"postId":"1b72759c5f0c"},"randomId":"50372b0e31a8","itemType":"postPreview","type":"StreamItem"},{"createdAt":1732361402979,"postPreview":{"postId":"f5db5d045dfb"},"randomId":"a63f06c1dd31","itemType":"postPreview","type":"StreamItem"},{"createdAt":1732361402979,"postPreview":{"postId":"51866ffd0bd8"},"randomId":"c4774e64028f","itemType":"postPreview","type":"StreamItem"},{"createdAt":1732361402979,"postPreview":{"postId":"f631b7564edb"},"randomId":"9d528518fdec","itemType":"postPreview","type":"StreamItem"},{"createdAt":1732361402979,"postPreview":{"postId":"e4bbe977d33f"},"randomId":"93d2bbad774a","itemType":"postPreview","type":"StreamItem"},{"createdAt":1732361402979,"postPreview":{"postId":"1264346619ec"},"randomId":"246e01200b71","itemType":"postPreview","type":"StreamItem"},{"createdAt":1732361402979,"postPreview":{"postId":"fdfc7ab8827c"},"randomId":"9f0de0004e57","itemType":"postPreview","type":"StreamItem"},{"createdAt":1732361402979,"postPreview":{"postId":"a7dcd17480a9"},"randomId":"85c15450338c","itemType":"postPreview","type":"StreamItem"},{"createdAt":1732361402979,"postPreview":{"postId":"b99f7fc47774"},"randomId":"dae9075c5ae8","itemType":"postPreview","type":"StreamItem"}],"showCdcBanner":false}) // ]]></script><script>(function(){function c(){var b=a.contentDocument||a.contentWindow.document;if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'8e70d32e9e0dce01',t:'MTczMjM2MTQwMy4wMDAwMDA='};var a=document.createElement('script');a.nonce='';a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script></body></html>