CINXE.COM
Mad Skills – 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>Mad Skills – Android Developers – Medium</title><link rel="canonical" href="https://medium.com/androiddevelopers/tagged/mad-skills"><link id="feedLink" rel="alternate" type="application/rss+xml" title="RSS" href="https://medium.com/feed/androiddevelopers/tagged/mad-skills"><meta name="robots" content="index,follow"><meta name="title" content="Mad Skills – Android Developers – Medium"><meta name="referrer" content="unsafe-url"><meta name="description" content="Read writing about Mad Skills 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="Mad Skills – Android Developers – Medium"><meta property="twitter:title" content="Mad Skills – Android Developers – Medium"><meta property="og:url" content="https://medium.com/androiddevelopers/tagged/mad-skills"><meta property="fb:app_id" content="542599432471018"><meta property="og:description" content="Read writing about Mad Skills 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 Mad Skills 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/mad-skills"><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/mad-skills"><meta property="al:android:url" content="medium://androiddevelopers/tagged/mad-skills"><meta property="al:web:url" content="https://medium.com/androiddevelopers/tagged/mad-skills"><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/mad-skills" /><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%2Fmad-skills&source=--------------------------nav_reg&operation=login" data-action="sign-in-prompt" data-redirect="https://medium.com/androiddevelopers/tagged/mad-skills" 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%2Fmad-skills&source=--------------------------nav_reg&operation=register" data-action="sign-up-prompt" data-redirect="https://medium.com/androiddevelopers/tagged/mad-skills" 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_35e9c2467f58---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_35e9c2467f58---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">Mad Skills</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/mad-skills">Mad Skills</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="1fe4621c64" 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/@anomisSi" data-action="show-user-card" data-action-value="f4d5f1a633bb" data-action-type="hover" data-user-id="f4d5f1a633bb" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/72/72/0*JuDXNZF_XDNLQV_-" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of Simona Milanović"></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/@anomisSi?source=---------0-----------------------" data-action="show-user-card" data-action-source="---------0-----------------------" data-action-value="f4d5f1a633bb" data-action-type="hover" data-user-id="f4d5f1a633bb" dir="auto">Simona Milanović</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/compose-layouts-and-modifiers-mad-skills-wrap-up-1fe4621c64?source=---------0-----------------------" data-action="open-post" data-action-value="https://medium.com/androiddevelopers/compose-layouts-and-modifiers-mad-skills-wrap-up-1fe4621c64?source=---------0-----------------------" data-action-source="preview-listing" ><time datetime="2023-03-22T17:04:24.158Z">Mar 22, 2023</time></a><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="2 min read"></span></div></div></div></div></div><div><a class="" href="https://medium.com/androiddevelopers/compose-layouts-and-modifiers-mad-skills-wrap-up-1fe4621c64?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*rtPw9vMKV31rckXABZqKPA.png" data-width="4209" data-height="1253" data-is-featured="true" src="https://cdn-images-1.medium.com/fit/t/1600/480/1*rtPw9vMKV31rckXABZqKPA.png"></div></figure><h3 name="510a" id="510a" class="graf graf--h3 graf-after--figure graf--trailing graf--title">Compose Layouts and Modifiers: MAD Skills Wrap-Up</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/compose-layouts-and-modifiers-mad-skills-wrap-up-1fe4621c64?source=---------0-----------------------" data-action="open-post" data-action-source="---------0-----------------------" data-action-value="https://medium.com/androiddevelopers/compose-layouts-and-modifiers-mad-skills-wrap-up-1fe4621c64?source=---------0-----------------------" data-post-id="1fe4621c64">Read more…</a></div><div class="u-clearfix u-paddingTop10"><div class="u-floatLeft"><div class="multirecommend js-actionMultirecommend u-flexCenter" data-post-id="1fe4621c64" data-is-flush-left="true" data-source="listing-----1fe4621c64---------------------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/1fe4621c64" data-action-source="listing-----1fe4621c64---------------------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="1fe4621c64">43</button></span></div></div><div class="buttonSet u-floatRight"><a class="button button--chromeless u-baseColor--buttonNormal" href="https://medium.com/androiddevelopers/compose-layouts-and-modifiers-mad-skills-wrap-up-1fe4621c64?source=---------0-----------------------#--responses" data-action-source="---------0-----------------------">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="1fe4621c64"><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="64d794664b66" 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/@anomisSi" data-action="show-user-card" data-action-value="f4d5f1a633bb" data-action-type="hover" data-user-id="f4d5f1a633bb" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/72/72/0*JuDXNZF_XDNLQV_-" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of Simona Milanović"></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/@anomisSi?source=---------1-----------------------" data-action="show-user-card" data-action-source="---------1-----------------------" data-action-value="f4d5f1a633bb" data-action-type="hover" data-user-id="f4d5f1a633bb" dir="auto">Simona Milanović</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/fundamentals-of-compose-layouts-and-modifiers-64d794664b66?source=---------1-----------------------" data-action="open-post" data-action-value="https://medium.com/androiddevelopers/fundamentals-of-compose-layouts-and-modifiers-64d794664b66?source=---------1-----------------------" data-action-source="preview-listing" ><time datetime="2023-02-02T18:02:37.763Z">Feb 2, 2023</time></a><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="15 min read"></span></div></div></div></div></div><div><a class="" href="https://medium.com/androiddevelopers/fundamentals-of-compose-layouts-and-modifiers-64d794664b66?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*rtPw9vMKV31rckXABZqKPA.png" data-width="4209" data-height="1253" data-is-featured="true" src="https://cdn-images-1.medium.com/fit/t/1600/480/1*rtPw9vMKV31rckXABZqKPA.png"></div></figure><h3 name="previewTitle" id="previewTitle" class="graf graf--h3 graf-after--figure graf--title">Fundamentals of Compose layouts and modifiers</h3><h4 name="previewSubtitle" id="previewSubtitle" class="graf graf--h4 graf-after--h3 graf--trailing graf--subtitle">Welcome to the MAD Skills series on Jetpack Compose…</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/fundamentals-of-compose-layouts-and-modifiers-64d794664b66?source=---------1-----------------------" data-action="open-post" data-action-source="---------1-----------------------" data-action-value="https://medium.com/androiddevelopers/fundamentals-of-compose-layouts-and-modifiers-64d794664b66?source=---------1-----------------------" data-post-id="64d794664b66">Read more…</a></div><div class="u-clearfix u-paddingTop10"><div class="u-floatLeft"><div class="multirecommend js-actionMultirecommend u-flexCenter" data-post-id="64d794664b66" data-is-flush-left="true" data-source="listing-----64d794664b66---------------------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/64d794664b66" data-action-source="listing-----64d794664b66---------------------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="64d794664b66">437</button></span></div></div><div class="buttonSet u-floatRight"><a class="button button--chromeless u-baseColor--buttonNormal" href="https://medium.com/androiddevelopers/fundamentals-of-compose-layouts-and-modifiers-64d794664b66?source=---------1-----------------------#--responses" data-action-source="---------1-----------------------">2 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="64d794664b66"><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="42621bd8719b" 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/@arriolachris" data-action="show-user-card" data-action-value="5e0374fd3b15" data-action-type="hover" data-user-id="5e0374fd3b15" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/72/72/1*HQyYcSQaYQyLvIeqfpdjrQ.jpeg" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of Chris Arriola"></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/@arriolachris?source=---------2-----------------------" data-action="show-user-card" data-action-source="---------2-----------------------" data-action-value="5e0374fd3b15" data-action-type="hover" data-user-id="5e0374fd3b15" dir="auto">Chris Arriola</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/compose-tooling-42621bd8719b?source=---------2-----------------------" data-action="open-post" data-action-value="https://medium.com/androiddevelopers/compose-tooling-42621bd8719b?source=---------2-----------------------" data-action-source="preview-listing" ><time datetime="2022-10-07T21:02:38.575Z">Oct 7, 2022</time></a><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="7 min read"></span></div></div></div></div></div><div><a class="" href="https://medium.com/androiddevelopers/compose-tooling-42621bd8719b?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*WVUBQsNgePqQxmrHjaID4g.png" data-width="3249" data-height="968" data-is-featured="true" src="https://cdn-images-1.medium.com/fit/t/1600/480/1*WVUBQsNgePqQxmrHjaID4g.png"></div></figure><h3 name="f7e7" id="f7e7" class="graf graf--h3 graf-after--figure graf--title">Compose Tooling</h3><p name="4888" id="4888" class="graf graf--p graf-after--h3 graf--trailing">Compose allows you to build beautiful UIs quickly. Together with the Android Studio tooling support, you’re able to accelerate the…</p></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/compose-tooling-42621bd8719b?source=---------2-----------------------" data-action="open-post" data-action-source="---------2-----------------------" data-action-value="https://medium.com/androiddevelopers/compose-tooling-42621bd8719b?source=---------2-----------------------" data-post-id="42621bd8719b">Read more…</a></div><div class="u-clearfix u-paddingTop10"><div class="u-floatLeft"><div class="multirecommend js-actionMultirecommend u-flexCenter" data-post-id="42621bd8719b" data-is-flush-left="true" data-source="listing-----42621bd8719b---------------------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/42621bd8719b" data-action-source="listing-----42621bd8719b---------------------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="42621bd8719b">267</button></span></div></div><div class="buttonSet u-floatRight"><a class="button button--chromeless u-baseColor--buttonNormal" href="https://medium.com/androiddevelopers/compose-tooling-42621bd8719b?source=---------2-----------------------#--responses" data-action-source="---------2-----------------------">5 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="42621bd8719b"><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="8d3651228764" 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/@arriolachris" data-action="show-user-card" data-action-value="5e0374fd3b15" data-action-type="hover" data-user-id="5e0374fd3b15" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/72/72/1*HQyYcSQaYQyLvIeqfpdjrQ.jpeg" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of Chris Arriola"></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/@arriolachris?source=---------3-----------------------" data-action="show-user-card" data-action-source="---------3-----------------------" data-action-value="5e0374fd3b15" data-action-type="hover" data-user-id="5e0374fd3b15" dir="auto">Chris Arriola</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/compose-toolkit-8d3651228764?source=---------3-----------------------" data-action="open-post" data-action-value="https://medium.com/androiddevelopers/compose-toolkit-8d3651228764?source=---------3-----------------------" data-action-source="preview-listing" ><time datetime="2022-09-30T16:59:56.513Z">Sep 30, 2022</time></a><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="7 min read"></span></div></div></div></div></div><div><a class="" href="https://medium.com/androiddevelopers/compose-toolkit-8d3651228764?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"><h3 name="e0d7" id="e0d7" class="graf graf--h3 graf--leading graf--title"><em class="markup--em markup--h3-em">Compose Toolkit</em></h3><figure name="e916" id="e916" class="graf graf--figure graf--layoutConstrainedHeightPreview graf-after--h3"><div class="aspectRatioPlaceholder is-locked" style="max-width: 806.1931364724661px; max-height: 240px;"><div class="aspectRatioPlaceholder-fill" style="padding-bottom: 29.799999999999997%;"></div><img class="graf-image" data-image-id="1*3FZeNmAPZDYUCmgL0cBXoA.png" data-width="4209" data-height="1253" src="https://cdn-images-1.medium.com/max/1200/1*3FZeNmAPZDYUCmgL0cBXoA.png"></div></figure><p name="8ba7" id="8ba7" class="graf graf--p graf-after--figure graf--trailing">In the previous MAD Skills Compose Basics <span class="markup--anchor markup--p-anchor" data-action="open-inner-link" data-action-value="https://medium.com/androiddevelopers/composable-functions-a505ab20b523">article</a>, you learned about the building blocks of UI in Compose: composable functions…</p></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/compose-toolkit-8d3651228764?source=---------3-----------------------" data-action="open-post" data-action-source="---------3-----------------------" data-action-value="https://medium.com/androiddevelopers/compose-toolkit-8d3651228764?source=---------3-----------------------" data-post-id="8d3651228764">Read more…</a></div><div class="u-clearfix u-paddingTop10"><div class="u-floatLeft"><div class="multirecommend js-actionMultirecommend u-flexCenter" data-post-id="8d3651228764" data-is-flush-left="true" data-source="listing-----8d3651228764---------------------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/8d3651228764" data-action-source="listing-----8d3651228764---------------------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="8d3651228764">137</button></span></div></div><div class="buttonSet u-floatRight"><a class="button button--chromeless u-baseColor--buttonNormal" href="https://medium.com/androiddevelopers/compose-toolkit-8d3651228764?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="8d3651228764"><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="f84f27a08e5d" 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/@magicalmeghan" data-action="show-user-card" data-action-value="401951cd4c3e" data-action-type="hover" data-user-id="401951cd4c3e" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/72/72/0*eEs786UmP2FQS810" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of Meghan Mehta"></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/@magicalmeghan?source=---------4-----------------------" data-action="show-user-card" data-action-source="---------4-----------------------" data-action-value="401951cd4c3e" data-action-type="hover" data-user-id="401951cd4c3e" dir="auto">Meghan Mehta</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-69-f84f27a08e5d?source=---------4-----------------------" data-action="open-post" data-action-value="https://medium.com/androiddevelopers/now-in-android-69-f84f27a08e5d?source=---------4-----------------------" data-action-source="preview-listing" ><time datetime="2022-09-28T21:32:06.452Z">Sep 28, 2022</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-69-f84f27a08e5d?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*jsgqunQ5DuF5GFAbn3hDwg.png" data-width="1600" data-height="476" data-is-featured="true" src="https://cdn-images-1.medium.com/fit/t/1600/480/1*jsgqunQ5DuF5GFAbn3hDwg.png"></div></figure><h3 name="7465" id="7465" class="graf graf--h3 graf-after--figure graf--title">Now in Android #69</h3><h4 name="bbca" id="bbca" class="graf graf--h4 graf-after--h3 graf--trailing graf--subtitle">Compose Camp, MAD Skills: Compose, Android Studio Dolphin, AndroidX releases…</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-69-f84f27a08e5d?source=---------4-----------------------" data-action="open-post" data-action-source="---------4-----------------------" data-action-value="https://medium.com/androiddevelopers/now-in-android-69-f84f27a08e5d?source=---------4-----------------------" data-post-id="f84f27a08e5d">Read more…</a></div><div class="u-clearfix u-paddingTop10"><div class="u-floatLeft"><div class="multirecommend js-actionMultirecommend u-flexCenter" data-post-id="f84f27a08e5d" data-is-flush-left="true" data-source="listing-----f84f27a08e5d---------------------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/f84f27a08e5d" data-action-source="listing-----f84f27a08e5d---------------------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="f84f27a08e5d">60</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="f84f27a08e5d"><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="a505ab20b523" 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/@arriolachris" data-action="show-user-card" data-action-value="5e0374fd3b15" data-action-type="hover" data-user-id="5e0374fd3b15" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/72/72/1*HQyYcSQaYQyLvIeqfpdjrQ.jpeg" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of Chris Arriola"></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/@arriolachris?source=---------5-----------------------" data-action="show-user-card" data-action-source="---------5-----------------------" data-action-value="5e0374fd3b15" data-action-type="hover" data-user-id="5e0374fd3b15" dir="auto">Chris Arriola</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/composable-functions-a505ab20b523?source=---------5-----------------------" data-action="open-post" data-action-value="https://medium.com/androiddevelopers/composable-functions-a505ab20b523?source=---------5-----------------------" data-action-source="preview-listing" ><time datetime="2022-09-22T15:02:17.929Z">Sep 22, 2022</time></a><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="7 min read"></span></div></div></div></div></div><div><a class="" href="https://medium.com/androiddevelopers/composable-functions-a505ab20b523?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="1*jPVPY4GjPRK3prnJ2o09cQ.png" data-width="700" data-height="208" data-is-featured="true" src="https://cdn-images-1.medium.com/fit/t/1600/480/1*jPVPY4GjPRK3prnJ2o09cQ.png"></div></figure><h3 name="a52f" id="a52f" class="graf graf--h3 graf-after--figure graf--title">Composable Functions</h3><p name="01d9" id="01d9" class="graf graf--p graf-after--h3 graf--trailing">In the previous MAD Skills Compose Basics <span class="markup--anchor markup--p-anchor" data-action="open-inner-link" data-action-value="https://medium.com/androiddevelopers/thinking-in-compose-c4ef150bb7cf">article</a>, you learned how to think in Compose — you describe your UI in Kotlin as…</p></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/composable-functions-a505ab20b523?source=---------5-----------------------" data-action="open-post" data-action-source="---------5-----------------------" data-action-value="https://medium.com/androiddevelopers/composable-functions-a505ab20b523?source=---------5-----------------------" data-post-id="a505ab20b523">Read more…</a></div><div class="u-clearfix u-paddingTop10"><div class="u-floatLeft"><div class="multirecommend js-actionMultirecommend u-flexCenter" data-post-id="a505ab20b523" data-is-flush-left="true" data-source="listing-----a505ab20b523---------------------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/a505ab20b523" data-action-source="listing-----a505ab20b523---------------------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="a505ab20b523">207</button></span></div></div><div class="buttonSet u-floatRight"><a class="button button--chromeless u-baseColor--buttonNormal" href="https://medium.com/androiddevelopers/composable-functions-a505ab20b523?source=---------5-----------------------#--responses" data-action-source="---------5-----------------------">2 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="a505ab20b523"><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="c4ef150bb7cf" 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/@arriolachris" data-action="show-user-card" data-action-value="5e0374fd3b15" data-action-type="hover" data-user-id="5e0374fd3b15" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/72/72/1*HQyYcSQaYQyLvIeqfpdjrQ.jpeg" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of Chris Arriola"></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/@arriolachris?source=---------6-----------------------" data-action="show-user-card" data-action-source="---------6-----------------------" data-action-value="5e0374fd3b15" data-action-type="hover" data-user-id="5e0374fd3b15" dir="auto">Chris Arriola</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/thinking-in-compose-c4ef150bb7cf?source=---------6-----------------------" data-action="open-post" data-action-value="https://medium.com/androiddevelopers/thinking-in-compose-c4ef150bb7cf?source=---------6-----------------------" data-action-source="preview-listing" ><time datetime="2022-09-15T17:02:21.417Z">Sep 15, 2022</time></a><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="7 min read"></span></div></div></div></div></div><div><a class="" href="https://medium.com/androiddevelopers/thinking-in-compose-c4ef150bb7cf?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*Be4McwKM10m3XAPmLEWG3Q.png" data-width="1400" data-height="392" data-is-featured="true" src="https://cdn-images-1.medium.com/fit/t/1600/480/1*Be4McwKM10m3XAPmLEWG3Q.png"></div></figure><h3 name="0a60" id="0a60" class="graf graf--h3 graf-after--figure graf--title">Thinking in Compose</h3><p name="4620" id="4620" class="graf graf--p graf-after--h3 graf--trailing">This post of our Compose Basics series goes into detail on what it means to think in Compose. Because Jetpack Compose is a…</p></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/thinking-in-compose-c4ef150bb7cf?source=---------6-----------------------" data-action="open-post" data-action-source="---------6-----------------------" data-action-value="https://medium.com/androiddevelopers/thinking-in-compose-c4ef150bb7cf?source=---------6-----------------------" data-post-id="c4ef150bb7cf">Read more…</a></div><div class="u-clearfix u-paddingTop10"><div class="u-floatLeft"><div class="multirecommend js-actionMultirecommend u-flexCenter" data-post-id="c4ef150bb7cf" data-is-flush-left="true" data-source="listing-----c4ef150bb7cf---------------------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/c4ef150bb7cf" data-action-source="listing-----c4ef150bb7cf---------------------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="c4ef150bb7cf">243</button></span></div></div><div class="buttonSet u-floatRight"><a class="button button--chromeless u-baseColor--buttonNormal" href="https://medium.com/androiddevelopers/thinking-in-compose-c4ef150bb7cf?source=---------6-----------------------#--responses" data-action-source="---------6-----------------------">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="c4ef150bb7cf"><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="33688abfc51f" 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/@keyboardsurfer" data-action="show-user-card" data-action-value="65fe4f480b1c" data-action-type="hover" data-user-id="65fe4f480b1c" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/72/72/1*1U4KLr4rAKxPq0CrpL3vrQ.jpeg" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of Ben Weiss"></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/@keyboardsurfer?source=---------7-----------------------" data-action="show-user-card" data-action-source="---------7-----------------------" data-action-value="65fe4f480b1c" data-action-type="hover" data-user-id="65fe4f480b1c" dir="auto">Ben Weiss</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/mad-skills-performance-wrap-up-33688abfc51f?source=---------7-----------------------" data-action="open-post" data-action-value="https://medium.com/androiddevelopers/mad-skills-performance-wrap-up-33688abfc51f?source=---------7-----------------------" data-action-source="preview-listing" ><time datetime="2022-09-07T16:07:32.781Z">Sep 7, 2022</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/mad-skills-performance-wrap-up-33688abfc51f?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*qdkZp112bKTGtQIN" data-width="1400" data-height="392" data-is-featured="true" src="https://cdn-images-1.medium.com/fit/t/1600/480/0*qdkZp112bKTGtQIN"></div></figure><h3 name="e702" id="e702" class="graf graf--h3 graf-after--figure graf--title"><em class="markup--em markup--h3-em">MAD Skills Performance — Wrap Up</em></h3><p name="2cbd" id="2cbd" class="graf graf--p graf-after--h3 graf--trailing">In August the MAD Skills video and blog series helping you to get started with Performance. Here’s the…</p></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/mad-skills-performance-wrap-up-33688abfc51f?source=---------7-----------------------" data-action="open-post" data-action-source="---------7-----------------------" data-action-value="https://medium.com/androiddevelopers/mad-skills-performance-wrap-up-33688abfc51f?source=---------7-----------------------" data-post-id="33688abfc51f">Read more…</a></div><div class="u-clearfix u-paddingTop10"><div class="u-floatLeft"><div class="multirecommend js-actionMultirecommend u-flexCenter" data-post-id="33688abfc51f" data-is-flush-left="true" data-source="listing-----33688abfc51f---------------------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/33688abfc51f" data-action-source="listing-----33688abfc51f---------------------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="33688abfc51f">34</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="33688abfc51f"><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="ebf9af4ebe36" 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/@keyboardsurfer" data-action="show-user-card" data-action-value="65fe4f480b1c" data-action-type="hover" data-user-id="65fe4f480b1c" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/72/72/1*1U4KLr4rAKxPq0CrpL3vrQ.jpeg" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of Ben Weiss"></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/@keyboardsurfer?source=---------8-----------------------" data-action="show-user-card" data-action-source="---------8-----------------------" data-action-value="65fe4f480b1c" data-action-type="hover" data-user-id="65fe4f480b1c" dir="auto">Ben Weiss</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/monitoring-app-performance-ebf9af4ebe36?source=---------8-----------------------" data-action="open-post" data-action-value="https://medium.com/androiddevelopers/monitoring-app-performance-ebf9af4ebe36?source=---------8-----------------------" data-action-source="preview-listing" ><time datetime="2022-08-29T20:27:26.866Z">Aug 29, 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/monitoring-app-performance-ebf9af4ebe36?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="0*GW7g7T1qx_Adm2D-" data-width="1400" data-height="392" data-is-featured="true" src="https://cdn-images-1.medium.com/fit/t/1600/480/0*GW7g7T1qx_Adm2D-"></div></figure><h3 name="1ac6" id="1ac6" class="graf graf--h3 graf-after--figure graf--title">Monitoring App Performance</h3><p name="7c2d" id="7c2d" class="graf graf--p graf-after--h3 graf--trailing">In this MAD Skills article on monitoring performance I’m guiding you through best practices and provide guidance…</p></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/monitoring-app-performance-ebf9af4ebe36?source=---------8-----------------------" data-action="open-post" data-action-source="---------8-----------------------" data-action-value="https://medium.com/androiddevelopers/monitoring-app-performance-ebf9af4ebe36?source=---------8-----------------------" data-post-id="ebf9af4ebe36">Read more…</a></div><div class="u-clearfix u-paddingTop10"><div class="u-floatLeft"><div class="multirecommend js-actionMultirecommend u-flexCenter" data-post-id="ebf9af4ebe36" data-is-flush-left="true" data-source="listing-----ebf9af4ebe36---------------------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/ebf9af4ebe36" data-action-source="listing-----ebf9af4ebe36---------------------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="ebf9af4ebe36">154</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="ebf9af4ebe36"><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="fdd0db0d8cc6" 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/@keyboardsurfer" data-action="show-user-card" data-action-value="65fe4f480b1c" data-action-type="hover" data-user-id="65fe4f480b1c" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/72/72/1*1U4KLr4rAKxPq0CrpL3vrQ.jpeg" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of Ben Weiss"></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/@keyboardsurfer?source=---------9-----------------------" data-action="show-user-card" data-action-source="---------9-----------------------" data-action-value="65fe4f480b1c" data-action-type="hover" data-user-id="65fe4f480b1c" dir="auto">Ben Weiss</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/improving-performance-with-baseline-profiles-fdd0db0d8cc6?source=---------9-----------------------" data-action="open-post" data-action-value="https://medium.com/androiddevelopers/improving-performance-with-baseline-profiles-fdd0db0d8cc6?source=---------9-----------------------" data-action-source="preview-listing" ><time datetime="2022-08-23T18:02:21.289Z">Aug 23, 2022</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/improving-performance-with-baseline-profiles-fdd0db0d8cc6?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="0*WJ5hJ_W4pfZSpnQP" data-width="1400" data-height="392" data-is-featured="true" src="https://cdn-images-1.medium.com/fit/t/1600/480/0*WJ5hJ_W4pfZSpnQP"></div></figure><h3 name="9440" id="9440" class="graf graf--h3 graf-after--figure graf--title">Improving Performance with Baseline Profiles</h3><p name="97ff" id="97ff" class="graf graf--p graf-after--h3 graf--trailing">A quick rundown of Baseline Profiles</p></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/improving-performance-with-baseline-profiles-fdd0db0d8cc6?source=---------9-----------------------" data-action="open-post" data-action-source="---------9-----------------------" data-action-value="https://medium.com/androiddevelopers/improving-performance-with-baseline-profiles-fdd0db0d8cc6?source=---------9-----------------------" data-post-id="fdd0db0d8cc6">Read more…</a></div><div class="u-clearfix u-paddingTop10"><div class="u-floatLeft"><div class="multirecommend js-actionMultirecommend u-flexCenter" data-post-id="fdd0db0d8cc6" data-is-flush-left="true" data-source="listing-----fdd0db0d8cc6---------------------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/fdd0db0d8cc6" data-action-source="listing-----fdd0db0d8cc6---------------------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="fdd0db0d8cc6">82</button></span></div></div><div class="buttonSet u-floatRight"><a class="button button--chromeless u-baseColor--buttonNormal" href="https://medium.com/androiddevelopers/improving-performance-with-baseline-profiles-fdd0db0d8cc6?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="fdd0db0d8cc6"><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_35e9c2467f58","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":"1732392647248:54e49e4053f5","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":"control","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_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":51948,"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":51948,"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":{"f4d5f1a633bb":{"userId":"f4d5f1a633bb","name":"Simona Milanović","username":"anomisSi","createdAt":1642429612637,"imageId":"0*JuDXNZF_XDNLQV_-","backgroundImageId":"","bio":"Android Developer Relations Engineer @Google, working on Jetpack Compose","twitterScreenName":"","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"facebookDisplayName":"","optInToIceland":true,"hasCompletedProfile":false,"userDismissableFlags":[29,12,2,18,33],"hasSeenIcelandOnboarding":false,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-gb","type":"User"},"5e0374fd3b15":{"userId":"5e0374fd3b15","name":"Chris Arriola","username":"arriolachris","createdAt":1395783668060,"imageId":"1*HQyYcSQaYQyLvIeqfpdjrQ.jpeg","backgroundImageId":"","bio":"Android Engineer at Instagram Previously: Android Developer Relations Engineer at Google","twitterScreenName":"arriolachris","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":false,"facebookDisplayName":"","optInToIceland":true,"subdomainCreatedAt":1612274125336,"hasCompletedProfile":false,"userDismissableFlags":[32,29,12,8,21,3,2,1,33],"hasSeenIcelandOnboarding":true,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"401951cd4c3e":{"userId":"401951cd4c3e","name":"Meghan Mehta","username":"magicalmeghan","createdAt":1586542020285,"imageId":"0*eEs786UmP2FQS810","backgroundImageId":"","bio":"","twitterScreenName":"","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"facebookDisplayName":"","optInToIceland":true,"hasCompletedProfile":false,"userDismissableFlags":[12,2,18,1,33],"hasSeenIcelandOnboarding":false,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"65fe4f480b1c":{"userId":"65fe4f480b1c","name":"Ben Weiss","username":"keyboardsurfer","createdAt":1417104787712,"imageId":"1*1U4KLr4rAKxPq0CrpL3vrQ.jpeg","backgroundImageId":"","bio":"#Android Developer Relations @ Google","twitterScreenName":"keyboardsurfer","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"facebookDisplayName":"","optInToIceland":true,"hasCompletedProfile":false,"userDismissableFlags":[32,48,29,12,8,50,5,21,30,3,2,33],"hasSeenIcelandOnboarding":true,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-de","type":"User"}},"Post":{"1fe4621c64":{"id":"1fe4621c64","versionId":"e22f01c87ee0","creatorId":"f4d5f1a633bb","homeCollectionId":"95b274b437c2","title":"Compose Layouts and Modifiers: MAD Skills Wrap-Up","detectedLanguage":"en","latestVersion":"e22f01c87ee0","latestPublishedVersion":"e22f01c87ee0","hasUnpublishedEdits":false,"latestRev":42,"createdAt":1679321072702,"updatedAt":1679871052396,"acceptedAt":0,"firstPublishedAt":1679504664158,"latestPublishedAt":1679504664158,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"🎬 And with this, we conclude our MAD skills series on Compose Layouts and Modifiers! Here’s a wrap up of all the episodes.","postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"1*rtPw9vMKV31rckXABZqKPA.png","filter":"","backgroundSize":"","originalWidth":4209,"originalHeight":1253,"strategy":"resample","height":0,"width":0},"wordCount":456,"imageCount":1,"readingTime":1.920754716981132,"subtitle":"🎬 And with this, we conclude our MAD skills series on Compose Layouts and Modifiers! Here’s a wrap up of all the episodes.","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":17,"isBookmarked":false,"tags":[{"slug":"advanced-layout-concepts","name":"Advanced Layout Concepts","postCount":0,"metadata":{"postCount":0,"coverImage":{"id":"1*rtPw9vMKV31rckXABZqKPA.png","originalWidth":4209,"originalHeight":1253,"isFeatured":true}},"type":"Tag"},{"slug":"constraints","name":"Constraints","postCount":645,"metadata":{"postCount":645,"coverImage":{"id":"1*Egoie62CHF7xJKuW_DzjIg.jpeg","originalWidth":1200,"originalHeight":675,"isFeatured":true}},"type":"Tag"},{"slug":"compose-phases","name":"Compose Phases","postCount":1,"metadata":{"postCount":1,"coverImage":{"id":"1*rtPw9vMKV31rckXABZqKPA.png","originalWidth":4209,"originalHeight":1253,"isFeatured":true}},"type":"Tag"},{"slug":"compose-layout","name":"Compose Layout","postCount":9,"metadata":{"postCount":9,"coverImage":{"id":"1*Gyb0Wsj4uxPlRXH7j2_b7g.png","originalWidth":300,"originalHeight":650,"isFeatured":true}},"type":"Tag"},{"slug":"mad-skills","name":"Mad Skills","postCount":61,"metadata":{"postCount":61,"coverImage":{"id":"1*JqnM6TZ0eDcv--YJ_7ZPCQ.png","originalWidth":750,"originalHeight":320,"isFeatured":true}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":1,"links":{"entries":[{"url":"https://medium.com/androiddevelopers/advanced-layout-concepts-eb08cf2a3c8","alts":[{"type":3,"url":"medium://p/eb08cf2a3c8"},{"type":2,"url":"medium://p/eb08cf2a3c8"}],"httpStatus":200},{"url":"https://medium.com/androiddevelopers/constraints-and-modifier-order-a3912461ecd6","alts":[{"type":3,"url":"medium://p/a3912461ecd6"},{"type":2,"url":"medium://p/a3912461ecd6"}],"httpStatus":200},{"url":"https://medium.com/androiddevelopers/fundamentals-of-compose-layouts-and-modifiers-64d794664b66","alts":[{"type":3,"url":"medium://p/64d794664b66"},{"type":2,"url":"medium://p/64d794664b66"}],"httpStatus":200},{"url":"https://medium.com/androiddevelopers/compose-phases-7fe6630ea037","alts":[{"type":3,"url":"medium://p/7fe6630ea037"},{"type":2,"url":"medium://p/7fe6630ea037"}],"httpStatus":200},{"url":"https://www.youtube.com/playlist?list=PLWz5rJ2EKKc94tpHND8pW8Qt8ZfT1a4cq","alts":[],"httpStatus":200},{"url":"https://twitter.com/anomisSi","alts":[],"httpStatus":200},{"url":"https://twitter.com/Lojanda","alts":[],"httpStatus":200},{"url":"https://twitter.com/manuelpereram","alts":[],"httpStatus":200},{"url":"https://twitter.com/arriolachris","alts":[],"httpStatus":200},{"url":"https://twitter.com/shikasd_","alts":[],"httpStatus":200}],"version":"0.3","generatedAt":1679504664465},"isLockedPreviewOnly":false,"metaDescription":"","totalClapCount":43,"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"},{"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":"compose-layouts-and-modifiers-mad-skills-wrap-up","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":false,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":0,"uniqueSlug":"compose-layouts-and-modifiers-mad-skills-wrap-up-1fe4621c64","previewContent":{"bodyModel":{"paragraphs":[{"name":"previewImage","type":4,"text":"","layout":10,"metadata":{"id":"1*rtPw9vMKV31rckXABZqKPA.png","originalWidth":4209,"originalHeight":1253,"isFeatured":true}},{"name":"510a","type":3,"text":"Compose Layouts and Modifiers: MAD Skills Wrap-Up","markups":[],"alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":"🎬 And with this, we conclude our MAD skills series on Compose Layouts and Modifiers! Here’s a wrap up of all the episodes."},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"95b274b437c2","isNewsletter":false,"newsletterId":"9f8603dda2bf","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,"primaryTopicId":"64756708407c","isProxyPost":false,"proxyPostFaviconUrl":"","proxyPostProviderName":"","proxyPostType":0,"isSuspended":false,"isLimitedState":false,"seoTitle":"","previewContent2":{"bodyModel":{"paragraphs":[{"name":"510a","type":3,"text":"Compose Layouts and Modifiers: MAD Skills Wrap-Up","markups":[]},{"name":"2766","type":4,"text":"","markups":[],"layout":1,"metadata":{"id":"1*rtPw9vMKV31rckXABZqKPA.png","originalWidth":4209,"originalHeight":1253,"isFeatured":true}},{"name":"2745","type":1,"text":"🎬 And with this, we conclude our MAD skills series on Compose Layouts and Modifiers! We’ve covered a lot in these episodes — from the very basics of layouts and modifiers, simple and powerful out-of-the-box layouts, Compose phases, to advanced concepts such as modifier chaining order and subcomposition. We also…","markups":[{"type":3,"start":55,"end":84,"href":"https://www.youtube.com/playlist?list=PLWz5rJ2EKKc94tpHND8pW8Qt8ZfT1a4cq","title":"","rel":"noopener","anchorType":0}]}],"sections":[{"name":"4e2a","startIndex":0}]},"isFullContent":false,"subtitle":"🎬 And with this, we conclude our MAD skills series on Compose Layouts and Modifiers! Here’s a wrap up of all the episodes."},"cardType":0,"isDistributionAlertDismissed":false,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":true,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"},"64d794664b66":{"id":"64d794664b66","versionId":"96b126ae75a6","creatorId":"f4d5f1a633bb","homeCollectionId":"95b274b437c2","title":"Fundamentals of Compose layouts and modifiers","detectedLanguage":"en","latestVersion":"96b126ae75a6","latestPublishedVersion":"96b126ae75a6","hasUnpublishedEdits":false,"latestRev":1698,"createdAt":1675179832440,"updatedAt":1679321002056,"acceptedAt":0,"firstPublishedAt":1675360957763,"latestPublishedAt":1679321002056,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"Welcome to the MAD Skills series on Jetpack Compose layouts and modifiers!","postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"1*rtPw9vMKV31rckXABZqKPA.png","filter":"","backgroundSize":"","originalWidth":4209,"originalHeight":1253,"strategy":"resample","height":0,"width":0},"wordCount":3229,"imageCount":28,"readingTime":14.334905660377359,"subtitle":"Welcome to the MAD Skills series on Jetpack Compose layouts and modifiers!","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":80,"isBookmarked":false,"tags":[{"slug":"mad-skills","name":"Mad Skills","postCount":61,"metadata":{"postCount":61,"coverImage":{"id":"1*JqnM6TZ0eDcv--YJ_7ZPCQ.png","originalWidth":750,"originalHeight":320,"isFeatured":true}},"type":"Tag"},{"slug":"jetpack-compose","name":"Jetpack Compose","postCount":6014,"metadata":{"postCount":6014,"coverImage":{"id":"1*9eWfzmkKPmiQFMdnt1zusQ.png","originalWidth":1500,"originalHeight":1000,"isFeatured":true}},"type":"Tag"},{"slug":"ui-design","name":"UI Design","postCount":45195,"metadata":{"postCount":45195,"coverImage":{"id":"1*imNc4tVap8WX-lHcWPkYsw.png","originalWidth":1200,"originalHeight":675,"isFeatured":true}},"type":"Tag"},{"slug":"codelab","name":"Codelab","postCount":79,"metadata":{"postCount":79,"coverImage":{"id":"1*rtPw9vMKV31rckXABZqKPA.png","originalWidth":4209,"originalHeight":1253,"isFeatured":true}},"type":"Tag"},{"slug":"tutorial","name":"Tutorial","postCount":118561,"metadata":{"postCount":118561,"coverImage":{"id":"0*_LuTYPayJUEeOuxZ","originalWidth":3543,"originalHeight":2365,"unsplashPhotoId":"OqtafYT5kTw"}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":2,"links":{"entries":[{"url":"https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/ColumnScope","alts":[],"httpStatus":200},{"url":"https://developer.android.com/jetpack/compose/layouts/material","alts":[],"httpStatus":200},{"url":"https://developer.android.com/reference/kotlin/androidx/compose/material3/package-summary","alts":[],"httpStatus":200},{"url":"https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier","alts":[],"httpStatus":200},{"url":"https://m3.material.io/","alts":[],"httpStatus":200},{"url":"https://developer.android.com/jetpack/compose/modifiers-list#Keyboard","alts":[],"httpStatus":200},{"url":"https://developer.android.com/jetpack/androidx/releases/compose-material3","alts":[],"httpStatus":200},{"url":"https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/package-summary#Column(androidx.compose.ui.Modifier,androidx.compose.foundation.layout.Arrangement.Vertical,androidx.compose.ui.Alignment.Horizontal,kotlin.Function1)","alts":[],"httpStatus":200},{"url":"https://developer.android.com/jetpack/compose/layouts/material#content-slots","alts":[],"httpStatus":200},{"url":"https://medium.com/androiddevelopers/constraints-and-modifier-order-a3912461ecd6","alts":[{"type":3,"url":"medium://p/a3912461ecd6"},{"type":2,"url":"medium://p/a3912461ecd6"}],"httpStatus":200},{"url":"https://developer.android.com/jetpack/compose/layouts/basics#slot-based-layouts","alts":[],"httpStatus":200},{"url":"https://www.youtube.com/watch?v=kyH01Lg4G1E","alts":[{"type":2,"url":"vnd.youtube://www.youtube.com/watch?v=kyH01Lg4G1E&feature=applinks"},{"type":3,"url":"vnd.youtube://www.youtube.com/watch?v=kyH01Lg4G1E&feature=applinks"}],"httpStatus":200},{"url":"https://developer.android.com/jetpack/compose/lists#lazy","alts":[],"httpStatus":200},{"url":"https://goo.gle/compose-api-guidelines","alts":[],"httpStatus":200},{"url":"https://www.youtube.com/playlist?list=PLWz5rJ2EKKc94tpHND8pW8Qt8ZfT1a4cq","alts":[],"httpStatus":200},{"url":"https://developer.android.com/reference/kotlin/androidx/compose/material3/package-summary#Button(kotlin.Function0,androidx.compose.ui.Modifier,kotlin.Boolean,androidx.compose.ui.graphics.Shape,androidx.compose.material3.ButtonColors,androidx.compose.material3.ButtonElevation,androidx.compose.foundation.BorderStroke,androidx.compose.foundation.layout.PaddingValues,androidx.compose.foundation.interaction.MutableInteractionSource,kotlin.Function1)","alts":[],"httpStatus":200},{"url":"https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/RowScope#(androidx.compose.ui.Modifier).weight(kotlin.Float,kotlin.Boolean)","alts":[],"httpStatus":200},{"url":"https://medium.com/androiddevelopers/advanced-layout-concepts-eb08cf2a3c8","alts":[{"type":3,"url":"medium://p/eb08cf2a3c8"},{"type":2,"url":"medium://p/eb08cf2a3c8"}],"httpStatus":200},{"url":"https://medium.com/androiddevelopers/compose-phases-7fe6630ea037","alts":[{"type":3,"url":"medium://p/7fe6630ea037"},{"type":2,"url":"medium://p/7fe6630ea037"}],"httpStatus":200},{"url":"https://developer.android.com/jetpack/compose/modifiers-list#Layout","alts":[],"httpStatus":200},{"url":"https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier#(androidx.compose.ui.Modifier).fillMaxSize(kotlin.Float)","alts":[],"httpStatus":200},{"url":"https://medium.com/androiddevelopers/fundamentals-of-compose-layouts-and-modifiers-64d794664b66","alts":[{"type":3,"url":"medium://p/64d794664b66"},{"type":2,"url":"medium://p/64d794664b66"}],"httpStatus":200},{"url":"https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/RowScope#(androidx.compose.ui.Modifier).align(androidx.compose.ui.Alignment.Vertical)","alts":[],"httpStatus":200},{"url":"https://medium.com/androiddevelopers/thinking-in-compose-c4ef150bb7cf","alts":[{"type":3,"url":"medium://p/c4ef150bb7cf"},{"type":2,"url":"medium://p/c4ef150bb7cf"}],"httpStatus":200},{"url":"https://developer.android.com/reference/kotlin/androidx/compose/ui/Alignment","alts":[],"httpStatus":200},{"url":"https://developer.android.com/reference/kotlin/androidx/compose/material3/package-summary#scaffold","alts":[],"httpStatus":200},{"url":"https://developer.android.com/reference/kotlin/androidx/compose/foundation/lazy/grid/package-summary#LazyHorizontalGrid(androidx.compose.foundation.lazy.grid.GridCells,androidx.compose.ui.Modifier,androidx.compose.foundation.lazy.grid.LazyGridState,androidx.compose.foundation.layout.PaddingValues,kotlin.Boolean,androidx.compose.foundation.layout.Arrangement.Horizontal,androidx.compose.foundation.layout.Arrangement.Vertical,androidx.compose.foundation.gestures.FlingBehavior,kotlin.Boolean,kotlin.Function1)","alts":[],"httpStatus":200},{"url":"https://developer.android.com/codelabs/jetpack-compose-layouts#0","alts":[],"httpStatus":200},{"url":"https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/RowScope","alts":[],"httpStatus":200},{"url":"https://developer.android.com/reference/kotlin/androidx/compose/foundation/lazy/package-summary#LazyRow(androidx.compose.ui.Modifier,androidx.compose.foundation.lazy.LazyListState,androidx.compose.foundation.layout.PaddingValues,kotlin.Boolean,androidx.compose.foundation.layout.Arrangement.Horizontal,androidx.compose.ui.Alignment.Vertical,androidx.compose.foundation.gestures.FlingBehavior,kotlin.Boolean,kotlin.Function1)","alts":[],"httpStatus":200},{"url":"https://developer.android.com/reference/kotlin/androidx/compose/foundation/lazy/grid/package-summary#LazyVerticalGrid(androidx.compose.foundation.lazy.grid.GridCells,androidx.compose.ui.Modifier,androidx.compose.foundation.lazy.grid.LazyGridState,androidx.compose.foundation.layout.PaddingValues,kotlin.Boolean,androidx.compose.foundation.layout.Arrangement.Vertical,androidx.compose.foundation.layout.Arrangement.Horizontal,androidx.compose.foundation.gestures.FlingBehavior,kotlin.Boolean,kotlin.Function1)","alts":[],"httpStatus":200},{"url":"https://developer.android.com/jetpack/compose/modifiers-list#Padding","alts":[],"httpStatus":200},{"url":"https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/package-summary#Box(androidx.compose.ui.Modifier,androidx.compose.ui.Alignment,kotlin.Boolean,kotlin.Function1)","alts":[],"httpStatus":200},{"url":"https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/BoxScope#(androidx.compose.ui.Modifier).matchParentSize()","alts":[],"httpStatus":200},{"url":"https://developer.android.com/reference/kotlin/androidx/compose/foundation/lazy/staggeredgrid/package-summary#LazyHorizontalStaggeredGrid(androidx.compose.foundation.lazy.staggeredgrid.StaggeredGridCells,androidx.compose.ui.Modifier,androidx.compose.foundation.lazy.staggeredgrid.LazyStaggeredGridState,androidx.compose.foundation.layout.PaddingValues,androidx.compose.foundation.layout.Arrangement.Vertical,androidx.compose.foundation.layout.Arrangement.Horizontal,androidx.compose.foundation.gestures.FlingBehavior,kotlin.Boolean,kotlin.Function1)","alts":[],"httpStatus":200},{"url":"https://developer.android.com/jetpack/compose/modifiers#scope-safety","alts":[],"httpStatus":200},{"url":"https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/Arrangement","alts":[],"httpStatus":200},{"url":"https://developer.android.com/jetpack/compose/modifiers-list#Size","alts":[],"httpStatus":200},{"url":"https://developer.android.com/jetpack/compose/modifiers-list#Semantics","alts":[],"httpStatus":200},{"url":"https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/BoxScope","alts":[],"httpStatus":200},{"url":"https://developer.android.com/jetpack/compose/modifiers#padding-and-size","alts":[],"httpStatus":200},{"url":"https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/package-summary#Row(androidx.compose.ui.Modifier,androidx.compose.foundation.layout.Arrangement.Horizontal,androidx.compose.ui.Alignment.Vertical,kotlin.Function1)","alts":[],"httpStatus":200},{"url":"https://developer.android.com/reference/kotlin/androidx/compose/foundation/lazy/package-summary#LazyColumn(androidx.compose.ui.Modifier,androidx.compose.foundation.lazy.LazyListState,androidx.compose.foundation.layout.PaddingValues,kotlin.Boolean,androidx.compose.foundation.layout.Arrangement.Vertical,androidx.compose.ui.Alignment.Horizontal,androidx.compose.foundation.gestures.FlingBehavior,kotlin.Boolean,kotlin.Function1)","alts":[],"httpStatus":200},{"url":"https://www.youtube.com/watch?v=1ANt65eoNhQ","alts":[{"type":2,"url":"vnd.youtube://www.youtube.com/watch?v=1ANt65eoNhQ&feature=applinks"},{"type":3,"url":"vnd.youtube://www.youtube.com/watch?v=1ANt65eoNhQ&feature=applinks"}],"httpStatus":200},{"url":"https://developer.android.com/reference/kotlin/androidx/compose/foundation/lazy/staggeredgrid/package-summary#LazyVerticalStaggeredGrid(androidx.compose.foundation.lazy.staggeredgrid.StaggeredGridCells,androidx.compose.ui.Modifier,androidx.compose.foundation.lazy.staggeredgrid.LazyStaggeredGridState,androidx.compose.foundation.layout.PaddingValues,androidx.compose.foundation.layout.Arrangement.Vertical,androidx.compose.foundation.layout.Arrangement.Horizontal,androidx.compose.foundation.gestures.FlingBehavior,kotlin.Boolean,kotlin.Function1)","alts":[],"httpStatus":200},{"url":"https://developer.android.com/jetpack/compose/modifiers-list#Actions","alts":[],"httpStatus":200}],"version":"0.3","generatedAt":1679321002359},"isLockedPreviewOnly":false,"metaDescription":"","totalClapCount":437,"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":"fundamentals-of-compose-layouts-and-modifiers","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":false,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":0,"uniqueSlug":"fundamentals-of-compose-layouts-and-modifiers-64d794664b66","previewContent":{"bodyModel":{"paragraphs":[{"name":"previewImage","type":4,"text":"","layout":10,"metadata":{"id":"1*rtPw9vMKV31rckXABZqKPA.png","originalWidth":4209,"originalHeight":1253,"isFeatured":true}},{"name":"previewTitle","type":3,"text":"Fundamentals of Compose layouts and modifiers","alignment":1},{"name":"previewSubtitle","type":13,"text":"Welcome to the MAD Skills series on Jetpack Compose…","alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":"Welcome to the MAD Skills series on Jetpack Compose layouts and modifiers!"},"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":"7485","type":3,"text":"Fundamentals of Compose layouts and modifiers","markups":[]},{"name":"e81c","type":13,"text":"Episode 1 of MAD Skills: Compose Layouts and Modifiers","markups":[{"type":3,"start":13,"end":54,"href":"https://www.youtube.com/playlist?list=PLWz5rJ2EKKc94tpHND8pW8Qt8ZfT1a4cq","title":"","rel":"noopener ugc nofollow","anchorType":0}]},{"name":"77ae","type":4,"text":"","markups":[],"layout":1,"metadata":{"id":"1*rtPw9vMKV31rckXABZqKPA.png","originalWidth":4209,"originalHeight":1253,"isFeatured":true}},{"name":"f16e","type":1,"text":"Welcome to the MAD Skills series on Jetpack Compose layouts and modifiers! In this first post, we’re going to start our journey by explaining the fundamentals of layouts and modifiers. We’ll go over how they work together, what out-of-the-box APIs Compose offers, and how to beautifully style your UI —…","markups":[{"type":1,"start":15,"end":73},{"type":1,"start":146,"end":183},{"type":1,"start":369,"end":383}]}],"sections":[{"name":"f3e6","startIndex":0}]},"isFullContent":false,"subtitle":"Welcome to the MAD Skills series on Jetpack Compose layouts and modifiers!"},"cardType":0,"isDistributionAlertDismissed":false,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":false,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"},"42621bd8719b":{"id":"42621bd8719b","versionId":"134d860f440b","creatorId":"5e0374fd3b15","homeCollectionId":"95b274b437c2","title":"Compose Tooling","detectedLanguage":"en","latestVersion":"134d860f440b","latestPublishedVersion":"134d860f440b","hasUnpublishedEdits":false,"latestRev":403,"createdAt":1664836511823,"updatedAt":1676333763096,"acceptedAt":0,"firstPublishedAt":1665176558575,"latestPublishedAt":1665176558575,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"Compose allows you to build beautiful UIs quickly. Together with the Android Studio tooling support, you’re able to accelerate the…","postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"1*WVUBQsNgePqQxmrHjaID4g.png","filter":"","backgroundSize":"","originalWidth":3249,"originalHeight":968,"strategy":"resample","height":0,"width":0},"wordCount":1203,"imageCount":16,"readingTime":6.089622641509433,"subtitle":"Compose allows you to build beautiful UIs quickly. Together with the Android Studio tooling support, you’re able to accelerate the…","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":72,"isBookmarked":false,"tags":[{"slug":"android-studio","name":"Android Studio","postCount":3618,"metadata":{"postCount":3618,"coverImage":{"id":"1*bPrF2ZemLaRrMYCmvLmWMQ.png","originalWidth":2560,"originalHeight":1280,"isFeatured":true}},"type":"Tag"},{"slug":"live-templates","name":"Live Templates","postCount":50,"metadata":{"postCount":50,"coverImage":{"id":"1*fXIzb_8pRI_bDDJ7YCI_qQ.png","originalWidth":1600,"originalHeight":476,"backgroundSize":"","filter":"","isFeatured":false,"externalSrc":"","focusPercentX":-1,"focusPercentY":-1,"alt":"","repairedAt":0,"unsplashPhotoId":""}},"type":"Tag"},{"slug":"preview","name":"Preview","postCount":2862,"metadata":{"postCount":2862,"coverImage":{"id":"1*if3XZe8gAvV_8jnWonlK5g.jpeg","originalWidth":1600,"originalHeight":1668,"isFeatured":true}},"type":"Tag"},{"slug":"mad-skills","name":"Mad Skills","postCount":61,"metadata":{"postCount":61,"coverImage":{"id":"1*JqnM6TZ0eDcv--YJ_7ZPCQ.png","originalWidth":750,"originalHeight":320,"isFeatured":true}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":5,"links":{"entries":[{"url":"https://developer.android.com/jetpack/compose/tooling#gutter-icons","alts":[],"httpStatus":200},{"url":"https://developer.android.com/jetpack/compose/tooling#live-edit-literals","alts":[],"httpStatus":200},{"url":"http://goo.gle/compose-samples","alts":[],"httpStatus":200},{"url":"https://developer.android.com/jetpack/compose/tooling#preview-multipreview","alts":[],"httpStatus":200},{"url":"https://developer.android.com/jetpack/compose/tooling#preview","alts":[],"httpStatus":200},{"url":"https://medium.com/p/8d3651228764","alts":[{"type":2,"url":"medium://p/8d3651228764"},{"type":3,"url":"medium://p/8d3651228764"}],"httpStatus":200},{"url":"https://developer.android.com/jetpack/compose/tooling#layout-inspector","alts":[],"httpStatus":200},{"url":"https://developer.android.com/jetpack/compose/tooling#live-templates","alts":[],"httpStatus":200},{"url":"http://goo.gle/compose-live-edit-docs","alts":[],"httpStatus":200}],"version":"0.3","generatedAt":1665176559713},"isLockedPreviewOnly":false,"metaDescription":"","totalClapCount":267,"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":"compose-tooling","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":false,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":0,"uniqueSlug":"compose-tooling-42621bd8719b","previewContent":{"bodyModel":{"paragraphs":[{"name":"previewImage","type":4,"text":"","layout":10,"metadata":{"id":"1*WVUBQsNgePqQxmrHjaID4g.png","originalWidth":3249,"originalHeight":968,"isFeatured":true}},{"name":"f7e7","type":3,"text":"Compose Tooling","markups":[],"alignment":1},{"name":"4888","type":1,"text":"Compose allows you to build beautiful UIs quickly. Together with the Android Studio tooling support, you’re able to accelerate the…","markups":[],"alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":"Compose allows you to build beautiful UIs quickly. Together with the Android Studio tooling support, you’re able to accelerate the…"},"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":"383c","type":4,"text":"","markups":[],"layout":1,"metadata":{"id":"1*WVUBQsNgePqQxmrHjaID4g.png","originalWidth":3249,"originalHeight":968,"isFeatured":true}},{"name":"f7e7","type":3,"text":"Compose Tooling","markups":[]},{"name":"4888","type":1,"text":"Compose allows you to build beautiful UIs quickly. Together with the Android Studio tooling support, you’re able to accelerate the development process even further with faster iteration and better debugging.","markups":[]},{"name":"a0cb","type":1,"text":"So far we’ve looked at how to implement a single answer option in Jetsurvey, one of our Compose samples (previous…","markups":[{"type":3,"start":88,"end":103,"href":"http://goo.gle/compose-samples","title":"","rel":"","anchorType":0},{"type":3,"start":105,"end":121,"href":"https://medium.com/p/8d3651228764","title":"","rel":"","anchorType":0}]}],"sections":[{"name":"9836","startIndex":0}]},"isFullContent":false,"subtitle":"Compose allows you to build beautiful UIs quickly. Together with the Android Studio tooling support, you’re able to accelerate the…"},"cardType":0,"isDistributionAlertDismissed":false,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":false,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"},"8d3651228764":{"id":"8d3651228764","versionId":"d1e0656bbc4d","creatorId":"5e0374fd3b15","homeCollectionId":"95b274b437c2","title":"Compose Toolkit","detectedLanguage":"en","latestVersion":"d1e0656bbc4d","latestPublishedVersion":"d1e0656bbc4d","hasUnpublishedEdits":false,"latestRev":493,"createdAt":1664216271196,"updatedAt":1680036080182,"acceptedAt":0,"firstPublishedAt":1664557196513,"latestPublishedAt":1664557238544,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"In the previous MAD Skills Compose Basics article, you learned about the building blocks of UI in Compose: composable functions. Now, it’s…","postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"1*3FZeNmAPZDYUCmgL0cBXoA.png","filter":"","backgroundSize":"","originalWidth":4209,"originalHeight":1253,"strategy":"resample","height":0,"width":0},"wordCount":1474,"imageCount":13,"readingTime":6.962264150943396,"subtitle":"In the previous MAD Skills Compose Basics article, you learned about the building blocks of UI in Compose: composable functions. Now, it’s…","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":25,"isBookmarked":false,"tags":[{"slug":"compose","name":"Compose","postCount":1017,"metadata":{"postCount":1017,"coverImage":{"id":"0*D93jriU2RFT12oYQ.jpeg","originalWidth":1400,"originalHeight":933,"isFeatured":true}},"type":"Tag"},{"slug":"mad-skills","name":"Mad Skills","postCount":61,"metadata":{"postCount":61,"coverImage":{"id":"1*JqnM6TZ0eDcv--YJ_7ZPCQ.png","originalWidth":750,"originalHeight":320,"isFeatured":true}},"type":"Tag"},{"slug":"material-design","name":"Material Design","postCount":3655,"metadata":{"postCount":3655,"coverImage":{"id":"0*q8nas2vTjvDBXXRj.png","originalWidth":1400,"originalHeight":788}},"type":"Tag"},{"slug":"scaffold","name":"Scaffold","postCount":157,"metadata":{"postCount":157,"coverImage":{"id":"1*1-NStebnsIqfJG3bCc8Q7g.png","originalWidth":792,"originalHeight":747,"isFeatured":true}},"type":"Tag"},{"slug":"ui-design","name":"UI Design","postCount":45195,"metadata":{"postCount":45195,"coverImage":{"id":"1*imNc4tVap8WX-lHcWPkYsw.png","originalWidth":1200,"originalHeight":675,"isFeatured":true}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":1,"links":{"entries":[{"url":"http://goo","alts":[],"httpStatus":0},{"url":"https://m3.material.io/","alts":[],"httpStatus":200},{"url":"https://m3.material.io/foundations/accessible-design/overview","alts":[],"httpStatus":200},{"url":"http://m3.material.io","alts":[],"httpStatus":200},{"url":"https://material.io/","alts":[],"httpStatus":200},{"url":"http://goo.gle/compose-layout-docs","alts":[],"httpStatus":200},{"url":"https://github.com/android/compose-samples/blob/main/Jetsurvey/app/src/main/java/com/example/compose/jetsurvey/theme/Shape.kt","alts":[],"httpStatus":200},{"url":"https://github.com/android/compose-samples/blob/main/Jetsurvey/app/src/main/java/com/example/compose/jetsurvey/theme/Typography.kt","alts":[],"httpStatus":200},{"url":"https://github.com/android/compose-samples/blob/main/Jetsurvey/app/src/main/java/com/example/compose/jetsurvey/theme/Theme.kt","alts":[],"httpStatus":200},{"url":"https://github.com/android/compose-samples/blob/main/Jetsurvey/app/src/main/java/com/example/compose/jetsurvey/survey/SurveyScreen.kt#L66","alts":[],"httpStatus":200},{"url":"http://goo.gle/compose-modifiers","alts":[],"httpStatus":200},{"url":"https://developer.android.com/jetpack/compose/themes/material","alts":[],"httpStatus":200},{"url":"http://goo.gle/compose-samples","alts":[],"httpStatus":200},{"url":"https://medium.com/androiddevelopers/composable-functions-a505ab20b523","alts":[{"type":3,"url":"medium://p/a505ab20b523"},{"type":2,"url":"medium://p/a505ab20b523"}],"httpStatus":200},{"url":"https://developer.android.com/reference/kotlin/androidx/compose/material/package-summary#Scaffold(androidx.compose.ui.Modifier,androidx.compose.material.ScaffoldState,kotlin.Function0,kotlin.Function0,kotlin.Function1,kotlin.Function0,androidx.compose.material.FabPosition,kotlin.Boolean,kotlin.Function1,kotlin.Boolean,androidx.compose.ui.graphics.Shape,androidx.compose.ui.unit.Dp,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,kotlin.Function1)","alts":[],"httpStatus":200},{"url":"http://goo.gle/compose-material-ref","alts":[],"httpStatus":200}],"version":"0.3","generatedAt":1664557239910},"isLockedPreviewOnly":false,"metaDescription":"","totalClapCount":137,"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":"compose-toolkit","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":false,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":0,"uniqueSlug":"compose-toolkit-8d3651228764","previewContent":{"bodyModel":{"paragraphs":[{"name":"e0d7","type":3,"text":"Compose Toolkit","markups":[{"type":2,"start":0,"end":15}],"alignment":1},{"name":"e916","type":4,"text":"","markups":[],"layout":9,"metadata":{"id":"1*3FZeNmAPZDYUCmgL0cBXoA.png","originalWidth":4209,"originalHeight":1253}},{"name":"8ba7","type":1,"text":"In the previous MAD Skills Compose Basics article, you learned about the building blocks of UI in Compose: composable functions…","markups":[{"type":3,"start":42,"end":49,"href":"https://medium.com/androiddevelopers/composable-functions-a505ab20b523","title":"","rel":"","anchorType":0}],"alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":"In the previous MAD Skills Compose Basics article, you learned about the building blocks of UI in Compose: composable functions. Now, it’s…"},"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":"e0d7","type":3,"text":"Compose Toolkit","markups":[{"type":2,"start":0,"end":15}]},{"name":"e916","type":4,"text":"","markups":[],"layout":1,"metadata":{"id":"1*3FZeNmAPZDYUCmgL0cBXoA.png","originalWidth":4209,"originalHeight":1253}},{"name":"8ba7","type":1,"text":"In the previous MAD Skills Compose Basics article, you learned about the building blocks of UI in Compose: composable functions. Now, it’s time to learn about the powerful toolkit of UI components that ship with Compose enabling you to build rich UIs and interactions.","markups":[{"type":3,"start":42,"end":49,"href":"https://medium.com/androiddevelopers/composable-functions-a505ab20b523","title":"","rel":"","anchorType":0}]},{"name":"8965","type":6,"text":"If you’ve got any questions so…","markups":[]}],"sections":[{"name":"7ac1","startIndex":0}]},"isFullContent":false,"subtitle":"In the previous MAD Skills Compose Basics article, you learned about the building blocks of UI in Compose: composable functions. Now, it’s…"},"cardType":0,"isDistributionAlertDismissed":false,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":false,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"},"f84f27a08e5d":{"id":"f84f27a08e5d","versionId":"2355dcb240cd","creatorId":"401951cd4c3e","homeCollectionId":"95b274b437c2","title":"Now in Android #69","detectedLanguage":"en","latestVersion":"2355dcb240cd","latestPublishedVersion":"2355dcb240cd","hasUnpublishedEdits":false,"latestRev":274,"createdAt":1664302585191,"updatedAt":1664551688647,"acceptedAt":0,"firstPublishedAt":1664400726452,"latestPublishedAt":1664551685749,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"Compose Camp, MAD Skills: Compose, Android Studio Dolphin, AndroidX releases, Jetpack Compose Tracing, Deep Links, and ADB.","postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"1*jsgqunQ5DuF5GFAbn3hDwg.png","filter":"","backgroundSize":"","originalWidth":1600,"originalHeight":476,"strategy":"resample","height":0,"width":0},"wordCount":838,"imageCount":1,"readingTime":3.3622641509433966,"subtitle":"Compose Camp, MAD Skills: Compose, Android Studio Dolphin, AndroidX releases, Jetpack Compose Tracing, Deep Links, and ADB.","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":18,"isBookmarked":false,"tags":[{"slug":"compose","name":"Compose","postCount":1017,"metadata":{"postCount":1017,"coverImage":{"id":"0*D93jriU2RFT12oYQ.jpeg","originalWidth":1400,"originalHeight":933,"isFeatured":true}},"type":"Tag"},{"slug":"mad-skills","name":"Mad Skills","postCount":61,"metadata":{"postCount":61,"coverImage":{"id":"1*JqnM6TZ0eDcv--YJ_7ZPCQ.png","originalWidth":750,"originalHeight":320,"isFeatured":true}},"type":"Tag"},{"slug":"android-studio","name":"Android Studio","postCount":3618,"metadata":{"postCount":3618,"coverImage":{"id":"1*bPrF2ZemLaRrMYCmvLmWMQ.png","originalWidth":2560,"originalHeight":1280,"isFeatured":true}},"type":"Tag"},{"slug":"androidx","name":"Androidx","postCount":267,"metadata":{"postCount":267,"coverImage":{"id":"1*CROblt7xj6Qey6lf46LKUw.png","originalWidth":2560,"originalHeight":1280,"isFeatured":true}},"type":"Tag"},{"slug":"deeplink","name":"Deep Links","postCount":1,"metadata":{"postCount":1,"coverImage":{"id":"0*IyvC8R42mMy5a97Q.jpg","originalWidth":480,"originalHeight":517,"externalSrc":"http://66.media.tumblr.com/tumblr_lcszxxZ5Jh1qc7p1s.jpg"}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":0,"links":{"entries":[{"url":"https://adbackstage.libsyn.com/episode-189-video-conference","alts":[],"httpStatus":200},{"url":"https://adbackstage.libsyn.com/","alts":[],"httpStatus":200},{"url":"https://android-developers.googleblog.com/2022/09/android-studio-dolphin.html","alts":[],"httpStatus":200},{"url":"https://medium.com/androiddevelopers/thinking-in-compose-c4ef150bb7cf","alts":[{"type":3,"url":"medium://p/c4ef150bb7cf"},{"type":2,"url":"medium://p/c4ef150bb7cf"}],"httpStatus":200},{"url":"https://developer.android.com/jetpack/androidx/versions","alts":[],"httpStatus":200},{"url":"https://medium.com/androiddevelopers/jetpack-compose-composition-tracing-9ec2b3aea535","alts":[{"type":3,"url":"medium://p/9ec2b3aea535"},{"type":2,"url":"medium://p/9ec2b3aea535"}],"httpStatus":200},{"url":"https://medium.com/androiddevelopers/composable-functions-a505ab20b523","alts":[{"type":3,"url":"medium://p/a505ab20b523"},{"type":2,"url":"medium://p/a505ab20b523"}],"httpStatus":200},{"url":"https://android-developers.googleblog.com/2022/09/learn-jetpack-compose-at-compose-camp-near-you.html","alts":[],"httpStatus":200},{"url":"https://medium.com/androiddevelopers/deep-links-crash-course-part-3-troubleshooting-your-deep-links-61329fecb93","alts":[{"type":3,"url":"medium://p/61329fecb93"},{"type":2,"url":"medium://p/61329fecb93"}],"httpStatus":200},{"url":"https://developer.android.com/jetpack/androidx/releases/recyclerview#recyclerview-1.3.0-rc01","alts":[],"httpStatus":200},{"url":"https://developer.android.com/jetpack/androidx/releases/drawerlayout#1.2.0-alpha01","alts":[],"httpStatus":200},{"url":"https://developers.google.com/community/gdg","alts":[],"httpStatus":200},{"url":"https://developer.android.com/jetpack/androidx/releases/activity#1.6.0","alts":[],"httpStatus":200},{"url":"http://d.android.com/compose-camp","alts":[],"httpStatus":200},{"url":"https://developer.android.com/jetpack/androidx/releases/annotation#annotation-1.5.0","alts":[],"httpStatus":200},{"url":"https://developer.android.com/jetpack/androidx/releases/fragment#1.5.3","alts":[],"httpStatus":200},{"url":"https://www.youtube.com/watch?v=4UXJTeb9Khg&list=PLWz5rJ2EKKc-CG9riunK996aI6cRhXFDC","alts":[{"type":3,"url":"vnd.youtube://www.youtube.com/watch?v=4UXJTeb9Khg&list=PLWz5rJ2EKKc-CG9riunK996aI6cRhXFDC&feature=applinks"},{"type":2,"url":"vnd.youtube://www.youtube.com/watch?v=4UXJTeb9Khg&list=PLWz5rJ2EKKc-CG9riunK996aI6cRhXFDC&feature=applinks"}],"httpStatus":200}],"version":"0.3","generatedAt":1664551686470},"isLockedPreviewOnly":false,"metaDescription":"","totalClapCount":60,"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-69","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":false,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":0,"uniqueSlug":"now-in-android-69-f84f27a08e5d","previewContent":{"bodyModel":{"paragraphs":[{"name":"previewImage","type":4,"text":"","layout":10,"metadata":{"id":"1*jsgqunQ5DuF5GFAbn3hDwg.png","originalWidth":1600,"originalHeight":476,"isFeatured":true}},{"name":"7465","type":3,"text":"Now in Android #69","markups":[],"alignment":1},{"name":"bbca","type":13,"text":"Compose Camp, MAD Skills: Compose, Android Studio Dolphin, AndroidX releases…","markups":[],"alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":"Compose Camp, MAD Skills: Compose, Android Studio Dolphin, AndroidX releases, Jetpack Compose Tracing, Deep Links, and ADB."},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"95b274b437c2","isNewsletter":false,"newsletterId":"fb79d1645040","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":"727a","type":4,"text":"Illustration by Virginia Poltrack","markups":[],"layout":1,"metadata":{"id":"1*jsgqunQ5DuF5GFAbn3hDwg.png","originalWidth":1600,"originalHeight":476,"isFeatured":true}},{"name":"7465","type":3,"text":"Now in Android #69","markups":[]},{"name":"bbca","type":13,"text":"Compose Camp, MAD Skills: Compose, Android Studio Dolphin, AndroidX releases, Jetpack Compose Tracing, Deep Links, and ADB.","markups":[]},{"name":"b3ab","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":"b661","type":3,"text":"Episode 69 Video and Podcast","markups":[]},{"name":"4521","type":1,"text":"Now in Android is also offered as a video and podcast.","markups":[{"type":2,"start":0,"end":14}]},{"name":"4375","type":11,"text":"","markups":[],"layout":1,"iframe":{"mediaResourceId":"f5d94ecc1abb285b19cbbb0cf8d5eac0","iframeWidth":854,"iframeHeight":480,"thumbnailUrl":"https://i.embed.ly/1/image?url=https%3A%2F%2Fi.ytimg.com%2Fvi%2FUvfvwFFsYpM%2Fhqdefault.jpg&key=a19fcc184b9711e1b4764040d3dc5c07"}},{"name":"a026","type":11,"text":"","markups":[],"layout":1,"iframe":{"mediaResourceId":"01572e3c3a39d6f9ffaff306665cdb56","iframeWidth":600,"iframeHeight":90,"thumbnailUrl":"https://i.embed.ly/1/image?url=https%3A%2F%2Fassets.libsyn.com%2Fsecure%2Fcontent%2F137335917&key=a19fcc184b9711e1b4764040d3dc5c07"}},{"name":"7617","type":3,"text":"Compose Camp","markups":[]},{"name":"a269","type":1,"text":"We launched Compose Camp, a series of in-person and virtual sessions where you can learn how to build…","markups":[{"type":3,"start":12,"end":24,"href":"http://d.android.com/compose-camp","title":"","rel":"","anchorType":0},{"type":3,"start":424,"end":450,"href":"https://developers.google.com/community/gdg","title":"","rel":"","anchorType":0},{"type":3,"start":698,"end":710,"href":"http://d.android.com/compose-camp","title":"","rel":"","anchorType":0}]}],"sections":[{"name":"6550","startIndex":0}]},"isFullContent":false,"subtitle":"Compose Camp, MAD Skills: Compose, Android Studio Dolphin, AndroidX releases, Jetpack Compose Tracing, Deep Links, and ADB."},"cardType":0,"isDistributionAlertDismissed":false,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":true,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"},"a505ab20b523":{"id":"a505ab20b523","versionId":"d0900165ac4a","creatorId":"5e0374fd3b15","homeCollectionId":"95b274b437c2","title":"Composable Functions","detectedLanguage":"en","latestVersion":"d0900165ac4a","latestPublishedVersion":"d0900165ac4a","hasUnpublishedEdits":false,"latestRev":457,"createdAt":1663749517154,"updatedAt":1664481123671,"acceptedAt":0,"firstPublishedAt":1663858937929,"latestPublishedAt":1663858937929,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"In the previous MAD Skills Compose Basics article, you learned how to think in Compose — you describe your UI in Kotlin as functions. No…","postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"1*jPVPY4GjPRK3prnJ2o09cQ.png","filter":"","backgroundSize":"","originalWidth":700,"originalHeight":208,"strategy":"resample","height":0,"width":0},"wordCount":1705,"imageCount":2,"readingTime":6.817295597484277,"subtitle":"In the previous MAD Skills Compose Basics article, you learned how to think in Compose — you describe your UI in Kotlin as functions. No…","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":36,"isBookmarked":false,"tags":[{"slug":"mad-skills","name":"Mad Skills","postCount":61,"metadata":{"postCount":61,"coverImage":{"id":"1*JqnM6TZ0eDcv--YJ_7ZPCQ.png","originalWidth":750,"originalHeight":320,"isFeatured":true}},"type":"Tag"},{"slug":"jetpack-compose","name":"Jetpack Compose","postCount":6014,"metadata":{"postCount":6014,"coverImage":{"id":"1*9eWfzmkKPmiQFMdnt1zusQ.png","originalWidth":1500,"originalHeight":1000,"isFeatured":true}},"type":"Tag"},{"slug":"androiddev","name":"AndroidDev","postCount":12100,"metadata":{"postCount":12100,"coverImage":{"id":"1*ypwQP-qbAWOmO24P5y9ozA.png","originalWidth":6912,"originalHeight":3456,"isFeatured":true}},"type":"Tag"},{"slug":"android","name":"Android","postCount":143459,"metadata":{"postCount":143459,"coverImage":{"id":"1*JZHO5lsnXJ3BvUdHHbN8xA.png","originalWidth":8418,"originalHeight":2506,"isFeatured":true}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":2,"links":{"entries":[{"url":"https://medium.com/androiddevelopers/thinking-in-compose-c4ef150bb7cf","alts":[{"type":3,"url":"medium://p/c4ef150bb7cf"},{"type":2,"url":"medium://p/c4ef150bb7cf"}],"httpStatus":200},{"url":"https://developer.android.com/codelabs/jetpack-compose-theming","alts":[],"httpStatus":200},{"url":"https://github.com/android/compose-samples/tree/main/Jetsurvey","alts":[],"httpStatus":200},{"url":"https://developer.android.com/reference/kotlin/androidx/compose/runtime/MutableState","alts":[],"httpStatus":200},{"url":"https://developer.android.com/codelabs/jetpack-compose-layouts","alts":[],"httpStatus":200},{"url":"https://developer.android.com/jetpack/compose/themes","alts":[],"httpStatus":200},{"url":"http://goo.gle/compose-samples","alts":[],"httpStatus":200},{"url":"https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#mutableStateOf(kotlin.Any,androidx.compose.runtime.SnapshotMutationPolicy)","alts":[],"httpStatus":200},{"url":"https://developer.android.com/jetpack/compose/mental-model#optimistic","alts":[],"httpStatus":200},{"url":"https://developer.android.com/jetpack/compose/mental-model#skips","alts":[],"httpStatus":200},{"url":"https://developer.android.com/jetpack/compose/mental-model#any-order","alts":[],"httpStatus":200},{"url":"https://developer.android.com/jetpack/compose/mental-model#parallel","alts":[],"httpStatus":200},{"url":"https://developer.android.com/jetpack/compose/mental-model#frequent","alts":[],"httpStatus":200}],"version":"0.3","generatedAt":1663858939464},"isLockedPreviewOnly":false,"metaDescription":"","totalClapCount":207,"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":"composable-functions","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":false,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":0,"uniqueSlug":"composable-functions-a505ab20b523","previewContent":{"bodyModel":{"paragraphs":[{"name":"previewImage","type":4,"text":"","layout":10,"metadata":{"id":"1*jPVPY4GjPRK3prnJ2o09cQ.png","originalWidth":700,"originalHeight":208,"isFeatured":true}},{"name":"a52f","type":3,"text":"Composable Functions","markups":[],"alignment":1},{"name":"01d9","type":1,"text":"In the previous MAD Skills Compose Basics article, you learned how to think in Compose — you describe your UI in Kotlin as…","markups":[{"type":3,"start":42,"end":49,"href":"https://medium.com/androiddevelopers/thinking-in-compose-c4ef150bb7cf","title":"","rel":"","anchorType":0}],"alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":"In the previous MAD Skills Compose Basics article, you learned how to think in Compose — you describe your UI in Kotlin as functions. No…"},"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":"a52f","type":3,"text":"Composable Functions","markups":[]},{"name":"1cf1","type":4,"text":"","markups":[],"layout":1,"metadata":{"id":"1*jPVPY4GjPRK3prnJ2o09cQ.png","originalWidth":700,"originalHeight":208,"isFeatured":true}},{"name":"01d9","type":1,"text":"In the previous MAD Skills Compose Basics article, you learned how to think in Compose — you describe your UI in Kotlin as functions. No more XML needed! In this article, we will dive deeper into these functions and how you can build UI with them.","markups":[{"type":3,"start":42,"end":49,"href":"https://medium.com/androiddevelopers/thinking-in-compose-c4ef150bb7cf","title":"","rel":"","anchorType":0}]},{"name":"9c21","type":6,"text":"As a reminder, we…","markups":[]}],"sections":[{"name":"42af","startIndex":0}]},"isFullContent":false,"subtitle":"In the previous MAD Skills Compose Basics article, you learned how to think in Compose — you describe your UI in Kotlin as functions. No…"},"cardType":0,"isDistributionAlertDismissed":false,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":false,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"},"c4ef150bb7cf":{"id":"c4ef150bb7cf","versionId":"5b3fd23d2c82","creatorId":"5e0374fd3b15","homeCollectionId":"95b274b437c2","title":"Thinking in Compose","detectedLanguage":"en","latestVersion":"5b3fd23d2c82","latestPublishedVersion":"5b3fd23d2c82","hasUnpublishedEdits":true,"latestRev":492,"createdAt":1662680382069,"updatedAt":1675372081312,"acceptedAt":0,"firstPublishedAt":1663261341417,"latestPublishedAt":1663261341417,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"This post of our Compose Basics series goes into detail on what it means to think in Compose. Because Jetpack Compose is a declarative UI…","postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"1*Be4McwKM10m3XAPmLEWG3Q.png","filter":"","backgroundSize":"","originalWidth":1400,"originalHeight":392,"strategy":"resample","height":0,"width":0},"wordCount":1573,"imageCount":6,"readingTime":6.8858490566037736,"subtitle":"This post of our Compose Basics series goes into detail on what it means to think in Compose. Because Jetpack Compose is a declarative UI…","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":61,"isBookmarked":false,"tags":[{"slug":"mad-skills","name":"Madskills","postCount":1,"metadata":{"postCount":1,"coverImage":{"id":"1*5_yt1M6_QEMN0OgGU8VaZw.png","originalWidth":4267,"originalHeight":2134,"isFeatured":true}},"type":"Tag"},{"slug":"madskillscompose","name":"Madskillscompose","postCount":0,"metadata":{"postCount":0,"coverImage":{"id":"1*Be4McwKM10m3XAPmLEWG3Q.png","originalWidth":1400,"originalHeight":392,"isFeatured":true}},"type":"Tag"},{"slug":"composebasics","name":"Composebasics","postCount":0,"metadata":{"postCount":0,"coverImage":{"id":"1*Be4McwKM10m3XAPmLEWG3Q.png","originalWidth":1400,"originalHeight":392,"isFeatured":true}},"type":"Tag"},{"slug":"jetpack-compose","name":"Jetpack Compose","postCount":6014,"metadata":{"postCount":6014,"coverImage":{"id":"1*9eWfzmkKPmiQFMdnt1zusQ.png","originalWidth":1500,"originalHeight":1000,"isFeatured":true}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":1,"links":{"entries":[{"url":"https://developer.android.com/jetpack/compose/state","alts":[],"httpStatus":200},{"url":"https://developer.android.com/jetpack/compose/mental-model#simple-example","alts":[],"httpStatus":200},{"url":"https://developer.android.com/codelabs/jetpack-compose-basics","alts":[],"httpStatus":200},{"url":"https://developer.android.com/topic/libraries/data-binding","alts":[],"httpStatus":200},{"url":"https://github.com/android/compose-samples","alts":[],"httpStatus":200},{"url":"http://goo.gle/compose-samples","alts":[],"httpStatus":200}],"version":"0.3","generatedAt":1663261342120},"isLockedPreviewOnly":false,"metaDescription":"","totalClapCount":243,"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":"thinking-in-compose","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":false,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":0,"uniqueSlug":"thinking-in-compose-c4ef150bb7cf","previewContent":{"bodyModel":{"paragraphs":[{"name":"previewImage","type":4,"text":"","layout":10,"metadata":{"id":"1*Be4McwKM10m3XAPmLEWG3Q.png","originalWidth":1400,"originalHeight":392,"isFeatured":true}},{"name":"0a60","type":3,"text":"Thinking in Compose","markups":[],"alignment":1},{"name":"4620","type":1,"text":"This post of our Compose Basics series goes into detail on what it means to think in Compose. Because Jetpack Compose is a…","markups":[],"alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":"This post of our Compose Basics series goes into detail on what it means to think in Compose. Because Jetpack Compose is a declarative UI…"},"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":"c392","type":4,"text":"","markups":[],"layout":1,"metadata":{"id":"1*Be4McwKM10m3XAPmLEWG3Q.png","originalWidth":1400,"originalHeight":392,"isFeatured":true}},{"name":"0a60","type":3,"text":"Thinking in Compose","markups":[]},{"name":"4620","type":1,"text":"This post of our Compose Basics series goes into detail on what it means to think in Compose. Because Jetpack Compose is a declarative UI framework, as a developer you describe what your UI should display, instead of telling it how to display it.","markups":[{"type":1,"start":177,"end":181},{"type":1,"start":228,"end":231}]},{"name":"f7ab","type":6,"text":"Make sure to leave a comment…","markups":[]}],"sections":[{"name":"bbb1","startIndex":0}]},"isFullContent":false,"subtitle":"This post of our Compose Basics series goes into detail on what it means to think in Compose. Because Jetpack Compose is a declarative UI…"},"cardType":0,"isDistributionAlertDismissed":false,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":false,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"},"33688abfc51f":{"id":"33688abfc51f","versionId":"ed3cc0d09ec4","creatorId":"65fe4f480b1c","homeCollectionId":"95b274b437c2","title":"MAD Skills Performance — Wrap Up","detectedLanguage":"en","latestVersion":"ed3cc0d09ec4","latestPublishedVersion":"ed3cc0d09ec4","hasUnpublishedEdits":false,"latestRev":215,"createdAt":1662377280077,"updatedAt":1662566855453,"acceptedAt":0,"firstPublishedAt":1662566852781,"latestPublishedAt":1662566852781,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"In August the MAD Skills video and blog series helping you to get started with Performance. Here’s the gist of what happened.","postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"0*qdkZp112bKTGtQIN","filter":"","backgroundSize":"","originalWidth":1400,"originalHeight":392,"strategy":"resample","height":0,"width":0},"wordCount":664,"imageCount":3,"readingTime":3.0556603773584907,"subtitle":"In August the MAD Skills video and blog series helping you to get started with Performance. Here’s the gist of what happened.","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":12,"isBookmarked":false,"tags":[{"slug":"android","name":"Android","postCount":143459,"metadata":{"postCount":143459,"coverImage":{"id":"1*JZHO5lsnXJ3BvUdHHbN8xA.png","originalWidth":8418,"originalHeight":2506,"isFeatured":true}},"type":"Tag"},{"slug":"performance","name":"Performance","postCount":28889,"metadata":{"postCount":28889,"coverImage":{"id":"1*vbDT7Qz5VO62kSp_4AooVw.jpeg","originalWidth":1280,"originalHeight":1280}},"type":"Tag"},{"slug":"android-app-development","name":"Android App Development","postCount":48048,"metadata":{"postCount":48048,"coverImage":{"id":"1*n5IdajkJmMlLpduU38hgKQ.png","originalWidth":2560,"originalHeight":1440,"isFeatured":true}},"type":"Tag"},{"slug":"mad-skills","name":"Mad Skills","postCount":61,"metadata":{"postCount":61,"coverImage":{"id":"1*JqnM6TZ0eDcv--YJ_7ZPCQ.png","originalWidth":750,"originalHeight":320,"isFeatured":true}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":0,"links":{"entries":[{"url":"mailto:mlykotom@google.com","alts":[],"httpStatus":0},{"url":"mailto:benweiss@google.com","alts":[],"httpStatus":0},{"url":"mailto:carmenjackson@google.com","alts":[],"httpStatus":0},{"url":"mailto:ccraik@google.com","alts":[],"httpStatus":0},{"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/monitoring-app-performance-ebf9af4ebe36","alts":[{"type":3,"url":"medium://p/ebf9af4ebe36"},{"type":2,"url":"medium://p/ebf9af4ebe36"}],"httpStatus":200},{"url":"https://medium.com/androiddevelopers/inspecting-performance-95b76477a3d7","alts":[{"type":3,"url":"medium://p/95b76477a3d7"},{"type":2,"url":"medium://p/95b76477a3d7"}],"httpStatus":200},{"url":"http://twitter.com/mlykotom","alts":[],"httpStatus":200},{"url":"https://medium.com/androiddevelopers/important-performance-metrics-c7dacf018eb3","alts":[{"type":2,"url":"medium://p/c7dacf018eb3"},{"type":3,"url":"medium://p/c7dacf018eb3"}],"httpStatus":200},{"url":"http://twitter.com/keyboardsurfer","alts":[],"httpStatus":200},{"url":"https://medium.com/androiddevelopers/introducing-the-mad-skills-series-on-performance-7dbb26e8b17f","alts":[{"type":3,"url":"medium://p/7dbb26e8b17f"},{"type":2,"url":"medium://p/7dbb26e8b17f"}],"httpStatus":200},{"url":"http://twitter.com/androiddev","alts":[],"httpStatus":200},{"url":"https://goo.gle/baseline-profiles-codelab","alts":[],"httpStatus":200},{"url":"http://github.com/android/performance-samples","alts":[],"httpStatus":200},{"url":"https://d.android.com/baseline-profiles","alts":[],"httpStatus":200},{"url":"http://d.android.com/performance","alts":[],"httpStatus":200},{"url":"https://d.android.com/performance","alts":[],"httpStatus":200}],"version":"0.3","generatedAt":1662566854224},"isLockedPreviewOnly":false,"metaDescription":"","totalClapCount":34,"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":"mad-skills-performance-wrap-up","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":false,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":0,"uniqueSlug":"mad-skills-performance-wrap-up-33688abfc51f","previewContent":{"bodyModel":{"paragraphs":[{"name":"previewImage","type":4,"text":"","layout":10,"metadata":{"id":"0*qdkZp112bKTGtQIN","originalWidth":1400,"originalHeight":392,"isFeatured":true}},{"name":"e702","type":3,"text":"MAD Skills Performance — Wrap Up","markups":[{"type":2,"start":0,"end":32}],"alignment":1},{"name":"2cbd","type":1,"text":"In August the MAD Skills video and blog series helping you to get started with Performance. Here’s the…","markups":[],"alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":"In August the MAD Skills video and blog series helping you to get started with Performance. Here’s the gist of what happened."},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"95b274b437c2","isNewsletter":false,"newsletterId":"efbbf478132d","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":"4c30","type":4,"text":"Illustration by Claudia Sanchez","markups":[],"layout":1,"metadata":{"id":"0*qdkZp112bKTGtQIN","originalWidth":1400,"originalHeight":392,"isFeatured":true}},{"name":"e702","type":3,"text":"MAD Skills Performance — Wrap Up","markups":[{"type":2,"start":0,"end":32}]},{"name":"2cbd","type":1,"text":"In August the MAD Skills video and blog series helping you to get started with Performance. Here’s the gist of what happened.","markups":[]},{"name":"6a1a","type":3,"text":"Setting the scene","markups":[]},{"name":"2576","type":1,"text":"When Introducing the MAD Skills series on Performance, we shared the model which we’re using to work with performance.","markups":[]},{"name":"2149","type":1,"text":"Our guidance is aligned with the three pillars: Inspect…","markups":[{"type":2,"start":48,"end":55},{"type":2,"start":57,"end":64},{"type":2,"start":66,"end":73}]}],"sections":[{"name":"2469","startIndex":0}]},"isFullContent":false,"subtitle":"In August the MAD Skills video and blog series helping you to get started with Performance. Here’s the gist of what happened."},"cardType":0,"isDistributionAlertDismissed":false,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":true,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"},"ebf9af4ebe36":{"id":"ebf9af4ebe36","versionId":"91d777beecb3","creatorId":"65fe4f480b1c","homeCollectionId":"95b274b437c2","title":"Monitoring App Performance","detectedLanguage":"en","latestVersion":"91d777beecb3","latestPublishedVersion":"91d777beecb3","hasUnpublishedEdits":false,"latestRev":516,"createdAt":1660906074881,"updatedAt":1662504188440,"acceptedAt":0,"firstPublishedAt":1661804846866,"latestPublishedAt":1661804846866,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"In this MAD Skills article on monitoring performance I’m guiding you through best practices and provide guidance on tools that can be used…","postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"0*GW7g7T1qx_Adm2D-","filter":"","backgroundSize":"","originalWidth":1400,"originalHeight":392,"strategy":"resample","height":0,"width":0},"wordCount":1291,"imageCount":2,"readingTime":5.2550314465408805,"subtitle":"In this MAD Skills article on monitoring performance I’m guiding you through best practices and provide guidance on tools that can be used…","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":32,"isBookmarked":false,"tags":[{"slug":"mad-skills","name":"Mad Skills","postCount":61,"metadata":{"postCount":61,"coverImage":{"id":"1*JqnM6TZ0eDcv--YJ_7ZPCQ.png","originalWidth":750,"originalHeight":320,"isFeatured":true}},"type":"Tag"},{"slug":"performance","name":"Performance","postCount":28889,"metadata":{"postCount":28889,"coverImage":{"id":"1*vbDT7Qz5VO62kSp_4AooVw.jpeg","originalWidth":1280,"originalHeight":1280}},"type":"Tag"},{"slug":"androiddev","name":"AndroidDev","postCount":12100,"metadata":{"postCount":12100,"coverImage":{"id":"1*ypwQP-qbAWOmO24P5y9ozA.png","originalWidth":6912,"originalHeight":3456,"isFeatured":true}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":0,"links":{"entries":[{"url":"https://twitter.com/search?q=%23MADPerfQA","alts":[],"httpStatus":404},{"url":"https://medium.com/androiddevelopers/important-performance-metrics-c7dacf018eb3","alts":[{"type":3,"url":"medium://p/c7dacf018eb3"},{"type":2,"url":"medium://p/c7dacf018eb3"}],"httpStatus":200},{"url":"https://medium.com/androiddevelopers/fighting-regressions-with-benchmarks-in-ci-6ea9a14b5c71","alts":[{"type":2,"url":"medium://p/6ea9a14b5c71"},{"type":3,"url":"medium://p/6ea9a14b5c71"}],"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/inspecting-performance-95b76477a3d7","alts":[{"type":3,"url":"medium://p/95b76477a3d7"},{"type":2,"url":"medium://p/95b76477a3d7"}],"httpStatus":200},{"url":"https://console.firebase.google.com/?hl=de","alts":[],"httpStatus":200},{"url":"https://github.com/android/nowinandroid","alts":[],"httpStatus":200},{"url":"http://github.com/android/performance-samples","alts":[],"httpStatus":200},{"url":"https://firebase.google.com/docs/perf-mon","alts":[],"httpStatus":200},{"url":"https://firebase.google.com/products/test-lab","alts":[],"httpStatus":200},{"url":"https://developer.android.com/topic/performance/vitals","alts":[],"httpStatus":200},{"url":"http://d.android.com/performance","alts":[],"httpStatus":200},{"url":"https://goo.gle/baseline-profiles-codelab","alts":[],"httpStatus":200},{"url":"https://developer.android.com/topic/performance/jankstats","alts":[],"httpStatus":200}],"version":"0.3","generatedAt":1661804848260},"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":"monitoring-app-performance","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":false,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":0,"uniqueSlug":"monitoring-app-performance-ebf9af4ebe36","previewContent":{"bodyModel":{"paragraphs":[{"name":"previewImage","type":4,"text":"","layout":10,"metadata":{"id":"0*GW7g7T1qx_Adm2D-","originalWidth":1400,"originalHeight":392,"isFeatured":true}},{"name":"1ac6","type":3,"text":"Monitoring App Performance","markups":[],"alignment":1},{"name":"7c2d","type":1,"text":"In this MAD Skills article on monitoring performance I’m guiding you through best practices and provide guidance…","markups":[],"alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":"In this MAD Skills article on monitoring performance I’m guiding you through best practices and provide guidance on tools that can be used…"},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"95b274b437c2","isNewsletter":false,"newsletterId":"596b73de9b7","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":"1ac6","type":3,"text":"Monitoring App Performance","markups":[]},{"name":"c9fc","type":4,"text":"Illustration by Claudia Sanchez","markups":[],"layout":1,"metadata":{"id":"0*GW7g7T1qx_Adm2D-","originalWidth":1400,"originalHeight":392,"isFeatured":true}},{"name":"7c2d","type":1,"text":"In this MAD Skills article on monitoring performance I’m guiding you through best practices and provide guidance on tools that can be used to monitor app performance.","markups":[]},{"name":"dfb7","type":7,"text":"Monitoring performance verifies performance moves in the right direction.","markups":[]},{"name":"d898","type":1,"text":"App performance can either be monitored in a lab environment, before the app is…","markups":[{"type":2,"start":62,"end":88},{"type":2,"start":123,"end":156}]}],"sections":[{"name":"a65c","startIndex":0}]},"isFullContent":false,"subtitle":"In this MAD Skills article on monitoring performance I’m guiding you through best practices and provide guidance on tools that can be used…"},"cardType":0,"isDistributionAlertDismissed":false,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":true,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"},"fdd0db0d8cc6":{"id":"fdd0db0d8cc6","versionId":"cbe96795b805","creatorId":"65fe4f480b1c","homeCollectionId":"95b274b437c2","title":"Improving Performance with Baseline Profiles","detectedLanguage":"en","latestVersion":"cbe96795b805","latestPublishedVersion":"cbe96795b805","hasUnpublishedEdits":false,"latestRev":297,"createdAt":1660902816049,"updatedAt":1662373268486,"acceptedAt":0,"firstPublishedAt":1661277741289,"latestPublishedAt":1662373260859,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"A quick rundown of Baseline Profiles","postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"0*WJ5hJ_W4pfZSpnQP","filter":"","backgroundSize":"","originalWidth":1400,"originalHeight":392,"strategy":"resample","height":0,"width":0},"wordCount":649,"imageCount":1,"readingTime":2.649056603773585,"subtitle":"A quick rundown of Baseline Profiles","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":42,"isBookmarked":false,"tags":[{"slug":"android","name":"Android","postCount":143459,"metadata":{"postCount":143459,"coverImage":{"id":"1*JZHO5lsnXJ3BvUdHHbN8xA.png","originalWidth":8418,"originalHeight":2506,"isFeatured":true}},"type":"Tag"},{"slug":"performance","name":"Performance","postCount":28889,"metadata":{"postCount":28889,"coverImage":{"id":"1*vbDT7Qz5VO62kSp_4AooVw.jpeg","originalWidth":1280,"originalHeight":1280}},"type":"Tag"},{"slug":"baseline-profiles","name":"Baseline Profiles","postCount":20,"metadata":{"postCount":20,"coverImage":{"id":"0*lzXdUFHnQQWfbMAs.png","originalWidth":1600,"originalHeight":798}},"type":"Tag"},{"slug":"mad-skills","name":"Mad Skills","postCount":61,"metadata":{"postCount":61,"coverImage":{"id":"1*JqnM6TZ0eDcv--YJ_7ZPCQ.png","originalWidth":750,"originalHeight":320,"isFeatured":true}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":1,"links":{"entries":[{"url":"https://android-developers.googleblog.com/2022/01/improving-app-performance-with-baseline.html","alts":[],"httpStatus":200},{"url":"https://medium.com/androiddevelopers/inspecting-performance-95b76477a3d7","alts":[{"type":3,"url":"medium://p/95b76477a3d7"},{"type":2,"url":"medium://p/95b76477a3d7"}],"httpStatus":200},{"url":"https://twitter.com/search?q=%23MADPerfQA","alts":[],"httpStatus":200},{"url":"https://github.com/android/nowinandroid/blob/main/benchmark/src/main/java/com/google/samples/apps/nowinandroid/baselineprofile/BaselineProfileGenerator.kt","alts":[],"httpStatus":200},{"url":"https://github.com/android/performance-samples/blob/main/MacrobenchmarkSample/macrobenchmark/src/main/java/com/example/macrobenchmark/TrivialBaselineProfileBenchmark.kt","alts":[],"httpStatus":200},{"url":"https://goo.gle/baseline-profiles-codelab","alts":[],"httpStatus":200},{"url":"http://github.com/android/performance-samples","alts":[],"httpStatus":200},{"url":"https://developer.android.com/jetpack/compose/performance","alts":[],"httpStatus":200},{"url":"https://developer.android.com/reference/kotlin/androidx/benchmark/macro/junit4/BaselineProfileRule","alts":[],"httpStatus":200},{"url":"http://d.android.com/performance","alts":[],"httpStatus":200},{"url":"https://developer.android.com/topic/performance/benchmarking/macrobenchmark-overview","alts":[],"httpStatus":200}],"version":"0.3","generatedAt":1662373261496},"isLockedPreviewOnly":false,"metaDescription":"","totalClapCount":82,"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":"improving-performance-with-baseline-profiles","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":true,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":0,"uniqueSlug":"improving-performance-with-baseline-profiles-fdd0db0d8cc6","previewContent":{"bodyModel":{"paragraphs":[{"name":"previewImage","type":4,"text":"","layout":10,"metadata":{"id":"0*WJ5hJ_W4pfZSpnQP","originalWidth":1400,"originalHeight":392,"isFeatured":true}},{"name":"9440","type":3,"text":"Improving Performance with Baseline Profiles","markups":[],"alignment":1},{"name":"97ff","type":1,"text":"A quick rundown of Baseline Profiles","markups":[],"alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":"A quick rundown of Baseline Profiles"},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"95b274b437c2","isNewsletter":false,"newsletterId":"42a55b98d5dd","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":"9440","type":3,"text":"Improving Performance with Baseline Profiles","markups":[]},{"name":"97ff","type":1,"text":"A quick rundown of Baseline Profiles","markups":[]},{"name":"9d46","type":4,"text":"Illustration by Claudia Sanchez","markups":[],"layout":1,"metadata":{"id":"0*WJ5hJ_W4pfZSpnQP","originalWidth":1400,"originalHeight":392,"isFeatured":true}},{"name":"717d","type":1,"text":"In this MAD Skills article on improving performance with Baseline Profiles you’ll learn what Baseline Profiles are and how they can be used to improve app startup and speed up runtime.","markups":[{"type":1,"start":30,"end":74}]},{"name":"494f","type":7,"text":"Baseline Profiles help your app to start and run faster by optimizing critical…","markups":[]}],"sections":[{"name":"562b","startIndex":0}]},"isFullContent":false,"subtitle":"A quick rundown of Baseline Profiles"},"cardType":0,"isDistributionAlertDismissed":false,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":true,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"}}},"paging":{"path":"https://medium.com/androiddevelopers/load-more?sortBy=tagged&tagSlug=mad-skills","next":{"limit":10,"to":"1661277744195"}},"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":51948,"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":51948,"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":"mad-skills","name":"Mad Skills","postCount":61,"metadata":{"postCount":61,"coverImage":{"id":"1*JqnM6TZ0eDcv--YJ_7ZPCQ.png","originalWidth":750,"originalHeight":320,"isFeatured":true}},"type":"Tag"},"streamItems":[{"createdAt":1732392647476,"postPreview":{"postId":"1fe4621c64"},"randomId":"ea004e7f66de","itemType":"postPreview","type":"StreamItem"},{"createdAt":1732392647476,"postPreview":{"postId":"64d794664b66"},"randomId":"a1d34ccef1bc","itemType":"postPreview","type":"StreamItem"},{"createdAt":1732392647476,"postPreview":{"postId":"42621bd8719b"},"randomId":"253efb682e77","itemType":"postPreview","type":"StreamItem"},{"createdAt":1732392647476,"postPreview":{"postId":"8d3651228764"},"randomId":"e27b49acf909","itemType":"postPreview","type":"StreamItem"},{"createdAt":1732392647476,"postPreview":{"postId":"f84f27a08e5d"},"randomId":"fe2ca497f2e3","itemType":"postPreview","type":"StreamItem"},{"createdAt":1732392647476,"postPreview":{"postId":"a505ab20b523"},"randomId":"bed274c13772","itemType":"postPreview","type":"StreamItem"},{"createdAt":1732392647476,"postPreview":{"postId":"c4ef150bb7cf"},"randomId":"07a67a09754e","itemType":"postPreview","type":"StreamItem"},{"createdAt":1732392647476,"postPreview":{"postId":"33688abfc51f"},"randomId":"da90082bf529","itemType":"postPreview","type":"StreamItem"},{"createdAt":1732392647476,"postPreview":{"postId":"ebf9af4ebe36"},"randomId":"09c65c0db9af","itemType":"postPreview","type":"StreamItem"},{"createdAt":1732392647476,"postPreview":{"postId":"fdd0db0d8cc6"},"randomId":"1be96827a5ed","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:'8e73cdfc4ef5ce15',t:'MTczMjM5MjY0OC4wMDAwMDA='};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>