CINXE.COM
<!doctype html><html lang="en"><head><title data-rh="true">Jetpack compose: What Scaffold have and have not | by Dobri Kostadinov | Oct, 2024 | ProAndroidDev</title><meta data-rh="true" charset="utf-8"/><meta data-rh="true" name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,maximum-scale=1"/><meta data-rh="true" name="theme-color" content="#000000"/><meta data-rh="true" name="twitter:app:name:iphone" content="Medium"/><meta data-rh="true" name="twitter:app:id:iphone" content="828256236"/><meta data-rh="true" property="al:ios:app_name" content="Medium"/><meta data-rh="true" property="al:ios:app_store_id" content="828256236"/><meta data-rh="true" property="al:android:package" content="com.medium.reader"/><meta data-rh="true" property="fb:app_id" content="542599432471018"/><meta data-rh="true" property="og:site_name" content="Medium"/><meta data-rh="true" property="og:type" content="article"/><meta data-rh="true" property="article:published_time" content="2024-10-08T16:37:37.177Z"/><meta data-rh="true" name="title" content="Jetpack compose: What Scaffold have and have not | by Dobri Kostadinov | Oct, 2024 | ProAndroidDev"/><meta data-rh="true" property="og:title" content="Jetpack compose: What Scaffold have and have not"/><meta data-rh="true" property="al:android:url" content="medium://p/f06492eeb63b"/><meta data-rh="true" property="al:ios:url" content="medium://p/f06492eeb63b"/><meta data-rh="true" property="al:android:app_name" content="Medium"/><meta data-rh="true" name="description" content="Jetpack Compose has revolutionized Android UI development by providing a declarative and reactive approach to building user interfaces. One of its most powerful and commonly used layout components is…"/><meta data-rh="true" property="og:description" content="Unlocking the Power of Scaffold: What It Can and Can’t Do in Jetpack Compose"/><meta data-rh="true" property="og:url" content="https://proandroiddev.com/jetpack-compose-what-scaffold-have-and-have-not-f06492eeb63b"/><meta data-rh="true" property="al:web:url" content="https://proandroiddev.com/jetpack-compose-what-scaffold-have-and-have-not-f06492eeb63b"/><meta data-rh="true" property="og:image" content="https://miro.medium.com/v2/resize:fit:1024/1*J1YDs7Gc77TshLLZvlZ1Xw.png"/><meta data-rh="true" property="article:author" content="https://medium.com/@dobri.kostadinov"/><meta data-rh="true" name="author" content="Dobri Kostadinov"/><meta data-rh="true" name="robots" content="index,noarchive,follow,max-image-preview:large"/><meta data-rh="true" name="referrer" content="unsafe-url"/><meta data-rh="true" property="twitter:title" content="Jetpack compose: What Scaffold have and have not"/><meta data-rh="true" name="twitter:site" content="@proandroiddev"/><meta data-rh="true" name="twitter:app:url:iphone" content="medium://p/f06492eeb63b"/><meta data-rh="true" property="twitter:description" content="Unlocking the Power of Scaffold: What It Can and Can’t Do in Jetpack Compose"/><meta data-rh="true" name="twitter:image:src" content="https://miro.medium.com/v2/resize:fit:1024/1*J1YDs7Gc77TshLLZvlZ1Xw.png"/><meta data-rh="true" name="twitter:card" content="summary_large_image"/><meta data-rh="true" name="twitter:label1" content="Reading time"/><meta data-rh="true" name="twitter:data1" content="5 min read"/><link data-rh="true" rel="icon" href="https://miro.medium.com/v2/resize:fill:256:256/1*A8VytPZQhvUf_MG6hm_Dlw.png"/><link data-rh="true" rel="search" type="application/opensearchdescription+xml" title="Medium" href="/osd.xml"/><link data-rh="true" rel="apple-touch-icon" sizes="152x152" href="https://miro.medium.com/v2/resize:fill:304:304/10fd5c419ac61637245384e7099e131627900034828f4f386bdaa47a74eae156"/><link data-rh="true" rel="apple-touch-icon" sizes="120x120" href="https://miro.medium.com/v2/resize:fill:240:240/10fd5c419ac61637245384e7099e131627900034828f4f386bdaa47a74eae156"/><link data-rh="true" rel="apple-touch-icon" sizes="76x76" href="https://miro.medium.com/v2/resize:fill:152:152/10fd5c419ac61637245384e7099e131627900034828f4f386bdaa47a74eae156"/><link data-rh="true" rel="apple-touch-icon" sizes="60x60" href="https://miro.medium.com/v2/resize:fill:120:120/10fd5c419ac61637245384e7099e131627900034828f4f386bdaa47a74eae156"/><link data-rh="true" rel="mask-icon" href="https://miro.medium.com/v2/resize:fill:1000:1000/7*GAOKVe--MXbEJmV9230oOQ.png" color="#171717"/><link data-rh="true" id="glyph_preload_link" rel="preload" as="style" type="text/css" href="https://glyph.medium.com/css/unbound.css"/><link data-rh="true" id="glyph_link" rel="stylesheet" type="text/css" href="https://glyph.medium.com/css/unbound.css"/><link data-rh="true" rel="author" href="https://medium.com/@dobri.kostadinov"/><link data-rh="true" rel="canonical" href="https://proandroiddev.com/jetpack-compose-what-scaffold-have-and-have-not-f06492eeb63b"/><link data-rh="true" rel="alternate" href="android-app://com.medium.reader/https/medium.com/p/f06492eeb63b"/><script data-rh="true" type="application/ld+json">{"@context":"http:\u002F\u002Fschema.org","@type":"NewsArticle","image":["https:\u002F\u002Fmiro.medium.com\u002Fv2\u002Fresize:fit:1200\u002F1*J1YDs7Gc77TshLLZvlZ1Xw.png"],"url":"https:\u002F\u002Fproandroiddev.com\u002Fjetpack-compose-what-scaffold-have-and-have-not-f06492eeb63b","dateCreated":"2024-10-08T16:37:37.177Z","datePublished":"2024-10-08T16:37:37.177Z","dateModified":"2024-11-15T11:13:07.844Z","headline":"Jetpack compose: What Scaffold have and have not - ProAndroidDev","name":"Jetpack compose: What Scaffold have and have not - ProAndroidDev","description":"Jetpack Compose has revolutionized Android UI development by providing a declarative and reactive approach to building user interfaces. One of its most powerful and commonly used layout components is…","identifier":"f06492eeb63b","author":{"@type":"Person","name":"Dobri Kostadinov","url":"https:\u002F\u002Fproandroiddev.com\u002F@dobri.kostadinov"},"creator":["Dobri Kostadinov"],"publisher":{"@type":"Organization","name":"ProAndroidDev","url":"proandroiddev.com","logo":{"@type":"ImageObject","width":272,"height":60,"url":"https:\u002F\u002Fmiro.medium.com\u002Fv2\u002Fresize:fit:544\u002F7*V1_7XP4snlmqrc_0Njontw.png"}},"mainEntityOfPage":"https:\u002F\u002Fproandroiddev.com\u002Fjetpack-compose-what-scaffold-have-and-have-not-f06492eeb63b"}</script><style type="text/css" data-fela-rehydration="583" data-fela-type="STATIC">html{box-sizing:border-box;-webkit-text-size-adjust:100%}*, *:before, *:after{box-sizing:inherit}body{margin:0;padding:0;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;color:rgba(0,0,0,0.8);position:relative;min-height:100vh}h1, h2, h3, h4, h5, h6, dl, dd, ol, ul, menu, figure, blockquote, p, pre, form{margin:0}menu, ol, ul{padding:0;list-style:none;list-style-image:none}main{display:block}a{color:inherit;text-decoration:none}a, button, input{-webkit-tap-highlight-color:transparent}img, svg{vertical-align:middle}button{background:transparent;overflow:visible}button, input, optgroup, select, textarea{margin:0}:root{--reach-tabs:1;--reach-menu-button:1}#speechify-root{font-family:Sohne, sans-serif}div[data-popper-reference-hidden="true"]{visibility:hidden;pointer-events:none}.grecaptcha-badge{visibility:hidden} /*XCode style (c) Angel Garcia <angelgarcia.mail@gmail.com>*/.hljs {background: #fff;color: black; }/* Gray DOCTYPE selectors like WebKit */ .xml .hljs-meta {color: #c0c0c0; }.hljs-comment, .hljs-quote {color: #007400; }.hljs-tag, .hljs-attribute, .hljs-keyword, .hljs-selector-tag, .hljs-literal, .hljs-name {color: #aa0d91; }.hljs-variable, .hljs-template-variable {color: #3F6E74; }.hljs-code, .hljs-string, .hljs-meta .hljs-string {color: #c41a16; }.hljs-regexp, .hljs-link {color: #0E0EFF; }.hljs-title, .hljs-symbol, .hljs-bullet, .hljs-number {color: #1c00cf; }.hljs-section, .hljs-meta {color: #643820; }.hljs-title.class_, .hljs-class .hljs-title, .hljs-type, .hljs-built_in, .hljs-params {color: #5c2699; }.hljs-attr {color: #836C28; }.hljs-subst {color: #000; }.hljs-formula {background-color: #eee;font-style: italic; }.hljs-addition {background-color: #baeeba; }.hljs-deletion {background-color: #ffc8bd; }.hljs-selector-id, .hljs-selector-class {color: #9b703f; }.hljs-doctag, .hljs-strong {font-weight: bold; }.hljs-emphasis {font-style: italic; } </style><style type="text/css" data-fela-rehydration="583" data-fela-type="KEYFRAME">@-webkit-keyframes k1{0%{opacity:0.8}50%{opacity:0.5}100%{opacity:0.8}}@-moz-keyframes k1{0%{opacity:0.8}50%{opacity:0.5}100%{opacity:0.8}}@keyframes k1{0%{opacity:0.8}50%{opacity:0.5}100%{opacity:0.8}}</style><style type="text/css" data-fela-rehydration="583" data-fela-type="RULE">.a{font-family:medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif}.b{font-weight:400}.c{background-color:rgba(255, 255, 255, 1)}.l{display:block}.m{position:sticky}.n{top:0}.o{z-index:500}.p{padding:0 24px}.q{align-items:center}.r{border-bottom:solid 1px #F2F2F2}.y{height:41px}.z{line-height:20px}.ab{display:flex}.ac{height:57px}.ae{flex:1 0 auto}.af{color:inherit}.ag{fill:inherit}.ah{font-size:inherit}.ai{border:inherit}.aj{font-family:inherit}.ak{letter-spacing:inherit}.al{font-weight:inherit}.am{padding:0}.an{margin:0}.ao{cursor:pointer}.ap:disabled{cursor:not-allowed}.aq:disabled{color:#6B6B6B}.ar:disabled{fill:#6B6B6B}.au{width:auto}.av path{fill:#242424}.aw{height:25px}.ax{margin-left:16px}.ay{border:none}.az{border-radius:20px}.ba{width:240px}.bb{background:#F9F9F9}.bc path{fill:#6B6B6B}.be{outline:none}.bf{font-family:sohne, "Helvetica Neue", Helvetica, Arial, sans-serif}.bg{font-size:14px}.bh{width:100%}.bi{padding:10px 20px 10px 0}.bj{background-color:transparent}.bk{color:#242424}.bl::placeholder{color:#6B6B6B}.bm{display:inline-block}.bn{margin-left:12px}.bo{margin-right:12px}.bp{border-radius:4px}.bq{margin-left:24px}.br{height:24px}.bx{background-color:#F9F9F9}.by{border-radius:50%}.bz{height:32px}.ca{width:32px}.cb{justify-content:center}.ch{max-width:680px}.ci{min-width:0}.cj{animation:k1 1.2s ease-in-out infinite}.ck{height:100vh}.cl{margin-bottom:16px}.cm{margin-top:48px}.cn{align-items:flex-start}.co{flex-direction:column}.cp{justify-content:space-between}.cq{margin-bottom:24px}.cw{width:80%}.cx{background-color:#F2F2F2}.dd{height:44px}.de{width:44px}.df{margin:auto 0}.dg{margin-bottom:4px}.dh{height:16px}.di{width:120px}.dj{width:80px}.dp{margin-bottom:8px}.dq{width:96%}.dr{width:98%}.ds{width:81%}.dt{margin-left:8px}.du{color:#6B6B6B}.dv{font-size:13px}.dw{height:100%}.ep{color:#FFFFFF}.eq{fill:#FFFFFF}.er{background:rgba(46, 152, 126, 1)}.es{border-color:rgba(46, 152, 126, 1)}.ew:disabled{cursor:inherit !important}.ex:disabled{opacity:0.3}.ey:disabled:hover{background:rgba(46, 152, 126, 1)}.ez:disabled:hover{border-color:rgba(46, 152, 126, 1)}.fa{border-radius:99em}.fb{border-width:1px}.fc{border-style:solid}.fd{box-sizing:border-box}.fe{text-decoration:none}.ff{text-align:center}.fi{margin-right:32px}.fj{position:relative}.fk{fill:#6B6B6B}.fn{background:transparent}.fo svg{margin-left:4px}.fp svg{fill:#6B6B6B}.fr{box-shadow:inset 0 0 0 1px rgba(0, 0, 0, 0.05)}.fs{position:absolute}.fz{margin:0 24px}.gd{background:rgba(255, 255, 255, 1)}.ge{border:1px solid #F2F2F2}.gf{box-shadow:0 1px 4px #F2F2F2}.gg{max-height:100vh}.gh{overflow-y:auto}.gi{left:0}.gj{top:calc(100vh + 100px)}.gk{bottom:calc(100vh + 100px)}.gl{width:10px}.gm{pointer-events:none}.gn{word-break:break-word}.go{word-wrap:break-word}.gp:after{display:block}.gq:after{content:""}.gr:after{clear:both}.gs{line-height:1.23}.gt{letter-spacing:0}.gu{font-style:normal}.gv{font-weight:700}.hq{margin-bottom:-0.27em}.hr{padding:2px 4px}.hs{font-size:75%}.ht> strong{font-family:inherit}.hu{font-family:source-code-pro, Menlo, Monaco, "Courier New", Courier, monospace}.hv{line-height:1.394}.iq{align-items:baseline}.ir{width:48px}.is{height:48px}.it{border:2px solid rgba(255, 255, 255, 1)}.iu{z-index:0}.iv{box-shadow:none}.iw{border:1px solid rgba(0, 0, 0, 0.05)}.ix{margin-left:-12px}.iy{width:28px}.iz{height:28px}.ja{z-index:1}.jb{width:24px}.jc{margin-bottom:2px}.jd{flex-wrap:nowrap}.je{font-size:16px}.jf{line-height:24px}.jh{margin:0 8px}.ji{display:inline}.jj{color:rgba(46, 152, 126, 1)}.jk{fill:rgba(46, 152, 126, 1)}.jn{flex:0 0 auto}.jq{flex-wrap:wrap}.jt{white-space:pre-wrap}.ju{margin-right:4px}.jv{overflow:hidden}.jw{max-height:20px}.jx{text-overflow:ellipsis}.jy{display:-webkit-box}.jz{-webkit-line-clamp:1}.ka{-webkit-box-orient:vertical}.kb{word-break:break-all}.kd{padding-left:8px}.ke{padding-right:8px}.lf> *{flex-shrink:0}.lg{overflow-x:scroll}.lh::-webkit-scrollbar{display:none}.li{scrollbar-width:none}.lj{-ms-overflow-style:none}.lk{width:74px}.ll{flex-direction:row}.lm{z-index:2}.lp{-webkit-user-select:none}.lq{border:0}.lr{fill:rgba(117, 117, 117, 1)}.lu{outline:0}.lv{user-select:none}.lw> svg{pointer-events:none}.mf{cursor:progress}.mg{margin-left:4px}.mh{margin-top:0px}.mi{opacity:1}.mj{padding:4px 0}.mm{width:16px}.mo{display:inline-flex}.mu{max-width:100%}.mv{padding:8px 2px}.mw svg{color:#6B6B6B}.nn{margin-left:auto}.no{margin-right:auto}.np{max-width:1024px}.nv{clear:both}.nx{cursor:zoom-in}.ny{z-index:auto}.oa{height:auto}.ob{margin-top:10px}.oc{max-width:728px}.of{line-height:1.12}.og{letter-spacing:-0.022em}.oh{font-weight:600}.pa{margin-bottom:-0.28em}.pb{line-height:1.58}.pc{letter-spacing:-0.004em}.pd{font-family:source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif}.pw{margin-bottom:-0.46em}.qc{list-style-type:disc}.qd{margin-left:30px}.qe{padding-left:0px}.qk{line-height:1.18}.qy{margin-bottom:-0.31em}.qz{overflow-x:auto}.ra{padding:32px}.rb{border:1px solid #E5E5E5}.rc{line-height:1.4}.rd{margin-top:-0.2em}.re{margin-bottom:-0.2em}.rf{white-space:pre}.rg{min-width:fit-content}.rh{max-width:1000px}.ri{font-style:italic}.rj{text-decoration:underline}.rk{margin-bottom:26px}.rl{margin-top:6px}.rm{margin-top:8px}.rn{margin-right:8px}.ro{padding:8px 16px}.rp{border-radius:100px}.rq{transition:background 300ms ease}.rs{white-space:nowrap}.rt{border-top:none}.ru{margin-bottom:14px}.rv{height:52px}.rw{max-height:52px}.rx{box-sizing:content-box}.ry{position:static}.sa{max-width:155px}.sg{margin-right:20px}.sm{height:0px}.sn{margin-bottom:40px}.so{margin-bottom:48px}.tc{border-radius:2px}.te{height:64px}.tf{width:64px}.tg{align-self:flex-end}.th{color:rgba(255, 255, 255, 1)}.ti{fill:rgba(255, 255, 255, 1)}.tj{background:rgba(25, 25, 25, 1)}.tk{border-color:rgba(25, 25, 25, 1)}.tn:disabled{opacity:0.1}.to:disabled:hover{background:rgba(25, 25, 25, 1)}.tp:disabled:hover{border-color:rgba(25, 25, 25, 1)}.tq{flex:1 1 auto}.tw{padding-right:4px}.tx{font-weight:500}.ue{margin-top:16px}.un{gap:18px}.uo{fill:rgba(61, 61, 61, 1)}.uq{margin-top:32px}.ur{fill:#242424}.us{background:0}.ut{border-color:#242424}.uu:disabled:hover{color:#242424}.uv:disabled:hover{fill:#242424}.uw:disabled:hover{border-color:#242424}.vh{border-bottom:solid 1px #E5E5E5}.vi{margin-top:72px}.vj{padding:24px 0}.vk{margin-bottom:0px}.vl{margin-right:16px}.as:hover:not(:disabled){color:rgba(25, 25, 25, 1)}.at:hover:not(:disabled){fill:rgba(25, 25, 25, 1)}.et:hover{background:rgba(50, 130, 108, 1)}.eu:hover{border-color:rgba(50, 130, 108, 1)}.ev:hover{cursor:pointer}.fl:hover{color:#242424}.fm:hover{fill:#242424}.fq:hover svg{fill:#242424}.ft:hover{background-color:rgba(0, 0, 0, 0.1)}.jg:hover{text-decoration:underline}.jl:hover:not(:disabled){color:rgba(50, 130, 108, 1)}.jm:hover:not(:disabled){fill:rgba(50, 130, 108, 1)}.lt:hover{fill:rgba(8, 8, 8, 1)}.mk:hover{fill:#000000}.ml:hover p{color:#000000}.mn:hover{color:#000000}.mx:hover svg{color:#000000}.rr:hover{background-color:#F2F2F2}.td:hover{background-color:none}.tl:hover{background:#000000}.tm:hover{border-color:#242424}.up:hover{fill:rgba(25, 25, 25, 1)}.bd:focus-within path{fill:#242424}.ls:focus{fill:rgba(8, 8, 8, 1)}.my:focus svg{color:#000000}.nz:focus{transform:scale(1.01)}.lx:active{border-style:none}</style><style type="text/css" data-fela-rehydration="583" data-fela-type="RULE" media="all and (min-width: 1080px)">.d{display:none}.bw{width:64px}.cg{margin:0 64px}.cv{height:48px}.dc{margin-bottom:52px}.do{margin-bottom:48px}.ef{font-size:14px}.eg{line-height:20px}.em{font-size:13px}.eo{padding:5px 12px}.fh{display:flex}.fy{margin-bottom:68px}.gc{max-width:680px}.hm{font-size:42px}.hn{margin-top:1.19em}.ho{line-height:52px}.hp{letter-spacing:-0.011em}.ii{font-size:22px}.ij{margin-top:0.92em}.ik{line-height:28px}.ip{align-items:center}.kr{border-top:solid 1px #F2F2F2}.ks{border-bottom:solid 1px #F2F2F2}.kt{margin:32px 0 0}.ku{padding:3px 8px}.ld> *{margin-right:24px}.le> :last-child{margin-right:0}.me{margin-top:0px}.mt{margin:0}.nu{margin-top:56px}.ow{font-size:24px}.ox{margin-top:1.95em}.oy{line-height:30px}.oz{letter-spacing:-0.016em}.ps{font-size:20px}.pt{margin-top:0.94em}.pu{line-height:32px}.pv{letter-spacing:-0.003em}.qb{margin-top:2.14em}.qj{margin-top:1.14em}.qv{margin-top:1.72em}.qw{line-height:24px}.qx{letter-spacing:0}.sf{display:inline-block}.sl{margin-bottom:104px}.sp{flex-direction:row}.ss{margin-bottom:0}.st{margin-right:20px}.tr{max-width:500px}.uj{margin-bottom:88px}.um{margin-bottom:72px}.vb{width:min-width}.vg{padding-top:72px}</style><style type="text/css" data-fela-rehydration="583" data-fela-type="RULE" media="all and (max-width: 1079.98px)">.e{display:none}.md{margin-top:0px}.od{margin-left:auto}.oe{text-align:center}.se{display:inline-block}</style><style type="text/css" data-fela-rehydration="583" data-fela-type="RULE" media="all and (max-width: 903.98px)">.f{display:none}.mc{margin-top:0px}.sd{display:inline-block}</style><style type="text/css" data-fela-rehydration="583" data-fela-type="RULE" media="all and (max-width: 727.98px)">.g{display:none}.ma{margin-top:0px}.mb{margin-right:0px}.sc{display:inline-block}</style><style type="text/css" data-fela-rehydration="583" data-fela-type="RULE" media="all and (max-width: 551.98px)">.h{display:none}.s{display:flex}.t{justify-content:space-between}.bs{width:24px}.cc{margin:0 24px}.cr{height:40px}.cy{margin-bottom:44px}.dk{margin-bottom:32px}.dx{font-size:13px}.dy{line-height:20px}.eh{padding:0px 8px 1px}.fu{margin-bottom:4px}.gw{font-size:32px}.gx{margin-top:1.01em}.gy{line-height:38px}.gz{letter-spacing:-0.014em}.hw{font-size:18px}.hx{margin-top:0.79em}.hy{line-height:24px}.il{align-items:flex-start}.jo{flex-direction:column}.jr{margin-bottom:2px}.kf{margin:24px -24px 0}.kg{padding:0}.kv> *{margin-right:8px}.kw> :last-child{margin-right:24px}.ln{margin-left:0px}.ly{margin-top:0px}.lz{margin-right:0px}.mp{margin:0}.mz{border:1px solid #F2F2F2}.na{border-radius:99em}.nb{padding:0px 16px 0px 12px}.nc{height:38px}.nd{align-items:center}.nf svg{margin-right:8px}.nq{margin-top:40px}.oi{font-size:20px}.oj{margin-top:1.2em}.ok{letter-spacing:0}.pe{margin-top:0.67em}.pf{line-height:28px}.pg{letter-spacing:-0.003em}.px{margin-top:1.56em}.qf{margin-top:1.34em}.ql{font-size:16px}.qm{margin-top:1.23em}.sb{display:inline-block}.sh{margin-bottom:96px}.ta{margin-bottom:20px}.tb{margin-right:0}.tv{max-width:100%}.ty{font-size:24px}.tz{line-height:30px}.ua{letter-spacing:-0.016em}.uf{margin-bottom:64px}.ux{width:100%}.vc{padding-top:48px}.ne:hover{border-color:#E5E5E5}</style><style type="text/css" data-fela-rehydration="583" data-fela-type="RULE" media="all and (min-width: 904px) and (max-width: 1079.98px)">.i{display:none}.bv{width:64px}.cf{margin:0 64px}.cu{height:48px}.db{margin-bottom:52px}.dn{margin-bottom:48px}.ed{font-size:14px}.ee{line-height:20px}.ek{font-size:13px}.el{padding:5px 12px}.fg{display:flex}.fx{margin-bottom:68px}.gb{max-width:680px}.hi{font-size:42px}.hj{margin-top:1.19em}.hk{line-height:52px}.hl{letter-spacing:-0.011em}.if{font-size:22px}.ig{margin-top:0.92em}.ih{line-height:28px}.io{align-items:center}.kn{border-top:solid 1px #F2F2F2}.ko{border-bottom:solid 1px #F2F2F2}.kp{margin:32px 0 0}.kq{padding:3px 8px}.lb> *{margin-right:24px}.lc> :last-child{margin-right:0}.ms{margin:0}.nt{margin-top:56px}.os{font-size:24px}.ot{margin-top:1.95em}.ou{line-height:30px}.ov{letter-spacing:-0.016em}.po{font-size:20px}.pp{margin-top:0.94em}.pq{line-height:32px}.pr{letter-spacing:-0.003em}.qa{margin-top:2.14em}.qi{margin-top:1.14em}.qs{margin-top:1.72em}.qt{line-height:24px}.qu{letter-spacing:0}.sk{margin-bottom:104px}.sq{flex-direction:row}.su{margin-bottom:0}.sv{margin-right:20px}.ts{max-width:500px}.ui{margin-bottom:88px}.ul{margin-bottom:72px}.va{width:min-width}.vf{padding-top:72px}</style><style type="text/css" data-fela-rehydration="583" data-fela-type="RULE" media="all and (min-width: 728px) and (max-width: 903.98px)">.j{display:none}.w{display:flex}.x{justify-content:space-between}.bu{width:64px}.ce{margin:0 48px}.ct{height:48px}.da{margin-bottom:52px}.dm{margin-bottom:48px}.eb{font-size:13px}.ec{line-height:20px}.ej{padding:0px 8px 1px}.fw{margin-bottom:68px}.ga{max-width:680px}.he{font-size:42px}.hf{margin-top:1.19em}.hg{line-height:52px}.hh{letter-spacing:-0.011em}.ic{font-size:22px}.id{margin-top:0.92em}.ie{line-height:28px}.in{align-items:center}.kj{border-top:solid 1px #F2F2F2}.kk{border-bottom:solid 1px #F2F2F2}.kl{margin:32px 0 0}.km{padding:3px 8px}.kz> *{margin-right:24px}.la> :last-child{margin-right:0}.mr{margin:0}.ns{margin-top:56px}.oo{font-size:24px}.op{margin-top:1.95em}.oq{line-height:30px}.or{letter-spacing:-0.016em}.pk{font-size:20px}.pl{margin-top:0.94em}.pm{line-height:32px}.pn{letter-spacing:-0.003em}.pz{margin-top:2.14em}.qh{margin-top:1.14em}.qp{margin-top:1.72em}.qq{line-height:24px}.qr{letter-spacing:0}.sj{margin-bottom:104px}.sr{flex-direction:row}.sw{margin-bottom:0}.sx{margin-right:20px}.tt{max-width:500px}.uh{margin-bottom:88px}.uk{margin-bottom:72px}.uz{width:min-width}.ve{padding-top:72px}</style><style type="text/css" data-fela-rehydration="583" data-fela-type="RULE" media="all and (min-width: 552px) and (max-width: 727.98px)">.k{display:none}.u{display:flex}.v{justify-content:space-between}.bt{width:24px}.cd{margin:0 24px}.cs{height:40px}.cz{margin-bottom:44px}.dl{margin-bottom:32px}.dz{font-size:13px}.ea{line-height:20px}.ei{padding:0px 8px 1px}.fv{margin-bottom:4px}.ha{font-size:32px}.hb{margin-top:1.01em}.hc{line-height:38px}.hd{letter-spacing:-0.014em}.hz{font-size:18px}.ia{margin-top:0.79em}.ib{line-height:24px}.im{align-items:flex-start}.jp{flex-direction:column}.js{margin-bottom:2px}.kh{margin:24px 0 0}.ki{padding:0}.kx> *{margin-right:8px}.ky> :last-child{margin-right:8px}.lo{margin-left:0px}.mq{margin:0}.ng{border:1px solid #F2F2F2}.nh{border-radius:99em}.ni{padding:0px 16px 0px 12px}.nj{height:38px}.nk{align-items:center}.nm svg{margin-right:8px}.nr{margin-top:40px}.ol{font-size:20px}.om{margin-top:1.2em}.on{letter-spacing:0}.ph{margin-top:0.67em}.pi{line-height:28px}.pj{letter-spacing:-0.003em}.py{margin-top:1.56em}.qg{margin-top:1.34em}.qn{font-size:16px}.qo{margin-top:1.23em}.si{margin-bottom:96px}.sy{margin-bottom:20px}.sz{margin-right:0}.tu{max-width:100%}.ub{font-size:24px}.uc{line-height:30px}.ud{letter-spacing:-0.016em}.ug{margin-bottom:64px}.uy{width:100%}.vd{padding-top:48px}.nl:hover{border-color:#E5E5E5}</style><style type="text/css" data-fela-rehydration="583" data-fela-type="RULE" media="print">.rz{display:none}</style><style type="text/css" data-fela-rehydration="583" data-fela-type="RULE" media="(orientation: landscape) and (max-width: 903.98px)">.kc{max-height:none}</style><style type="text/css" data-fela-rehydration="583" data-fela-type="RULE" media="(prefers-reduced-motion: no-preference)">.nw{transition:transform 300ms cubic-bezier(0.2, 0, 0.2, 1)}</style></head><body><div id="root"><div class="a b c"><div class="d e f g h i j k"></div><script>document.domain = document.domain;</script><div class="l c"><div class="l m n o c"><div class="p q r s t u v w x i d y z"><a class="du ag dv bf ak b am an ao ap aq ar as at s u w i d q dw z" href="https://rsci.app.link/?%24canonical_url=https%3A%2F%2Fmedium.com%2Fp%2Ff06492eeb63b&%7Efeature=LoOpenInAppButton&%7Echannel=ShowPostUnderCollection&source=---top_nav_layout_nav----------------------------------" rel="noopener follow">Open in app<svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" fill="none" viewBox="0 0 10 10" class="dt"><path fill="currentColor" d="M.985 8.485a.375.375 0 1 0 .53.53zM8.75 1.25h.375A.375.375 0 0 0 8.75.875zM8.375 6.5a.375.375 0 1 0 .75 0zM3.5.875a.375.375 0 1 0 0 .75zm-1.985 8.14 7.5-7.5-.53-.53-7.5 7.5zm6.86-7.765V6.5h.75V1.25zM3.5 1.625h5.25v-.75H3.5z"></path></svg></a><div class="ab q"><p class="bf b dx dy dz ea eb ec ed ee ef eg du"><span><a class="bf b dx dy eh dz ea ei eb ec ej ek ee el em eg eo ep eq er es et eu ev ew ex ey ez fa fb fc fd bm fe ff" data-testid="headerSignUpButton" href="https://medium.com/m/signin?operation=register&redirect=https%3A%2F%2Fproandroiddev.com%2Fjetpack-compose-what-scaffold-have-and-have-not-f06492eeb63b&source=post_page---top_nav_layout_nav-----------------------global_nav-----------" rel="noopener follow">Sign up</a></span></p><div class="ax l"><p class="bf b dx dy dz ea eb ec ed ee ef eg du"><span><a class="af ag ah ai aj ak al am an ao ap aq ar as at" data-testid="headerSignInButton" href="https://medium.com/m/signin?operation=login&redirect=https%3A%2F%2Fproandroiddev.com%2Fjetpack-compose-what-scaffold-have-and-have-not-f06492eeb63b&source=post_page---top_nav_layout_nav-----------------------global_nav-----------" rel="noopener follow">Sign in</a></span></p></div></div></div><div class="p q r ab ac"><div class="ab q ae"><a class="af ag ah ai aj ak al am an ao ap aq ar as at ab" aria-label="Homepage" data-testid="headerMediumLogo" href="https://medium.com/?source=---top_nav_layout_nav----------------------------------" rel="noopener follow"><svg xmlns="http://www.w3.org/2000/svg" width="719" height="160" fill="none" viewBox="0 0 719 160" class="au av aw"><path fill="#242424" d="m174.104 9.734.215-.047V8.02H130.39L89.6 103.89 48.81 8.021H1.472v1.666l.212.047c8.018 1.81 12.09 4.509 12.09 14.242V137.93c0 9.734-4.087 12.433-12.106 14.243l-.212.047v1.671h32.118v-1.665l-.213-.048c-8.018-1.809-12.089-4.509-12.089-14.242V30.586l52.399 123.305h2.972l53.925-126.743V140.75c-.687 7.688-4.721 10.062-11.982 11.701l-.215.05v1.652h55.948v-1.652l-.215-.05c-7.269-1.639-11.4-4.013-12.087-11.701l-.037-116.774h.037c0-9.733 4.071-12.432 12.087-14.242m25.555 75.488c.915-20.474 8.268-35.252 20.606-35.507 3.806.063 6.998 1.312 9.479 3.714 5.272 5.118 7.751 15.812 7.368 31.793zm-.553 5.77h65.573v-.275c-.186-15.656-4.721-27.834-13.466-36.196-7.559-7.227-18.751-11.203-30.507-11.203h-.263c-6.101 0-13.584 1.48-18.909 4.16-6.061 2.807-11.407 7.003-15.855 12.511-7.161 8.874-11.499 20.866-12.554 34.343q-.05.606-.092 1.212a50 50 0 0 0-.065 1.151 85.807 85.807 0 0 0-.094 5.689c.71 30.524 17.198 54.917 46.483 54.917 25.705 0 40.675-18.791 44.407-44.013l-1.886-.664c-6.557 13.556-18.334 21.771-31.738 20.769-18.297-1.369-32.314-19.922-31.042-42.395m139.722 41.359c-2.151 5.101-6.639 7.908-12.653 7.908s-11.513-4.129-15.418-11.63c-4.197-8.053-6.405-19.436-6.405-32.92 0-28.067 8.729-46.22 22.24-46.22 5.657 0 10.111 2.807 12.236 7.704zm43.499 20.008c-8.019-1.897-12.089-4.722-12.089-14.951V1.309l-48.716 14.353v1.757l.299-.024c6.72-.543 11.278.386 13.925 2.83 2.072 1.915 3.082 4.853 3.082 8.987v18.66c-4.803-3.067-10.516-4.56-17.448-4.56-14.059 0-26.909 5.92-36.176 16.672-9.66 11.205-14.767 26.518-14.767 44.278-.003 31.72 15.612 53.039 38.851 53.039 13.595 0 24.533-7.449 29.54-20.013v16.865h43.711v-1.746zM424.1 19.819c0-9.904-7.468-17.374-17.375-17.374-9.859 0-17.573 7.632-17.573 17.374s7.721 17.374 17.573 17.374c9.907 0 17.375-7.47 17.375-17.374m11.499 132.546c-8.019-1.897-12.089-4.722-12.089-14.951h-.035V43.635l-43.714 12.551v1.705l.263.024c9.458.842 12.047 4.1 12.047 15.152v81.086h43.751v-1.746zm112.013 0c-8.018-1.897-12.089-4.722-12.089-14.951V43.635l-41.621 12.137v1.71l.246.026c7.733.813 9.967 4.257 9.967 15.36v59.279c-2.578 5.102-7.415 8.131-13.274 8.336-9.503 0-14.736-6.419-14.736-18.073V43.638l-43.714 12.55v1.703l.262.024c9.459.84 12.05 4.097 12.05 15.152v50.17a56.3 56.3 0 0 0 .91 10.444l.787 3.423c3.701 13.262 13.398 20.197 28.59 20.197 12.868 0 24.147-7.966 29.115-20.43v17.311h43.714v-1.747zm169.818 1.788v-1.749l-.213-.05c-8.7-2.006-12.089-5.789-12.089-13.49v-63.79c0-19.89-11.171-31.761-29.883-31.761-13.64 0-25.141 7.882-29.569 20.16-3.517-13.01-13.639-20.16-28.606-20.16-13.146 0-23.449 6.938-27.869 18.657V43.643L545.487 55.68v1.715l.263.024c9.345.829 12.047 4.181 12.047 14.95v81.784h40.787v-1.746l-.215-.053c-6.941-1.631-9.181-4.606-9.181-12.239V66.998c1.836-4.289 5.537-9.37 12.853-9.37 9.086 0 13.692 6.296 13.692 18.697v77.828h40.797v-1.746l-.215-.053c-6.94-1.631-9.18-4.606-9.18-12.239V75.066a42 42 0 0 0-.578-7.26c1.947-4.661 5.86-10.177 13.475-10.177 9.214 0 13.691 6.114 13.691 18.696v77.828z"></path></svg></a><div class="ax h"><div class="ab ay az ba bb q bc bd"><div class="bm" aria-hidden="false" aria-describedby="searchResults" aria-labelledby="searchResults"></div><div class="bn bo ab"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path fill="currentColor" fill-rule="evenodd" d="M4.092 11.06a6.95 6.95 0 1 1 13.9 0 6.95 6.95 0 0 1-13.9 0m6.95-8.05a8.05 8.05 0 1 0 5.13 14.26l3.75 3.75a.56.56 0 1 0 .79-.79l-3.73-3.73A8.05 8.05 0 0 0 11.042 3z" clip-rule="evenodd"></path></svg></div><input role="combobox" aria-controls="searchResults" aria-expanded="false" aria-label="search" data-testid="headerSearchInput" tabindex="0" class="ay be bf bg z bh bi bj bk bl" placeholder="Search" value=""/></div></div></div><div class="h k w fg fh"><div class="fi ab"><span><a class="af ag ah ai aj ak al am an ao ap aq ar as at" data-testid="headerWriteButton" href="https://medium.com/m/signin?operation=register&redirect=https%3A%2F%2Fmedium.com%2Fnew-story&source=---top_nav_layout_nav-----------------------new_post_topnav-----------" rel="noopener follow"><div class="bf b bg z du fj fk ab q fl fm"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24" aria-label="Write"><path fill="currentColor" d="M14 4a.5.5 0 0 0 0-1zm7 6a.5.5 0 0 0-1 0zm-7-7H4v1h10zM3 4v16h1V4zm1 17h16v-1H4zm17-1V10h-1v10zm-1 1a1 1 0 0 0 1-1h-1zM3 20a1 1 0 0 0 1 1v-1zM4 3a1 1 0 0 0-1 1h1z"></path><path stroke="currentColor" d="m17.5 4.5-8.458 8.458a.25.25 0 0 0-.06.098l-.824 2.47a.25.25 0 0 0 .316.316l2.47-.823a.25.25 0 0 0 .098-.06L19.5 6.5m-2-2 2.323-2.323a.25.25 0 0 1 .354 0l1.646 1.646a.25.25 0 0 1 0 .354L19.5 6.5m-2-2 2 2"></path></svg><div class="dt l">Write</div></div></a></span></div></div><div class="k j i d"><div class="fi ab"><a class="af ag ah ai aj ak al am an ao ap aq ar as at" data-testid="headerSearchButton" href="https://medium.com/search?source=---top_nav_layout_nav----------------------------------" rel="noopener follow"><div class="bf b bg z du fj fk ab q fl fm"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24" aria-label="Search"><path fill="currentColor" fill-rule="evenodd" d="M4.092 11.06a6.95 6.95 0 1 1 13.9 0 6.95 6.95 0 0 1-13.9 0m6.95-8.05a8.05 8.05 0 1 0 5.13 14.26l3.75 3.75a.56.56 0 1 0 .79-.79l-3.73-3.73A8.05 8.05 0 0 0 11.042 3z" clip-rule="evenodd"></path></svg></div></a></div></div><div class="fi h k j"><div class="ab q"><p class="bf b dx dy dz ea eb ec ed ee ef eg du"><span><a class="bf b dx dy eh dz ea ei eb ec ej ek ee el em eg eo ep eq er es et eu ev ew ex ey ez fa fb fc fd bm fe ff" data-testid="headerSignUpButton" href="https://medium.com/m/signin?operation=register&redirect=https%3A%2F%2Fproandroiddev.com%2Fjetpack-compose-what-scaffold-have-and-have-not-f06492eeb63b&source=post_page---top_nav_layout_nav-----------------------global_nav-----------" rel="noopener follow">Sign up</a></span></p><div class="ax l"><p class="bf b dx dy dz ea eb ec ed ee ef eg du"><span><a class="af ag ah ai aj ak al am an ao ap aq ar as at" data-testid="headerSignInButton" href="https://medium.com/m/signin?operation=login&redirect=https%3A%2F%2Fproandroiddev.com%2Fjetpack-compose-what-scaffold-have-and-have-not-f06492eeb63b&source=post_page---top_nav_layout_nav-----------------------global_nav-----------" rel="noopener follow">Sign in</a></span></p></div></div></div><div class="l" aria-hidden="false"><button class="ay fn am ab q ao fo fp fq" aria-label="user options menu" data-testid="headerUserIcon"><div class="l fj"><img alt="" class="l fd by bz ca cx" src="https://miro.medium.com/v2/resize:fill:64:64/1*dmbNkD5D-u45r44go_cf0g.png" width="32" height="32" loading="lazy" role="presentation"/><div class="fr by l bz ca fs n ay ft"></div></div></button></div></div></div><div class="l"><div class="fu fv fw fx fy l"><div class="ab cb"><div class="ci bh fz ga gb gc"></div></div><article><div class="l"><div class="l"><span class="l"></span><section><div><div class="fs gi gj gk gl gm"></div><div class="gn go gp gq gr"><div class="ab cb"><div class="ci bh fz ga gb gc"><div><h1 id="a5cd" class="pw-post-title gs gt gu bf gv gw gx gy gz ha hb hc hd he hf hg hh hi hj hk hl hm hn ho hp hq bk" data-testid="storyTitle">Jetpack compose: What <code class="cx hr hs ht hu b">Scaffold</code> have and have not</h1></div><div><h2 id="7edd" class="pw-subtitle-paragraph hv gt gu bf b hw hx hy hz ia ib ic id ie if ig ih ii ij ik cq du">Unlocking the Power of Scaffold: What It Can and Can’t Do in Jetpack Compose</h2><div><div class="speechify-ignore ab cp"><div class="speechify-ignore bh l"><div class="il im in io ip ab"><div><div class="ab iq"><div><div class="bm" aria-hidden="false"><a href="https://medium.com/@dobri.kostadinov?source=post_page---byline--f06492eeb63b--------------------------------" rel="noopener follow"><div class="l ir is by it iu"><div class="l fj"><img alt="Dobri Kostadinov" class="l fd by dd de cx" src="https://miro.medium.com/v2/resize:fill:88:88/1*PDWUz7RmoqP9kmFnZzGPUg.jpeg" width="44" height="44" loading="lazy" data-testid="authorPhoto"/><div class="iv by l dd de fs n iw ft"></div></div></div></a></div></div><div class="ix ab fj"><div><div class="bm" aria-hidden="false"><a href="https://proandroiddev.com/?source=post_page---byline--f06492eeb63b--------------------------------" rel="noopener ugc nofollow"><div class="l iy iz by it ja"><div class="l fj"><img alt="ProAndroidDev" class="l fd by br jb cx" src="https://miro.medium.com/v2/resize:fill:48:48/1*XVtdl45m8YaYrPI4buJ5yQ.png" width="24" height="24" loading="lazy" data-testid="publicationPhoto"/><div class="iv by l br jb fs n iw ft"></div></div></div></a></div></div></div></div></div><div class="bn bh l"><div class="ab"><div style="flex:1"><span class="bf b bg z bk"><div class="jc ab q"><div class="ab q jd"><div class="ab q"><div><div class="bm" aria-hidden="false"><p class="bf b je jf bk"><a class="af ag ah ai aj ak al am an ao ap aq ar jg" data-testid="authorName" href="https://medium.com/@dobri.kostadinov?source=post_page---byline--f06492eeb63b--------------------------------" rel="noopener follow">Dobri Kostadinov</a></p></div></div></div><span class="jh ji" aria-hidden="true"><span class="bf b bg z du">·</span></span><p class="bf b je jf du"><span><a class="jj jk ah ai aj ak al am an ao ap aq ar ex jl jm" href="https://medium.com/m/signin?actionUrl=https%3A%2F%2Fmedium.com%2F_%2Fsubscribe%2Fuser%2Fcb954442a18e&operation=register&redirect=https%3A%2F%2Fproandroiddev.com%2Fjetpack-compose-what-scaffold-have-and-have-not-f06492eeb63b&user=Dobri+Kostadinov&userId=cb954442a18e&source=post_page-cb954442a18e--byline--f06492eeb63b---------------------post_header-----------" rel="noopener follow">Follow</a></span></p></div></div></span></div></div><div class="l jn"><span class="bf b bg z du"><div class="ab cn jo jp jq"><div class="jr js ab"><div class="bf b bg z du ab jt"><span class="ju l jn">Published in</span><div><div class="l" aria-hidden="false"><a class="af ag ah ai aj ak al am an ao ap aq ar jg ab q" data-testid="publicationName" href="https://proandroiddev.com/?source=post_page---byline--f06492eeb63b--------------------------------" rel="noopener ugc nofollow"><p class="bf b bg z jv jw jx jy jz ka kb kc bk">ProAndroidDev</p></a></div></div></div><div class="h k"><span class="jh ji" aria-hidden="true"><span class="bf b bg z du">·</span></span></div></div><span class="bf b bg z du"><div class="ab ae"><span data-testid="storyReadTime">5 min read</span><div class="kd ke l" aria-hidden="true"><span class="l" aria-hidden="true"><span class="bf b bg z du">·</span></span></div><span data-testid="storyPublishDate">Oct 8, 2024</span></div></span></div></span></div></div></div><div class="ab cp kf kg kh ki kj kk kl km kn ko kp kq kr ks kt ku"><div class="h k w fg fh q"><div class="lk l"><div class="ab q ll lm"><div class="pw-multi-vote-icon fj ju ln lo lp"><span><a class="af ag ah ai aj ak al am an ao ap aq ar as at" data-testid="headerClapButton" href="https://medium.com/m/signin?actionUrl=https%3A%2F%2Fmedium.com%2F_%2Fvote%2Fproandroiddev%2Ff06492eeb63b&operation=register&redirect=https%3A%2F%2Fproandroiddev.com%2Fjetpack-compose-what-scaffold-have-and-have-not-f06492eeb63b&user=Dobri+Kostadinov&userId=cb954442a18e&source=---header_actions--f06492eeb63b---------------------clap_footer-----------" rel="noopener follow"><div><div class="bm" aria-hidden="false"><div class="lq ao lr ls lt lu am lv lw lx lp"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" aria-label="clap"><path fill-rule="evenodd" d="M11.37.828 12 3.282l.63-2.454zM13.916 3.953l1.523-2.112-1.184-.39zM8.589 1.84l1.522 2.112-.337-2.501zM18.523 18.92c-.86.86-1.75 1.246-2.62 1.33a6 6 0 0 0 .407-.372c2.388-2.389 2.86-4.951 1.399-7.623l-.912-1.603-.79-1.672c-.26-.56-.194-.98.203-1.288a.7.7 0 0 1 .546-.132c.283.046.546.231.728.5l2.363 4.157c.976 1.624 1.141 4.237-1.324 6.702m-10.999-.438L3.37 14.328a.828.828 0 0 1 .585-1.408.83.83 0 0 1 .585.242l2.158 2.157a.365.365 0 0 0 .516-.516l-2.157-2.158-1.449-1.449a.826.826 0 0 1 1.167-1.17l3.438 3.44a.363.363 0 0 0 .516 0 .364.364 0 0 0 0-.516L5.293 9.513l-.97-.97a.826.826 0 0 1 0-1.166.84.84 0 0 1 1.167 0l.97.968 3.437 3.436a.36.36 0 0 0 .517 0 .366.366 0 0 0 0-.516L6.977 7.83a.82.82 0 0 1-.241-.584.82.82 0 0 1 .824-.826c.219 0 .43.087.584.242l5.787 5.787a.366.366 0 0 0 .587-.415l-1.117-2.363c-.26-.56-.194-.98.204-1.289a.7.7 0 0 1 .546-.132c.283.046.545.232.727.501l2.193 3.86c1.302 2.38.883 4.59-1.277 6.75-1.156 1.156-2.602 1.627-4.19 1.367-1.418-.236-2.866-1.033-4.079-2.246M10.75 5.971l2.12 2.12c-.41.502-.465 1.17-.128 1.89l.22.465-3.523-3.523a.8.8 0 0 1-.097-.368c0-.22.086-.428.241-.584a.847.847 0 0 1 1.167 0m7.355 1.705c-.31-.461-.746-.758-1.23-.837a1.44 1.44 0 0 0-1.11.275c-.312.24-.505.543-.59.881a1.74 1.74 0 0 0-.906-.465 1.47 1.47 0 0 0-.82.106l-2.182-2.182a1.56 1.56 0 0 0-2.2 0 1.54 1.54 0 0 0-.396.701 1.56 1.56 0 0 0-2.21-.01 1.55 1.55 0 0 0-.416.753c-.624-.624-1.649-.624-2.237-.037a1.557 1.557 0 0 0 0 2.2c-.239.1-.501.238-.715.453a1.56 1.56 0 0 0 0 2.2l.516.515a1.556 1.556 0 0 0-.753 2.615L7.01 19c1.32 1.319 2.909 2.189 4.475 2.449q.482.08.971.08c.85 0 1.653-.198 2.393-.579.231.033.46.054.686.054 1.266 0 2.457-.52 3.505-1.567 2.763-2.763 2.552-5.734 1.439-7.586z" clip-rule="evenodd"></path></svg></div></div></div></a></span></div><div class="pw-multi-vote-count l ly lz ma mb mc md me"><p class="bf b dv z du"><span class="mf">--</span></p></div></div></div><div><div class="bm" aria-hidden="false"><button class="ao lq mi mj ab q fk mk ml" aria-label="responses"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" class="mh"><path d="M18.006 16.803c1.533-1.456 2.234-3.325 2.234-5.321C20.24 7.357 16.709 4 12.191 4S4 7.357 4 11.482c0 4.126 3.674 7.482 8.191 7.482.817 0 1.622-.111 2.393-.327.231.2.48.391.744.559 1.06.693 2.203 1.044 3.399 1.044.224-.008.4-.112.486-.287a.49.49 0 0 0-.042-.518c-.495-.67-.845-1.364-1.04-2.057a4 4 0 0 1-.125-.598zm-3.122 1.055-.067-.223-.315.096a8 8 0 0 1-2.311.338c-4.023 0-7.292-2.955-7.292-6.587 0-3.633 3.269-6.588 7.292-6.588 4.014 0 7.112 2.958 7.112 6.593 0 1.794-.608 3.469-2.027 4.72l-.195.168v.255c0 .056 0 .151.016.295.025.231.081.478.154.733.154.558.398 1.117.722 1.659a5.3 5.3 0 0 1-2.165-.845c-.276-.176-.714-.383-.941-.59z"></path></svg><p class="bf b dv z du"><span class="pw-responses-count mg mh">2</span></p></button></div></div></div><div class="ab q kv kw kx ky kz la lb lc ld le lf lg lh li lj"><div class="mm k j i d"></div><div class="h k"><div><div class="bm" aria-hidden="false"><span><a class="af ag ah ai aj ak al am an ao ap aq ar as at" data-testid="headerBookmarkButton" href="https://medium.com/m/signin?actionUrl=https%3A%2F%2Fmedium.com%2F_%2Fbookmark%2Fp%2Ff06492eeb63b&operation=register&redirect=https%3A%2F%2Fproandroiddev.com%2Fjetpack-compose-what-scaffold-have-and-have-not-f06492eeb63b&source=---header_actions--f06492eeb63b---------------------bookmark_footer-----------" rel="noopener follow"><svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" fill="none" viewBox="0 0 25 25" class="du mn" aria-label="Add to list bookmark button"><path fill="currentColor" d="M18 2.5a.5.5 0 0 1 1 0V5h2.5a.5.5 0 0 1 0 1H19v2.5a.5.5 0 1 1-1 0V6h-2.5a.5.5 0 0 1 0-1H18zM7 7a1 1 0 0 1 1-1h3.5a.5.5 0 0 0 0-1H8a2 2 0 0 0-2 2v14a.5.5 0 0 0 .805.396L12.5 17l5.695 4.396A.5.5 0 0 0 19 21v-8.5a.5.5 0 0 0-1 0v7.485l-5.195-4.012a.5.5 0 0 0-.61 0L7 19.985z"></path></svg></a></span></div></div></div><div class="fd mo cn"><div class="l ae"><div class="ab cb"><div class="mp mq mr ms mt mu ci bh"><div class="ab"><div class="bm bh" aria-hidden="false"><div><div class="bm" aria-hidden="false"><button aria-label="Listen" data-testid="audioPlayButton" class="af fk ah ai aj ak al mv an ao ap ex mw mx ml my mz na nb nc s nd ne nf ng nh ni nj u nk nl nm"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path fill="currentColor" fill-rule="evenodd" d="M3 12a9 9 0 1 1 18 0 9 9 0 0 1-18 0m9-10C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2m3.376 10.416-4.599 3.066a.5.5 0 0 1-.777-.416V8.934a.5.5 0 0 1 .777-.416l4.599 3.066a.5.5 0 0 1 0 .832" clip-rule="evenodd"></path></svg><div class="j i d"><p class="bf b bg z du">Listen</p></div></button></div></div></div></div></div></div></div></div><div class="bm" aria-hidden="false" aria-describedby="postFooterSocialMenu" aria-labelledby="postFooterSocialMenu"><div><div class="bm" aria-hidden="false"><button aria-controls="postFooterSocialMenu" aria-expanded="false" aria-label="Share Post" data-testid="headerSocialShareButton" class="af fk ah ai aj ak al mv an ao ap ex mw mx ml my mz na nb nc s nd ne nf ng nh ni nj u nk nl nm"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path fill="currentColor" fill-rule="evenodd" d="M15.218 4.931a.4.4 0 0 1-.118.132l.012.006a.45.45 0 0 1-.292.074.5.5 0 0 1-.3-.13l-2.02-2.02v7.07c0 .28-.23.5-.5.5s-.5-.22-.5-.5v-7.04l-2 2a.45.45 0 0 1-.57.04h-.02a.4.4 0 0 1-.16-.3.4.4 0 0 1 .1-.32l2.8-2.8a.5.5 0 0 1 .7 0l2.8 2.79a.42.42 0 0 1 .068.498m-.106.138.008.004v-.01zM16 7.063h1.5a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2h-11c-1.1 0-2-.9-2-2v-10a2 2 0 0 1 2-2H8a.5.5 0 0 1 .35.15.5.5 0 0 1 .15.35.5.5 0 0 1-.15.35.5.5 0 0 1-.35.15H6.4c-.5 0-.9.4-.9.9v10.2a.9.9 0 0 0 .9.9h11.2c.5 0 .9-.4.9-.9v-10.2c0-.5-.4-.9-.9-.9H16a.5.5 0 0 1 0-1" clip-rule="evenodd"></path></svg><div class="j i d"><p class="bf b bg z du">Share</p></div></button></div></div></div></div></div></div></div></div></div><figure class="nq nr ns nt nu nv nn no paragraph-image"><div role="button" tabindex="0" class="nw nx fj ny bh nz"><div class="nn no np"><picture><source srcSet="https://miro.medium.com/v2/resize:fit:640/format:webp/1*J1YDs7Gc77TshLLZvlZ1Xw.png 640w, https://miro.medium.com/v2/resize:fit:720/format:webp/1*J1YDs7Gc77TshLLZvlZ1Xw.png 720w, https://miro.medium.com/v2/resize:fit:750/format:webp/1*J1YDs7Gc77TshLLZvlZ1Xw.png 750w, https://miro.medium.com/v2/resize:fit:786/format:webp/1*J1YDs7Gc77TshLLZvlZ1Xw.png 786w, https://miro.medium.com/v2/resize:fit:828/format:webp/1*J1YDs7Gc77TshLLZvlZ1Xw.png 828w, https://miro.medium.com/v2/resize:fit:1100/format:webp/1*J1YDs7Gc77TshLLZvlZ1Xw.png 1100w, https://miro.medium.com/v2/resize:fit:1400/format:webp/1*J1YDs7Gc77TshLLZvlZ1Xw.png 1400w" sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" type="image/webp"/><source data-testid="og" srcSet="https://miro.medium.com/v2/resize:fit:640/1*J1YDs7Gc77TshLLZvlZ1Xw.png 640w, https://miro.medium.com/v2/resize:fit:720/1*J1YDs7Gc77TshLLZvlZ1Xw.png 720w, https://miro.medium.com/v2/resize:fit:750/1*J1YDs7Gc77TshLLZvlZ1Xw.png 750w, https://miro.medium.com/v2/resize:fit:786/1*J1YDs7Gc77TshLLZvlZ1Xw.png 786w, https://miro.medium.com/v2/resize:fit:828/1*J1YDs7Gc77TshLLZvlZ1Xw.png 828w, https://miro.medium.com/v2/resize:fit:1100/1*J1YDs7Gc77TshLLZvlZ1Xw.png 1100w, https://miro.medium.com/v2/resize:fit:1400/1*J1YDs7Gc77TshLLZvlZ1Xw.png 1400w" sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px"/><img alt="" class="bh mu oa c" width="700" height="700" loading="eager" role="presentation"/></picture></div></div><figcaption class="ob ff oc nn no od oe bf b bg z du">This image was generated with the assistance of AI</figcaption></figure><h1 id="b694" class="of og gu bf oh oi oj hy ok ol om ib on oo op oq or os ot ou ov ow ox oy oz pa bk">Introduction</h1><p id="5745" class="pw-post-body-paragraph pb pc gu pd b hw pe pf pg hz ph pi pj pk pl pm pn po pp pq pr ps pt pu pv pw gn bk">Jetpack Compose has revolutionized Android UI development by providing a declarative and reactive approach to building user interfaces. One of its most powerful and commonly used layout components is <code class="cx hr hs ht hu b">Scaffold</code>. It simplifies setting up standard app layouts by offering ready-to-use slots for placing items like a <code class="cx hr hs ht hu b">TopBar</code>, <code class="cx hr hs ht hu b">BottomBar</code>, <code class="cx hr hs ht hu b">FloatingActionButton</code>, and more.</p><p id="3bc0" class="pw-post-body-paragraph pb pc gu pd b hw px pf pg hz py pi pj pk pz pm pn po qa pq pr ps qb pu pv pw gn bk">In this article, we will explore what <code class="cx hr hs ht hu b">Scaffold</code> is, what it provides, and also what it doesn’t, helping you understand how and when to use it effectively in your Jetpack Compose projects.</p><h1 id="8ac7" class="of og gu bf oh oi oj hy ok ol om ib on oo op oq or os ot ou ov ow ox oy oz pa bk">What is Scaffold in Jetpack Compose?</h1><p id="bee7" class="pw-post-body-paragraph pb pc gu pd b hw pe pf pg hz ph pi pj pk pl pm pn po pp pq pr ps pt pu pv pw gn bk">At its core, <code class="cx hr hs ht hu b">Scaffold</code> is a composable that provides a structured layout, designed to handle the basic layout patterns that are commonly used in Android apps. It allows developers to place key components such as an app bar, a bottom navigation bar, and floating action buttons with ease, while also giving full control over the main content of the screen.</p><p id="7f0b" class="pw-post-body-paragraph pb pc gu pd b hw px pf pg hz py pi pj pk pz pm pn po qa pq pr ps qb pu pv pw gn bk">Here’s a breakdown of the main components that <code class="cx hr hs ht hu b">Scaffold</code> provides:</p><ul class=""><li id="6ff7" class="pb pc gu pd b hw px pf pg hz py pi pj pk pz pm pn po qa pq pr ps qb pu pv pw qc qd qe bk"><strong class="pd gv">TopBar</strong>: For placing a toolbar or custom top app bar.</li><li id="1acb" class="pb pc gu pd b hw qf pf pg hz qg pi pj pk qh pm pn po qi pq pr ps qj pu pv pw qc qd qe bk"><strong class="pd gv">BottomBar</strong>: For a bottom navigation bar or similar UI elements.</li><li id="6b78" class="pb pc gu pd b hw qf pf pg hz qg pi pj pk qh pm pn po qi pq pr ps qj pu pv pw qc qd qe bk"><strong class="pd gv">FloatingActionButton (FAB)</strong>: For an action button that floats above the content.</li><li id="578f" class="pb pc gu pd b hw qf pf pg hz qg pi pj pk qh pm pn po qi pq pr ps qj pu pv pw qc qd qe bk"><strong class="pd gv">Drawer</strong>: To add navigation drawers.</li><li id="5086" class="pb pc gu pd b hw qf pf pg hz qg pi pj pk qh pm pn po qi pq pr ps qj pu pv pw qc qd qe bk"><strong class="pd gv">Snackbar</strong>: For showing snackbars when user feedback is required.</li><li id="d13a" class="pb pc gu pd b hw qf pf pg hz qg pi pj pk qh pm pn po qi pq pr ps qj pu pv pw qc qd qe bk"><strong class="pd gv">Content</strong>: The main area where most of the app’s UI will live.</li></ul><p id="280b" class="pw-post-body-paragraph pb pc gu pd b hw px pf pg hz py pi pj pk pz pm pn po qa pq pr ps qb pu pv pw gn bk">Let’s dive deeper into these individual capabilities.</p><h1 id="f8f5" class="of og gu bf oh oi oj hy ok ol om ib on oo op oq or os ot ou ov ow ox oy oz pa bk">Capabilities of Scaffold</h1><h2 id="16eb" class="qk og gu bf oh ql qm dy ok qn qo ea on pk qp qq qr po qs qt qu ps qv qw qx qy bk">TopBar</h2><p id="71e0" class="pw-post-body-paragraph pb pc gu pd b hw pe pf pg hz ph pi pj pk pl pm pn po pp pq pr ps pt pu pv pw gn bk">The <code class="cx hr hs ht hu b">TopBar</code> slot is a convenient place to add a <code class="cx hr hs ht hu b">TopAppBar</code>, which is commonly used to display the app’s title, navigation icons, and actions. Here’s how you can add a <code class="cx hr hs ht hu b">TopAppBar</code> to a Scaffold:</p><pre class="nq nr ns nt nu qz hu ra bp rb bb bk"><span id="bf5b" class="rc og gu hu b bg rd re l rf rg">Scaffold(<br/> topBar = {<br/> TopAppBar(<br/> title = { Text("My App") },<br/> navigationIcon = {<br/> IconButton(onClick = { /* Handle navigation */ }) {<br/> Icon(Icons.Filled.Menu, contentDescription = "Menu")<br/> }<br/> },<br/> actions = {<br/> IconButton(onClick = { /* Handle action */ }) {<br/> Icon(Icons.Filled.Favorite, contentDescription = "Favorite")<br/> }<br/> }<br/> )<br/> },<br/> content = { /* Content here */ }<br/>)</span></pre><h1 id="4936" class="of og gu bf oh oi oj hy ok ol om ib on oo op oq or os ot ou ov ow ox oy oz pa bk">BottomBar</h1><p id="282d" class="pw-post-body-paragraph pb pc gu pd b hw pe pf pg hz ph pi pj pk pl pm pn po pp pq pr ps pt pu pv pw gn bk">A <code class="cx hr hs ht hu b">BottomBar</code> can be used for navigation or displaying key actions. Below is an example of how to add a simple <code class="cx hr hs ht hu b">BottomAppBar</code> inside the <code class="cx hr hs ht hu b">Scaffold</code>:</p><pre class="nq nr ns nt nu qz hu ra bp rb bb bk"><span id="e534" class="rc og gu hu b bg rd re l rf rg">Scaffold(<br/> bottomBar = {<br/> BottomAppBar {<br/> IconButton(onClick = { /* Handle home */ }) {<br/> Icon(Icons.Filled.Home, contentDescription = "Home")<br/> }<br/> Spacer(Modifier.weight(1f, true)) // Push the next icon to the end<br/> IconButton(onClick = { /* Handle profile */ }) {<br/> Icon(Icons.Filled.Person, contentDescription = "Profile")<br/> }<br/> }<br/> },<br/> content = { /* Content here */ }<br/>)</span></pre><h1 id="7d88" class="of og gu bf oh oi oj hy ok ol om ib on oo op oq or os ot ou ov ow ox oy oz pa bk">FloatingActionButton (FAB)</h1><p id="8b00" class="pw-post-body-paragraph pb pc gu pd b hw pe pf pg hz ph pi pj pk pl pm pn po pp pq pr ps pt pu pv pw gn bk">One of the most iconic elements in Android apps, the FAB, is easy to integrate with <code class="cx hr hs ht hu b">Scaffold</code>:</p><pre class="nq nr ns nt nu qz hu ra bp rb bb bk"><span id="29f0" class="rc og gu hu b bg rd re l rf rg">Scaffold(<br/> floatingActionButton = {<br/> FloatingActionButton(onClick = { /* Handle FAB click */ }) {<br/> Icon(Icons.Filled.Add, contentDescription = "Add")<br/> }<br/> },<br/> content = { /* Content here */ }<br/>)</span></pre><h1 id="6beb" class="of og gu bf oh oi oj hy ok ol om ib on oo op oq or os ot ou ov ow ox oy oz pa bk">DrawerContent</h1><p id="dbb2" class="pw-post-body-paragraph pb pc gu pd b hw pe pf pg hz ph pi pj pk pl pm pn po pp pq pr ps pt pu pv pw gn bk">If you need a navigation drawer, <code class="cx hr hs ht hu b">Scaffold</code> makes it easy to add one using the <code class="cx hr hs ht hu b">drawerContent</code> parameter. This allows users to swipe from the side to reveal a drawer with navigation or other options.</p><pre class="nq nr ns nt nu qz hu ra bp rb bb bk"><span id="926c" class="rc og gu hu b bg rd re l rf rg">Scaffold(<br/> drawerContent = {<br/> Column {<br/> Text("Home")<br/> Text("Profile")<br/> Text("Settings")<br/> }<br/> },<br/> content = { /* Content here */ }<br/>)</span></pre><h1 id="70b9" class="of og gu bf oh oi oj hy ok ol om ib on oo op oq or os ot ou ov ow ox oy oz pa bk">Snackbar</h1><p id="6042" class="pw-post-body-paragraph pb pc gu pd b hw pe pf pg hz ph pi pj pk pl pm pn po pp pq pr ps pt pu pv pw gn bk">Stay tuned for upcoming articles where I’ll dive into customizing snackbars. For now, let’s keep it simple.</p><p id="5679" class="pw-post-body-paragraph pb pc gu pd b hw px pf pg hz py pi pj pk pz pm pn po qa pq pr ps qb pu pv pw gn bk">Snackbars are essential for showing brief messages to the user. You can trigger them using the <code class="cx hr hs ht hu b">ScaffoldState</code>, which is tied to the <code class="cx hr hs ht hu b">Scaffold</code>:</p><pre class="nq nr ns nt nu qz hu ra bp rb bb bk"><span id="55f2" class="rc og gu hu b bg rd re l rf rg">val scaffoldState = rememberScaffoldState()<br/>val scope = rememberCoroutineScope()<br/><br/>Scaffold(<br/> scaffoldState = scaffoldState,<br/> content = { /* Content here */ },<br/> floatingActionButton = {<br/> FloatingActionButton(onClick = {<br/> scope.launch {<br/> scaffoldState.snackbarHostState.showSnackbar("This is a Snackbar")<br/> }<br/> }) {<br/> Icon(Icons.Filled.Info, contentDescription = "Show Snackbar")<br/> }<br/> }<br/>)</span></pre><h1 id="a4cd" class="of og gu bf oh oi oj hy ok ol om ib on oo op oq or os ot ou ov ow ox oy oz pa bk">Content Slot</h1><p id="b419" class="pw-post-body-paragraph pb pc gu pd b hw pe pf pg hz ph pi pj pk pl pm pn po pp pq pr ps pt pu pv pw gn bk">The <code class="cx hr hs ht hu b">content</code> slot is where most of the app’s layout will reside. This is where you define your custom UI, such as a <code class="cx hr hs ht hu b">LazyColumn</code>, <code class="cx hr hs ht hu b">Box</code>, or any other Compose component.</p><pre class="nq nr ns nt nu qz hu ra bp rb bb bk"><span id="7cf5" class="rc og gu hu b bg rd re l rf rg">Scaffold(<br/> topBar = { /* TopAppBar */ },<br/> content = { padding -><br/> LazyColumn(<br/> contentPadding = padding<br/> ) {<br/> items(100) {<br/> Text("Item #$it", Modifier.padding(16.dp))<br/> }<br/> }<br/> }<br/>)</span></pre><h1 id="3f96" class="of og gu bf oh oi oj hy ok ol om ib on oo op oq or os ot ou ov ow ox oy oz pa bk">What Scaffold Does Not Have</h1><p id="d29d" class="pw-post-body-paragraph pb pc gu pd b hw pe pf pg hz ph pi pj pk pl pm pn po pp pq pr ps pt pu pv pw gn bk">While <code class="cx hr hs ht hu b">Scaffold</code> provides many useful features, it’s not a one-size-fits-all solution. Here are a few things it doesn’t provide:</p><h2 id="7dff" class="qk og gu bf oh ql qm dy ok qn qo ea on pk qp qq qr po qs qt qu ps qv qw qx qy bk">Multi-layered Layouts</h2><p id="71f4" class="pw-post-body-paragraph pb pc gu pd b hw pe pf pg hz ph pi pj pk pl pm pn po pp pq pr ps pt pu pv pw gn bk"><code class="cx hr hs ht hu b">Scaffold</code> works well for simple layouts, but if your UI requires complex nested scaffolds or multiple layers of drawers or toolbars, you’ll need to manage those layouts manually.</p><h2 id="3eae" class="qk og gu bf oh ql qm dy ok qn qo ea on pk qp qq qr po qs qt qu ps qv qw qx qy bk">Custom Animations</h2><p id="801e" class="pw-post-body-paragraph pb pc gu pd b hw pe pf pg hz ph pi pj pk pl pm pn po pp pq pr ps pt pu pv pw gn bk">While Compose supports animations, <code class="cx hr hs ht hu b">Scaffold</code> doesn’t provide built-in transitions for elements like showing and hiding the FAB or BottomBar. You’ll need to manually manage these animations.</p><h2 id="fae3" class="qk og gu bf oh ql qm dy ok qn qo ea on pk qp qq qr po qs qt qu ps qv qw qx qy bk">Built-in State Management</h2><p id="4ad9" class="pw-post-body-paragraph pb pc gu pd b hw pe pf pg hz ph pi pj pk pl pm pn po pp pq pr ps pt pu pv pw gn bk"><code class="cx hr hs ht hu b">Scaffold</code> focuses on UI structure, and it doesn’t manage state like whether a drawer is open or closed. That’s up to you to manage using <code class="cx hr hs ht hu b">ScaffoldState</code> and <code class="cx hr hs ht hu b">rememberCoroutineScope</code>.</p><h2 id="760c" class="qk og gu bf oh ql qm dy ok qn qo ea on pk qp qq qr po qs qt qu ps qv qw qx qy bk">Advanced Drawer Behavior</h2><p id="e04b" class="pw-post-body-paragraph pb pc gu pd b hw pe pf pg hz ph pi pj pk pl pm pn po pp pq pr ps pt pu pv pw gn bk">For more advanced navigation drawer patterns (like multi-step drawers), you’ll need to implement custom logic or use other Compose features to handle the complexity.</p><h1 id="4dd8" class="of og gu bf oh oi oj hy ok ol om ib on oo op oq or os ot ou ov ow ox oy oz pa bk">Combining Scaffold with Other Compose Components</h1><p id="9e2e" class="pw-post-body-paragraph pb pc gu pd b hw pe pf pg hz ph pi pj pk pl pm pn po pp pq pr ps pt pu pv pw gn bk"><code class="cx hr hs ht hu b">Scaffold</code> is highly flexible, and one of its strengths is its ability to integrate seamlessly with other composables. Here’s an example of how you can combine <code class="cx hr hs ht hu b">Scaffold</code> with a <code class="cx hr hs ht hu b">LazyColumn</code> to create a scrollable list:</p><pre class="nq nr ns nt nu qz hu ra bp rb bb bk"><span id="d50e" class="rc og gu hu b bg rd re l rf rg">Scaffold(<br/> topBar = { /* TopAppBar */ },<br/> content = { padding -><br/> LazyColumn(<br/> contentPadding = padding<br/> ) {<br/> items(50) { index -><br/> Text("Item $index", Modifier.padding(16.dp))<br/> }<br/> }<br/> }<br/>)</span></pre><p id="6572" class="pw-post-body-paragraph pb pc gu pd b hw px pf pg hz py pi pj pk pz pm pn po qa pq pr ps qb pu pv pw gn bk">You can also easily integrate bottom sheets, dialogs, and more into your <code class="cx hr hs ht hu b">Scaffold</code> layout, making it the perfect foundation for your app’s UI.</p><h1 id="8d9f" class="of og gu bf oh oi oj hy ok ol om ib on oo op oq or os ot ou ov ow ox oy oz pa bk">Performance and Usability Considerations</h1><p id="6d55" class="pw-post-body-paragraph pb pc gu pd b hw pe pf pg hz ph pi pj pk pl pm pn po pp pq pr ps pt pu pv pw gn bk">When working with <code class="cx hr hs ht hu b">Scaffold</code>, it's important to be aware of potential performance issues. Overusing nesting or placing too many heavy elements inside a <code class="cx hr hs ht hu b">Scaffold</code> can slow down your app, especially on low-end devices. Keep the layout lightweight and avoid unnecessary recompositions to ensure smooth performance.</p><h1 id="67ba" class="of og gu bf oh oi oj hy ok ol om ib on oo op oq or os ot ou ov ow ox oy oz pa bk">Conclusion</h1><p id="e098" class="pw-post-body-paragraph pb pc gu pd b hw pe pf pg hz ph pi pj pk pl pm pn po pp pq pr ps pt pu pv pw gn bk"><code class="cx hr hs ht hu b">Scaffold</code> in Jetpack Compose is a powerful and flexible tool for laying out the basic structure of your Android UI. It simplifies the integration of standard components like app bars, FABs, and drawers, while also providing a customizable content area where your app’s main interface will live.</p><p id="34aa" class="pw-post-body-paragraph pb pc gu pd b hw px pf pg hz py pi pj pk pz pm pn po qa pq pr ps qb pu pv pw gn bk">However, it’s not without limitations. More complex layouts and advanced animations will require additional handling. But when used correctly, <code class="cx hr hs ht hu b">Scaffold</code> can help you rapidly develop polished and intuitive interfaces.</p><p id="471c" class="pw-post-body-paragraph pb pc gu pd b hw px pf pg hz py pi pj pk pz pm pn po qa pq pr ps qb pu pv pw gn bk">Explore the power of <code class="cx hr hs ht hu b">Scaffold</code> in your next Jetpack Compose project and build layouts with ease!</p><figure class="nq nr ns nt nu nv nn no paragraph-image"><div role="button" tabindex="0" class="nw nx fj ny bh nz"><div class="nn no rh"><picture><source srcSet="https://miro.medium.com/v2/resize:fit:640/format:webp/1*WbNLOnNTJQ8Q9_uPZZb09Q.png 640w, https://miro.medium.com/v2/resize:fit:720/format:webp/1*WbNLOnNTJQ8Q9_uPZZb09Q.png 720w, https://miro.medium.com/v2/resize:fit:750/format:webp/1*WbNLOnNTJQ8Q9_uPZZb09Q.png 750w, https://miro.medium.com/v2/resize:fit:786/format:webp/1*WbNLOnNTJQ8Q9_uPZZb09Q.png 786w, https://miro.medium.com/v2/resize:fit:828/format:webp/1*WbNLOnNTJQ8Q9_uPZZb09Q.png 828w, https://miro.medium.com/v2/resize:fit:1100/format:webp/1*WbNLOnNTJQ8Q9_uPZZb09Q.png 1100w, https://miro.medium.com/v2/resize:fit:1400/format:webp/1*WbNLOnNTJQ8Q9_uPZZb09Q.png 1400w" sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" type="image/webp"/><source data-testid="og" srcSet="https://miro.medium.com/v2/resize:fit:640/1*WbNLOnNTJQ8Q9_uPZZb09Q.png 640w, https://miro.medium.com/v2/resize:fit:720/1*WbNLOnNTJQ8Q9_uPZZb09Q.png 720w, https://miro.medium.com/v2/resize:fit:750/1*WbNLOnNTJQ8Q9_uPZZb09Q.png 750w, https://miro.medium.com/v2/resize:fit:786/1*WbNLOnNTJQ8Q9_uPZZb09Q.png 786w, https://miro.medium.com/v2/resize:fit:828/1*WbNLOnNTJQ8Q9_uPZZb09Q.png 828w, https://miro.medium.com/v2/resize:fit:1100/1*WbNLOnNTJQ8Q9_uPZZb09Q.png 1100w, https://miro.medium.com/v2/resize:fit:1400/1*WbNLOnNTJQ8Q9_uPZZb09Q.png 1400w" sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px"/><img alt="" class="bh mu oa c" width="700" height="2" loading="lazy" role="presentation"/></picture></div></div></figure><p id="dbe7" class="pw-post-body-paragraph pb pc gu pd b hw px pf pg hz py pi pj pk pz pm pn po qa pq pr ps qb pu pv pw gn bk"><em class="ri">Dobri Kostadinov</em><br/>Android Consultant | Trainer<br/><a class="af rj" href="mailto:dobri.kostadinov@gmail.com" rel="noopener ugc nofollow" target="_blank">Email me</a> | <a class="af rj" href="https://www.linkedin.com/in/dobrikostadinov/" rel="noopener ugc nofollow" target="_blank">Follow me on LinkedIn</a> | <a class="af rj" href="https://medium.com/@dobri.kostadinov" rel="noopener">Follow me on Medium</a> | <a class="af rj" href="https://www.buymeacoffee.com/dobri.kostadinov" rel="noopener ugc nofollow" target="_blank">Buy me a coffee</a></p></div></div></div></div></section></div></div></article></div><div class="ab cb"><div class="ci bh fz ga gb gc"><div class="rk rl ab jq"><div class="rm ab"><a class="rn ay am ao" href="https://medium.com/tag/jetpack-compose?source=post_page-----f06492eeb63b--------------------------------" rel="noopener follow"><div class="ro fj cx rp ge rq rr bf b bg z bk rs">Jetpack Compose</div></a></div><div class="rm ab"><a class="rn ay am ao" href="https://medium.com/tag/android-app-development?source=post_page-----f06492eeb63b--------------------------------" rel="noopener follow"><div class="ro fj cx rp ge rq rr bf b bg z bk rs">Android App Development</div></a></div><div class="rm ab"><a class="rn ay am ao" href="https://medium.com/tag/mobile-app-development?source=post_page-----f06492eeb63b--------------------------------" rel="noopener follow"><div class="ro fj cx rp ge rq rr bf b bg z bk rs">Mobile App Development</div></a></div><div class="rm ab"><a class="rn ay am ao" href="https://medium.com/tag/androiddev?source=post_page-----f06492eeb63b--------------------------------" rel="noopener follow"><div class="ro fj cx rp ge rq rr bf b bg z bk rs">AndroidDev</div></a></div><div class="rm ab"><a class="rn ay am ao" href="https://medium.com/tag/android?source=post_page-----f06492eeb63b--------------------------------" rel="noopener follow"><div class="ro fj cx rp ge rq rr bf b bg z bk rs">Android</div></a></div></div></div></div><div class="l"></div><footer class="rt ru rv rw rx ab q ry ja c"><div class="l ae"><div class="ab cb"><div class="ci bh fz ga gb gc"><div class="ab cp rz"><div class="ab q ll"><div class="sa l"><span class="l sb sc sd e d"><div class="ab q ll lm"><div class="pw-multi-vote-icon fj ju ln lo lp"><span><a class="af ag ah ai aj ak al am an ao ap aq ar as at" data-testid="footerClapButton" href="https://medium.com/m/signin?actionUrl=https%3A%2F%2Fmedium.com%2F_%2Fvote%2Fproandroiddev%2Ff06492eeb63b&operation=register&redirect=https%3A%2F%2Fproandroiddev.com%2Fjetpack-compose-what-scaffold-have-and-have-not-f06492eeb63b&user=Dobri+Kostadinov&userId=cb954442a18e&source=---footer_actions--f06492eeb63b---------------------clap_footer-----------" rel="noopener follow"><div><div class="bm" aria-hidden="false"><div class="lq ao lr ls lt lu am lv lw lx lp"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" aria-label="clap"><path fill-rule="evenodd" d="M11.37.828 12 3.282l.63-2.454zM13.916 3.953l1.523-2.112-1.184-.39zM8.589 1.84l1.522 2.112-.337-2.501zM18.523 18.92c-.86.86-1.75 1.246-2.62 1.33a6 6 0 0 0 .407-.372c2.388-2.389 2.86-4.951 1.399-7.623l-.912-1.603-.79-1.672c-.26-.56-.194-.98.203-1.288a.7.7 0 0 1 .546-.132c.283.046.546.231.728.5l2.363 4.157c.976 1.624 1.141 4.237-1.324 6.702m-10.999-.438L3.37 14.328a.828.828 0 0 1 .585-1.408.83.83 0 0 1 .585.242l2.158 2.157a.365.365 0 0 0 .516-.516l-2.157-2.158-1.449-1.449a.826.826 0 0 1 1.167-1.17l3.438 3.44a.363.363 0 0 0 .516 0 .364.364 0 0 0 0-.516L5.293 9.513l-.97-.97a.826.826 0 0 1 0-1.166.84.84 0 0 1 1.167 0l.97.968 3.437 3.436a.36.36 0 0 0 .517 0 .366.366 0 0 0 0-.516L6.977 7.83a.82.82 0 0 1-.241-.584.82.82 0 0 1 .824-.826c.219 0 .43.087.584.242l5.787 5.787a.366.366 0 0 0 .587-.415l-1.117-2.363c-.26-.56-.194-.98.204-1.289a.7.7 0 0 1 .546-.132c.283.046.545.232.727.501l2.193 3.86c1.302 2.38.883 4.59-1.277 6.75-1.156 1.156-2.602 1.627-4.19 1.367-1.418-.236-2.866-1.033-4.079-2.246M10.75 5.971l2.12 2.12c-.41.502-.465 1.17-.128 1.89l.22.465-3.523-3.523a.8.8 0 0 1-.097-.368c0-.22.086-.428.241-.584a.847.847 0 0 1 1.167 0m7.355 1.705c-.31-.461-.746-.758-1.23-.837a1.44 1.44 0 0 0-1.11.275c-.312.24-.505.543-.59.881a1.74 1.74 0 0 0-.906-.465 1.47 1.47 0 0 0-.82.106l-2.182-2.182a1.56 1.56 0 0 0-2.2 0 1.54 1.54 0 0 0-.396.701 1.56 1.56 0 0 0-2.21-.01 1.55 1.55 0 0 0-.416.753c-.624-.624-1.649-.624-2.237-.037a1.557 1.557 0 0 0 0 2.2c-.239.1-.501.238-.715.453a1.56 1.56 0 0 0 0 2.2l.516.515a1.556 1.556 0 0 0-.753 2.615L7.01 19c1.32 1.319 2.909 2.189 4.475 2.449q.482.08.971.08c.85 0 1.653-.198 2.393-.579.231.033.46.054.686.054 1.266 0 2.457-.52 3.505-1.567 2.763-2.763 2.552-5.734 1.439-7.586z" clip-rule="evenodd"></path></svg></div></div></div></a></span></div><div class="pw-multi-vote-count l ly lz ma mb mc md me"><p class="bf b dv z du"><span class="mf">--</span></p></div></div></span><span class="l h g f se sf"><div class="ab q ll lm"><div class="pw-multi-vote-icon fj ju ln lo lp"><span><a class="af ag ah ai aj ak al am an ao ap aq ar as at" data-testid="footerClapButton" href="https://medium.com/m/signin?actionUrl=https%3A%2F%2Fmedium.com%2F_%2Fvote%2Fproandroiddev%2Ff06492eeb63b&operation=register&redirect=https%3A%2F%2Fproandroiddev.com%2Fjetpack-compose-what-scaffold-have-and-have-not-f06492eeb63b&user=Dobri+Kostadinov&userId=cb954442a18e&source=---footer_actions--f06492eeb63b---------------------clap_footer-----------" rel="noopener follow"><div><div class="bm" aria-hidden="false"><div class="lq ao lr ls lt lu am lv lw lx lp"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" aria-label="clap"><path fill-rule="evenodd" d="M11.37.828 12 3.282l.63-2.454zM13.916 3.953l1.523-2.112-1.184-.39zM8.589 1.84l1.522 2.112-.337-2.501zM18.523 18.92c-.86.86-1.75 1.246-2.62 1.33a6 6 0 0 0 .407-.372c2.388-2.389 2.86-4.951 1.399-7.623l-.912-1.603-.79-1.672c-.26-.56-.194-.98.203-1.288a.7.7 0 0 1 .546-.132c.283.046.546.231.728.5l2.363 4.157c.976 1.624 1.141 4.237-1.324 6.702m-10.999-.438L3.37 14.328a.828.828 0 0 1 .585-1.408.83.83 0 0 1 .585.242l2.158 2.157a.365.365 0 0 0 .516-.516l-2.157-2.158-1.449-1.449a.826.826 0 0 1 1.167-1.17l3.438 3.44a.363.363 0 0 0 .516 0 .364.364 0 0 0 0-.516L5.293 9.513l-.97-.97a.826.826 0 0 1 0-1.166.84.84 0 0 1 1.167 0l.97.968 3.437 3.436a.36.36 0 0 0 .517 0 .366.366 0 0 0 0-.516L6.977 7.83a.82.82 0 0 1-.241-.584.82.82 0 0 1 .824-.826c.219 0 .43.087.584.242l5.787 5.787a.366.366 0 0 0 .587-.415l-1.117-2.363c-.26-.56-.194-.98.204-1.289a.7.7 0 0 1 .546-.132c.283.046.545.232.727.501l2.193 3.86c1.302 2.38.883 4.59-1.277 6.75-1.156 1.156-2.602 1.627-4.19 1.367-1.418-.236-2.866-1.033-4.079-2.246M10.75 5.971l2.12 2.12c-.41.502-.465 1.17-.128 1.89l.22.465-3.523-3.523a.8.8 0 0 1-.097-.368c0-.22.086-.428.241-.584a.847.847 0 0 1 1.167 0m7.355 1.705c-.31-.461-.746-.758-1.23-.837a1.44 1.44 0 0 0-1.11.275c-.312.24-.505.543-.59.881a1.74 1.74 0 0 0-.906-.465 1.47 1.47 0 0 0-.82.106l-2.182-2.182a1.56 1.56 0 0 0-2.2 0 1.54 1.54 0 0 0-.396.701 1.56 1.56 0 0 0-2.21-.01 1.55 1.55 0 0 0-.416.753c-.624-.624-1.649-.624-2.237-.037a1.557 1.557 0 0 0 0 2.2c-.239.1-.501.238-.715.453a1.56 1.56 0 0 0 0 2.2l.516.515a1.556 1.556 0 0 0-.753 2.615L7.01 19c1.32 1.319 2.909 2.189 4.475 2.449q.482.08.971.08c.85 0 1.653-.198 2.393-.579.231.033.46.054.686.054 1.266 0 2.457-.52 3.505-1.567 2.763-2.763 2.552-5.734 1.439-7.586z" clip-rule="evenodd"></path></svg></div></div></div></a></span></div><div class="pw-multi-vote-count l ly lz ma mb mc md me"><p class="bf b dv z du"><span class="mf">--</span></p></div></div></span></div><div class="bq ab"><div><div class="bm" aria-hidden="false"><button class="ao lq mi mj ab q fk mk ml" aria-label="responses"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" class="mh"><path d="M18.006 16.803c1.533-1.456 2.234-3.325 2.234-5.321C20.24 7.357 16.709 4 12.191 4S4 7.357 4 11.482c0 4.126 3.674 7.482 8.191 7.482.817 0 1.622-.111 2.393-.327.231.2.48.391.744.559 1.06.693 2.203 1.044 3.399 1.044.224-.008.4-.112.486-.287a.49.49 0 0 0-.042-.518c-.495-.67-.845-1.364-1.04-2.057a4 4 0 0 1-.125-.598zm-3.122 1.055-.067-.223-.315.096a8 8 0 0 1-2.311.338c-4.023 0-7.292-2.955-7.292-6.587 0-3.633 3.269-6.588 7.292-6.588 4.014 0 7.112 2.958 7.112 6.593 0 1.794-.608 3.469-2.027 4.72l-.195.168v.255c0 .056 0 .151.016.295.025.231.081.478.154.733.154.558.398 1.117.722 1.659a5.3 5.3 0 0 1-2.165-.845c-.276-.176-.714-.383-.941-.59z"></path></svg><p class="bf b bg z du"><span class="pw-responses-count mg mh">2</span></p></button></div></div></div></div><div class="ab q"><div class="sg l jn"><div><div class="bm" aria-hidden="false"><span><a class="af ag ah ai aj ak al am an ao ap aq ar as at" data-testid="footerBookmarkButton" href="https://medium.com/m/signin?actionUrl=https%3A%2F%2Fmedium.com%2F_%2Fbookmark%2Fp%2Ff06492eeb63b&operation=register&redirect=https%3A%2F%2Fproandroiddev.com%2Fjetpack-compose-what-scaffold-have-and-have-not-f06492eeb63b&source=---footer_actions--f06492eeb63b---------------------bookmark_footer-----------" rel="noopener follow"><svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" fill="none" viewBox="0 0 25 25" class="du mn" aria-label="Add to list bookmark button"><path fill="currentColor" d="M18 2.5a.5.5 0 0 1 1 0V5h2.5a.5.5 0 0 1 0 1H19v2.5a.5.5 0 1 1-1 0V6h-2.5a.5.5 0 0 1 0-1H18zM7 7a1 1 0 0 1 1-1h3.5a.5.5 0 0 0 0-1H8a2 2 0 0 0-2 2v14a.5.5 0 0 0 .805.396L12.5 17l5.695 4.396A.5.5 0 0 0 19 21v-8.5a.5.5 0 0 0-1 0v7.485l-5.195-4.012a.5.5 0 0 0-.61 0L7 19.985z"></path></svg></a></span></div></div></div><div class="sg l jn"><div class="bm" aria-hidden="false" aria-describedby="postFooterSocialMenu" aria-labelledby="postFooterSocialMenu"><div><div class="bm" aria-hidden="false"><button aria-controls="postFooterSocialMenu" aria-expanded="false" aria-label="Share Post" data-testid="footerSocialShareButton" class="af fk ah ai aj ak al mv an ao ap ex mw mx ml my"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path fill="currentColor" fill-rule="evenodd" d="M15.218 4.931a.4.4 0 0 1-.118.132l.012.006a.45.45 0 0 1-.292.074.5.5 0 0 1-.3-.13l-2.02-2.02v7.07c0 .28-.23.5-.5.5s-.5-.22-.5-.5v-7.04l-2 2a.45.45 0 0 1-.57.04h-.02a.4.4 0 0 1-.16-.3.4.4 0 0 1 .1-.32l2.8-2.8a.5.5 0 0 1 .7 0l2.8 2.79a.42.42 0 0 1 .068.498m-.106.138.008.004v-.01zM16 7.063h1.5a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2h-11c-1.1 0-2-.9-2-2v-10a2 2 0 0 1 2-2H8a.5.5 0 0 1 .35.15.5.5 0 0 1 .15.35.5.5 0 0 1-.15.35.5.5 0 0 1-.35.15H6.4c-.5 0-.9.4-.9.9v10.2a.9.9 0 0 0 .9.9h11.2c.5 0 .9-.4.9-.9v-10.2c0-.5-.4-.9-.9-.9H16a.5.5 0 0 1 0-1" clip-rule="evenodd"></path></svg></button></div></div></div></div></div></div></div></div></div></footer><div class="sh si sj sk sl l"><div class="ab cb"><div class="ci bh fz ga gb gc"><div class="sm bh r sn"></div><div class="so l"><div class="ab sp sq sr jp jo"><div class="ss st su sv sw sx sy sz ta tb ab cp"><div class="h k"><a href="https://proandroiddev.com/?source=post_page---post_publication_info--f06492eeb63b--------------------------------" rel="noopener follow"><div class="fj ab"><img alt="ProAndroidDev" class="tc ir is cx" src="https://miro.medium.com/v2/resize:fill:96:96/1*XVtdl45m8YaYrPI4buJ5yQ.png" width="48" height="48" loading="lazy"/><div class="tc l is ir fs n fr td"></div></div></a></div><div class="j i d"><a href="https://proandroiddev.com/?source=post_page---post_publication_info--f06492eeb63b--------------------------------" rel="noopener follow"><div class="fj ab"><img alt="ProAndroidDev" class="tc tf te cx" src="https://miro.medium.com/v2/resize:fill:128:128/1*XVtdl45m8YaYrPI4buJ5yQ.png" width="64" height="64" loading="lazy"/><div class="tc l te tf fs n fr td"></div></div></a></div><div class="j i d tg jn"><div class="ab"><span><a class="bf b bg z th ro ti tj tk tl tm ev ew tn to tp fa fb fc fd bm fe ff" href="https://medium.com/m/signin?actionUrl=https%3A%2F%2Fmedium.com%2F_%2Fsubscribe%2Fcollection%2Fproandroiddev&operation=register&redirect=https%3A%2F%2Fproandroiddev.com%2Fjetpack-compose-what-scaffold-have-and-have-not-f06492eeb63b&collection=ProAndroidDev&collectionId=c72404660798&source=post_page---post_publication_info--f06492eeb63b---------------------follow_profile-----------" rel="noopener follow">Follow</a></span></div></div></div><div class="ab co tq"><div class="tr ts tt tu tv l"><a class="af ag ah aj ak al am an ao ap aq ar as at ab q" href="https://proandroiddev.com/?source=post_page---post_publication_info--f06492eeb63b--------------------------------" rel="noopener follow"><h2 class="pw-author-name bf tx ty tz ua ub uc ud pk qq qr po qt qu ps qw qx bk"><span class="gn tw">Published in <!-- -->ProAndroidDev</span></h2></a><div class="rm ab iq"><div class="l jn"><span class="pw-follower-count bf b bg z du"><a class="af ag ah ai aj ak al am an ao ap aq ar jg" rel="noopener follow" href="/followers?source=post_page---post_publication_info--f06492eeb63b--------------------------------">62K Followers</a></span></div><div class="bf b bg z du ab jt"><span class="jh l" aria-hidden="true"><span class="bf b bg z du">·</span></span><a class="af ag ah ai aj ak al am an ao ap aq ar jg" rel="noopener follow" href="/benchmarking-koin-vs-dagger-hilt-in-modern-android-development-2024-ff7bb40470df?source=post_page---post_publication_info--f06492eeb63b--------------------------------">Last published <!-- -->15 hours ago</a></div></div><div class="ue l"><p class="bf b bg z bk"><span class="gn">The latest posts from Android Professionals and Google Developer Experts.</span></p></div></div></div><div class="h k"><div class="ab"><span><a class="bf b bg z th ro ti tj tk tl tm ev ew tn to tp fa fb fc fd bm fe ff" href="https://medium.com/m/signin?actionUrl=https%3A%2F%2Fmedium.com%2F_%2Fsubscribe%2Fcollection%2Fproandroiddev&operation=register&redirect=https%3A%2F%2Fproandroiddev.com%2Fjetpack-compose-what-scaffold-have-and-have-not-f06492eeb63b&collection=ProAndroidDev&collectionId=c72404660798&source=post_page---post_publication_info--f06492eeb63b---------------------follow_profile-----------" rel="noopener follow">Follow</a></span></div></div></div></div><div class="ab sp sq sr jp jo"><div class="ss st su sv sw sx sy sz ta tb ab cp"><div class="h k"><a tabindex="0" href="https://medium.com/@dobri.kostadinov?source=post_page---post_author_info--f06492eeb63b--------------------------------" rel="noopener follow"><div class="l fj"><img alt="Dobri Kostadinov" class="l fd by is ir cx" src="https://miro.medium.com/v2/resize:fill:96:96/1*PDWUz7RmoqP9kmFnZzGPUg.jpeg" width="48" height="48" loading="lazy"/><div class="fr by l is ir fs n ay td"></div></div></a></div><div class="j i d"><a tabindex="0" href="https://medium.com/@dobri.kostadinov?source=post_page---post_author_info--f06492eeb63b--------------------------------" rel="noopener follow"><div class="l fj"><img alt="Dobri Kostadinov" class="l fd by te tf cx" src="https://miro.medium.com/v2/resize:fill:128:128/1*PDWUz7RmoqP9kmFnZzGPUg.jpeg" width="64" height="64" loading="lazy"/><div class="fr by l te tf fs n ay td"></div></div></a></div><div class="j i d tg jn"><div class="ab"><span><a class="bf b bg z th ro ti tj tk tl tm ev ew tn to tp fa fb fc fd bm fe ff" href="https://medium.com/m/signin?actionUrl=https%3A%2F%2Fmedium.com%2F_%2Fsubscribe%2Fuser%2Fcb954442a18e&operation=register&redirect=https%3A%2F%2Fproandroiddev.com%2Fjetpack-compose-what-scaffold-have-and-have-not-f06492eeb63b&user=Dobri+Kostadinov&userId=cb954442a18e&source=post_page-cb954442a18e--post_author_info--f06492eeb63b---------------------follow_profile-----------" rel="noopener follow">Follow</a></span></div></div></div><div class="ab co tq"><div class="tr ts tt tu tv l"><a class="af ag ah aj ak al am an ao ap aq ar as at ab q" href="https://medium.com/@dobri.kostadinov?source=post_page---post_author_info--f06492eeb63b--------------------------------" rel="noopener follow"><h2 class="pw-author-name bf tx ty tz ua ub uc ud pk qq qr po qt qu ps qw qx bk"><span class="gn tw">Written by <!-- -->Dobri Kostadinov</span></h2></a><div class="rm ab iq"><div class="l jn"><span class="pw-follower-count bf b bg z du"><a class="af ag ah ai aj ak al am an ao ap aq ar jg" href="https://medium.com/@dobri.kostadinov/followers?source=post_page---post_author_info--f06492eeb63b--------------------------------" rel="noopener follow">1.99K Followers</a></span></div><div class="bf b bg z du ab jt"><span class="jh l" aria-hidden="true"><span class="bf b bg z du">·</span></span><a class="af ag ah ai aj ak al am an ao ap aq ar jg" href="https://medium.com/@dobri.kostadinov/following?source=post_page---post_author_info--f06492eeb63b--------------------------------" rel="noopener follow">16 Following</a></div></div><div class="ue l"><p class="bf b bg z bk"><span class="gn">15+ years in native Android dev (Java, Kotlin). Expert in developing beautiful android native apps.</span></p></div></div></div><div class="h k"><div class="ab"><span><a class="bf b bg z th ro ti tj tk tl tm ev ew tn to tp fa fb fc fd bm fe ff" href="https://medium.com/m/signin?actionUrl=https%3A%2F%2Fmedium.com%2F_%2Fsubscribe%2Fuser%2Fcb954442a18e&operation=register&redirect=https%3A%2F%2Fproandroiddev.com%2Fjetpack-compose-what-scaffold-have-and-have-not-f06492eeb63b&user=Dobri+Kostadinov&userId=cb954442a18e&source=post_page-cb954442a18e--post_author_info--f06492eeb63b---------------------follow_profile-----------" rel="noopener follow">Follow</a></span></div></div></div></div></div></div><div class="uf ug uh ui uj l"><div class="sm bh r uf ug uk ul um"></div><div class="ab cb"><div class="ci bh fz ga gb gc"><div class="ab q cp"><h2 class="bf tx oi hy ok ol ib on oo oq or os ou ov ow oy oz bk">Responses (<!-- -->2<!-- -->)</h2><div class="ab un"><div><div class="bm" aria-hidden="false"><a class="uo up" href="https://policy.medium.com/medium-rules-30e5502c4eb4?source=post_page---post_responses--f06492eeb63b--------------------------------" rel="noopener follow" target="_blank"><svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" viewBox="0 0 25 25"><path fill-rule="evenodd" d="M11.987 5.036a.754.754 0 0 1 .914-.01c.972.721 1.767 1.218 2.6 1.543.828.322 1.719.485 2.887.505a.755.755 0 0 1 .741.757c-.018 3.623-.43 6.256-1.449 8.21-1.034 1.984-2.662 3.209-4.966 4.083a.75.75 0 0 1-.537-.003c-2.243-.874-3.858-2.095-4.897-4.074-1.024-1.951-1.457-4.583-1.476-8.216a.755.755 0 0 1 .741-.757c1.195-.02 2.1-.182 2.923-.503.827-.322 1.6-.815 2.519-1.535m.468.903c-.897.69-1.717 1.21-2.623 1.564-.898.35-1.856.527-3.026.565.037 3.45.469 5.817 1.36 7.515.884 1.684 2.25 2.762 4.284 3.571 2.092-.81 3.465-1.89 4.344-3.575.886-1.698 1.299-4.065 1.334-7.512-1.149-.039-2.091-.217-2.99-.567-.906-.353-1.745-.873-2.683-1.561m-.009 9.155a2.672 2.672 0 1 0 0-5.344 2.672 2.672 0 0 0 0 5.344m0 1a3.672 3.672 0 1 0 0-7.344 3.672 3.672 0 0 0 0 7.344m-1.813-3.777.525-.526.916.917 1.623-1.625.526.526-2.149 2.152z" clip-rule="evenodd"></path></svg></a></div></div></div></div><div class="uq l"><button class="bf b bg z bk ro ur us ut mn mk tm ev ew ex uu uv uw fa ux uy uz va vb fb fc fd bm fe ff">See all responses</button></div></div></div></div><div class="vc vd ve vf vg l bx"><div class="h k j"><div class="sm bh vh vi"></div><div class="ab cb"><div class="ci bh fz ga gb gc"><div class="vj ab ll jq"><div class="vk vl l"><a class="af ag ah ai aj ak al am an ao ap aq ar as at" href="https://help.medium.com/hc/en-us?source=post_page-----f06492eeb63b--------------------------------" rel="noopener follow"><p class="bf b dv z du">Help</p></a></div><div class="vk vl l"><a class="af ag ah ai aj ak al am an ao ap aq ar as at" href="https://medium.statuspage.io/?source=post_page-----f06492eeb63b--------------------------------" rel="noopener follow"><p class="bf b dv z du">Status</p></a></div><div class="vk vl l"><a class="af ag ah ai aj ak al am an ao ap aq ar as at" href="https://medium.com/about?autoplay=1&source=post_page-----f06492eeb63b--------------------------------" rel="noopener follow"><p class="bf b dv z du">About</p></a></div><div class="vk vl l"><a class="af ag ah ai aj ak al am an ao ap aq ar as at" href="https://medium.com/jobs-at-medium/work-at-medium-959d1a85284e?source=post_page-----f06492eeb63b--------------------------------" rel="noopener follow"><p class="bf b dv z du">Careers</p></a></div><div class="vk vl l"><a class="af ag ah ai aj ak al am an ao ap aq ar as at" href="pressinquiries@medium.com?source=post_page-----f06492eeb63b--------------------------------" rel="noopener follow"><p class="bf b dv z du">Press</p></a></div><div class="vk vl l"><a class="af ag ah ai aj ak al am an ao ap aq ar as at" href="https://blog.medium.com/?source=post_page-----f06492eeb63b--------------------------------" rel="noopener follow"><p class="bf b dv z du">Blog</p></a></div><div class="vk vl l"><a class="af ag ah ai aj ak al am an ao ap aq ar as at" href="https://policy.medium.com/medium-privacy-policy-f03bf92035c9?source=post_page-----f06492eeb63b--------------------------------" rel="noopener follow"><p class="bf b dv z du">Privacy</p></a></div><div class="vk vl l"><a class="af ag ah ai aj ak al am an ao ap aq ar as at" href="https://policy.medium.com/medium-terms-of-service-9db0094a1e0f?source=post_page-----f06492eeb63b--------------------------------" rel="noopener follow"><p class="bf b dv z du">Terms</p></a></div><div class="vk vl l"><a class="af ag ah ai aj ak al am an ao ap aq ar as at" href="https://speechify.com/medium?source=post_page-----f06492eeb63b--------------------------------" rel="noopener follow"><p class="bf b dv z du">Text to speech</p></a></div><div class="vk l"><a class="af ag ah ai aj ak al am an ao ap aq ar as at" href="https://medium.com/business?source=post_page-----f06492eeb63b--------------------------------" rel="noopener follow"><p class="bf b dv z du">Teams</p></a></div></div></div></div></div></div></div></div></div></div><script>window.__BUILD_ID__="main-20241126-181518-0cb59a020f"</script><script>window.__GRAPHQL_URI__ = "https://proandroiddev.com/_/graphql"</script><script>window.__PRELOADED_STATE__ = {"algolia":{"queries":{}},"cache":{"experimentGroupSet":true,"reason":"This request is not using the cache middleware worker","group":"disabled","tags":["group-edgeCachePosts","post-f06492eeb63b","user-cb954442a18e","collection-c72404660798"],"serverVariantState":"","middlewareEnabled":false,"cacheStatus":"DYNAMIC","shouldUseCache":false,"vary":[],"lohpSummerUpsellEnabled":false,"publicationHierarchyEnabledWeb":false,"postBottomResponsesEnabled":false},"client":{"hydrated":false,"isUs":false,"isNativeMedium":false,"isSafariMobile":false,"isSafari":false,"isFirefox":false,"routingEntity":{"type":"COLLECTION","id":"c72404660798","explicit":true},"viewerIsBot":false},"debug":{"requestId":"f28970b4-0998-4295-b4d1-8bbd9d60ebe1","hybridDevServices":[],"originalSpanCarrier":{"traceparent":"00-c1467f428f0bf64332b0faa69e27230f-4b10344c608530c4-01"}},"multiVote":{"clapsPerPost":{}},"navigation":{"branch":{"show":null,"hasRendered":null,"blockedByCTA":false},"hideGoogleOneTap":false,"hasRenderedAlternateUserBanner":null,"currentLocation":"https:\u002F\u002Fproandroiddev.com\u002Fjetpack-compose-what-scaffold-have-and-have-not-f06492eeb63b","host":"proandroiddev.com","hostname":"proandroiddev.com","referrer":"","hasSetReferrer":false,"susiModal":{"step":null,"operation":"register"},"postRead":false,"partnerProgram":{"selectedCountryCode":null},"queryString":"?source=user_profile_page---------6-------------cb954442a18e---------------"},"config":{"nodeEnv":"production","version":"main-20241126-181518-0cb59a020f","target":"production","productName":"Medium","publicUrl":"https:\u002F\u002Fcdn-client.medium.com\u002Flite","authDomain":"medium.com","authGoogleClientId":"216296035834-k1k6qe060s2tp2a2jam4ljdcms00sttg.apps.googleusercontent.com","favicon":"production","glyphUrl":"https:\u002F\u002Fglyph.medium.com","branchKey":"key_live_ofxXr2qTrrU9NqURK8ZwEhknBxiI6KBm","algolia":{"appId":"MQ57UUUQZ2","apiKeySearch":"394474ced050e3911ae2249ecc774921","indexPrefix":"medium_","host":"-dsn.algolia.net"},"recaptchaKey":"6Lfc37IUAAAAAKGGtC6rLS13R1Hrw_BqADfS1LRk","recaptcha3Key":"6Lf8R9wUAAAAABMI_85Wb8melS7Zj6ziuf99Yot5","recaptchaEnterpriseKeyId":"6Le-uGgpAAAAAPprRaokM8AKthQ9KNGdoxaGUvVp","datadog":{"applicationId":"6702d87d-a7e0-42fe-bbcb-95b469547ea0","clientToken":"pub853ea8d17ad6821d9f8f11861d23dfed","rumToken":"pubf9cc52896502b9413b68ba36fc0c7162","context":{"deployment":{"target":"production","tag":"main-20241126-181518-0cb59a020f","commit":"0cb59a020f4453d0900f671f1a6576feecc55e74"}},"datacenter":"us"},"googleAnalyticsCode":"G-7JY7T788PK","googlePay":{"apiVersion":"2","apiVersionMinor":"0","merchantId":"BCR2DN6TV7EMTGBM","merchantName":"Medium","instanceMerchantId":"13685562959212738550"},"applePay":{"version":3},"signInWallCustomDomainCollectionIds":["3a8144eabfe3","336d898217ee","61061eb0c96b","138adf9c44c","819cc2aaeee0"],"mediumMastodonDomainName":"me.dm","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"],"tierOneDomains":["medium.com","thebolditalic.com","arcdigital.media","towardsdatascience.com","uxdesign.cc","codeburst.io","psiloveyou.xyz","writingcooperative.com","entrepreneurshandbook.co","prototypr.io","betterhumans.coach.me","theascent.pub"],"topicsToFollow":["d61cf867d93f","8a146bc21b28","1eca0103fff3","4d562ee63426","aef1078a3ef5","e15e46793f8d","6158eb913466","55f1c20aba7a","3d18b94f6858","4861fee224fd","63c6f1f93ee","1d98b3a9a871","decb52b64abf","ae5d4995e225","830cded25262"],"topicToTagMappings":{"accessibility":"accessibility","addiction":"addiction","android-development":"android-development","art":"art","artificial-intelligence":"artificial-intelligence","astrology":"astrology","basic-income":"basic-income","beauty":"beauty","biotech":"biotech","blockchain":"blockchain","books":"books","business":"business","cannabis":"cannabis","cities":"cities","climate-change":"climate-change","comics":"comics","coronavirus":"coronavirus","creativity":"creativity","cryptocurrency":"cryptocurrency","culture":"culture","cybersecurity":"cybersecurity","data-science":"data-science","design":"design","digital-life":"digital-life","disability":"disability","economy":"economy","education":"education","equality":"equality","family":"family","feminism":"feminism","fiction":"fiction","film":"film","fitness":"fitness","food":"food","freelancing":"freelancing","future":"future","gadgets":"gadgets","gaming":"gaming","gun-control":"gun-control","health":"health","history":"history","humor":"humor","immigration":"immigration","ios-development":"ios-development","javascript":"javascript","justice":"justice","language":"language","leadership":"leadership","lgbtqia":"lgbtqia","lifestyle":"lifestyle","machine-learning":"machine-learning","makers":"makers","marketing":"marketing","math":"math","media":"media","mental-health":"mental-health","mindfulness":"mindfulness","money":"money","music":"music","neuroscience":"neuroscience","nonfiction":"nonfiction","outdoors":"outdoors","parenting":"parenting","pets":"pets","philosophy":"philosophy","photography":"photography","podcasts":"podcast","poetry":"poetry","politics":"politics","privacy":"privacy","product-management":"product-management","productivity":"productivity","programming":"programming","psychedelics":"psychedelics","psychology":"psychology","race":"race","relationships":"relationships","religion":"religion","remote-work":"remote-work","san-francisco":"san-francisco","science":"science","self":"self","self-driving-cars":"self-driving-cars","sexuality":"sexuality","social-media":"social-media","society":"society","software-engineering":"software-engineering","space":"space","spirituality":"spirituality","sports":"sports","startups":"startup","style":"style","technology":"technology","transportation":"transportation","travel":"travel","true-crime":"true-crime","tv":"tv","ux":"ux","venture-capital":"venture-capital","visual-design":"visual-design","work":"work","world":"world","writing":"writing"},"defaultImages":{"avatar":{"imageId":"1*dmbNkD5D-u45r44go_cf0g.png","height":150,"width":150},"orgLogo":{"imageId":"7*V1_7XP4snlmqrc_0Njontw.png","height":110,"width":500},"postLogo":{"imageId":"bd978bb536350a710e8efb012513429cabdc4c28700604261aeda246d0f980b7","height":810,"width":1440},"postPreviewImage":{"imageId":"1*hn4v1tCaJy7cWMyb0bpNpQ.png","height":386,"width":579}},"collectionStructuredData":{"8d6b8a439e32":{"name":"Elemental","data":{"@type":"NewsMediaOrganization","ethicsPolicy":"https:\u002F\u002Fhelp.medium.com\u002Fhc\u002Fen-us\u002Farticles\u002F360043290473","logo":{"@type":"ImageObject","url":"https:\u002F\u002Fcdn-images-1.medium.com\u002Fmax\u002F980\u002F1*9ygdqoKprhwuTVKUM0DLPA@2x.png","width":980,"height":159}}},"3f6ecf56618":{"name":"Forge","data":{"@type":"NewsMediaOrganization","ethicsPolicy":"https:\u002F\u002Fhelp.medium.com\u002Fhc\u002Fen-us\u002Farticles\u002F360043290473","logo":{"@type":"ImageObject","url":"https:\u002F\u002Fcdn-images-1.medium.com\u002Fmax\u002F596\u002F1*uULpIlImcO5TDuBZ6lm7Lg@2x.png","width":596,"height":183}}},"ae2a65f35510":{"name":"GEN","data":{"@type":"NewsMediaOrganization","ethicsPolicy":"https:\u002F\u002Fhelp.medium.com\u002Fhc\u002Fen-us\u002Farticles\u002F360043290473","logo":{"@type":"ImageObject","url":"https:\u002F\u002Fmiro.medium.com\u002Fmax\u002F264\u002F1*RdVZMdvfV3YiZTw6mX7yWA.png","width":264,"height":140}}},"88d9857e584e":{"name":"LEVEL","data":{"@type":"NewsMediaOrganization","ethicsPolicy":"https:\u002F\u002Fhelp.medium.com\u002Fhc\u002Fen-us\u002Farticles\u002F360043290473","logo":{"@type":"ImageObject","url":"https:\u002F\u002Fmiro.medium.com\u002Fmax\u002F540\u002F1*JqYMhNX6KNNb2UlqGqO2WQ.png","width":540,"height":108}}},"7b6769f2748b":{"name":"Marker","data":{"@type":"NewsMediaOrganization","ethicsPolicy":"https:\u002F\u002Fhelp.medium.com\u002Fhc\u002Fen-us\u002Farticles\u002F360043290473","logo":{"@type":"ImageObject","url":"https:\u002F\u002Fcdn-images-1.medium.com\u002Fmax\u002F383\u002F1*haCUs0wF6TgOOvfoY-jEoQ@2x.png","width":383,"height":92}}},"444d13b52878":{"name":"OneZero","data":{"@type":"NewsMediaOrganization","ethicsPolicy":"https:\u002F\u002Fhelp.medium.com\u002Fhc\u002Fen-us\u002Farticles\u002F360043290473","logo":{"@type":"ImageObject","url":"https:\u002F\u002Fmiro.medium.com\u002Fmax\u002F540\u002F1*cw32fIqCbRWzwJaoQw6BUg.png","width":540,"height":123}}},"8ccfed20cbb2":{"name":"Zora","data":{"@type":"NewsMediaOrganization","ethicsPolicy":"https:\u002F\u002Fhelp.medium.com\u002Fhc\u002Fen-us\u002Farticles\u002F360043290473","logo":{"@type":"ImageObject","url":"https:\u002F\u002Fmiro.medium.com\u002Fmax\u002F540\u002F1*tZUQqRcCCZDXjjiZ4bDvgQ.png","width":540,"height":106}}}},"embeddedPostIds":{"coronavirus":"cd3010f9d81f"},"sharedCdcMessaging":{"COVID_APPLICABLE_TAG_SLUGS":[],"COVID_APPLICABLE_TOPIC_NAMES":[],"COVID_APPLICABLE_TOPIC_NAMES_FOR_TOPIC_PAGE":[],"COVID_MESSAGES":{"tierA":{"text":"For more information on the novel coronavirus and Covid-19, visit cdc.gov.","markups":[{"start":66,"end":73,"href":"https:\u002F\u002Fwww.cdc.gov\u002Fcoronavirus\u002F2019-nCoV"}]},"tierB":{"text":"Anyone can publish on Medium per our Policies, but we don’t fact-check every story. For more info about the coronavirus, see cdc.gov.","markups":[{"start":37,"end":45,"href":"https:\u002F\u002Fhelp.medium.com\u002Fhc\u002Fen-us\u002Fcategories\u002F201931128-Policies-Safety"},{"start":125,"end":132,"href":"https:\u002F\u002Fwww.cdc.gov\u002Fcoronavirus\u002F2019-nCoV"}]},"paywall":{"text":"This article has been made free for everyone, thanks to Medium Members. For more information on the novel coronavirus and Covid-19, visit cdc.gov.","markups":[{"start":56,"end":70,"href":"https:\u002F\u002Fmedium.com\u002Fmembership"},{"start":138,"end":145,"href":"https:\u002F\u002Fwww.cdc.gov\u002Fcoronavirus\u002F2019-nCoV"}]},"unbound":{"text":"This article is free for everyone, thanks to Medium Members. For more information on the novel coronavirus and Covid-19, visit cdc.gov.","markups":[{"start":45,"end":59,"href":"https:\u002F\u002Fmedium.com\u002Fmembership"},{"start":127,"end":134,"href":"https:\u002F\u002Fwww.cdc.gov\u002Fcoronavirus\u002F2019-nCoV"}]}},"COVID_BANNER_POST_ID_OVERRIDE_WHITELIST":["3b31a67bff4a"]},"sharedVoteMessaging":{"TAGS":["politics","election-2020","government","us-politics","election","2020-presidential-race","trump","donald-trump","democrats","republicans","congress","republican-party","democratic-party","biden","joe-biden","maga"],"TOPICS":["politics","election"],"MESSAGE":{"text":"Find out more about the U.S. election results here.","markups":[{"start":46,"end":50,"href":"https:\u002F\u002Fcookpolitical.com\u002F2020-national-popular-vote-tracker"}]},"EXCLUDE_POSTS":["397ef29e3ca5"]},"embedPostRules":[],"recircOptions":{"v1":{"limit":3},"v2":{"limit":8}},"braintreeClientKey":"production_zjkj96jm_m56f8fqpf7ngnrd4","braintree":{"enabled":true,"merchantId":"m56f8fqpf7ngnrd4","merchantAccountId":{"usd":"AMediumCorporation_instant","eur":"amediumcorporation_EUR","cad":"amediumcorporation_CAD"},"publicKey":"ds2nn34bg2z7j5gd","braintreeEnvironment":"production","dashboardUrl":"https:\u002F\u002Fwww.braintreegateway.com\u002Fmerchants","gracePeriodDurationInDays":14,"mediumMembershipPlanId":{"monthly":"ce105f8c57a3","monthlyV2":"e8a5e126-792b-4ee6-8fba-d574c1b02fc5","monthlyWithTrial":"d5ee3dbe3db8","monthlyPremium":"fa741a9b47a2","yearly":"a40ad4a43185","yearlyV2":"3815d7d6-b8ca-4224-9b8c-182f9047866e","yearlyStaff":"d74fb811198a","yearlyWithTrial":"b3bc7350e5c7","yearlyPremium":"e21bd2c12166","monthlyOneYearFree":"e6c0637a-2bad-4171-ab4f-3c268633d83c","monthly25PercentOffFirstYear":"235ecc62-0cdb-49ae-9378-726cd21c504b","monthly20PercentOffFirstYear":"ba518864-9c13-4a99-91ca-411bf0cac756","monthly15PercentOffFirstYear":"594c029b-9f89-43d5-88f8-8173af4e070e","monthly10PercentOffFirstYear":"c6c7bc9a-40f2-4b51-8126-e28511d5bdb0","monthlyForStudents":"629ebe51-da7d-41fd-8293-34cd2f2030a8","yearlyOneYearFree":"78ba7be9-0d9f-4ece-aa3e-b54b826f2bf1","yearly25PercentOffFirstYear":"2dbb010d-bb8f-4eeb-ad5c-a08509f42d34","yearly20PercentOffFirstYear":"47565488-435b-47f8-bf93-40d5fbe0ebc8","yearly15PercentOffFirstYear":"8259809b-0881-47d9-acf7-6c001c7f720f","yearly10PercentOffFirstYear":"9dd694fb-96e1-472c-8d9e-3c868d5c1506","yearlyForStudents":"e29345ef-ab1c-4234-95c5-70e50fe6bc23","monthlyCad":"p52orjkaceei","yearlyCad":"h4q9g2up9ktt"},"braintreeDiscountId":{"oneMonthFree":"MONTHS_FREE_01","threeMonthsFree":"MONTHS_FREE_03","sixMonthsFree":"MONTHS_FREE_06","fiftyPercentOffOneYear":"FIFTY_PERCENT_OFF_ONE_YEAR"},"3DSecureVersion":"2","defaultCurrency":"usd","providerPlanIdCurrency":{"4ycw":"usd","rz3b":"usd","3kqm":"usd","jzw6":"usd","c2q2":"usd","nnsw":"usd","q8qw":"usd","d9y6":"usd","fx7w":"cad","nwf2":"cad"}},"paypalClientId":"AXj1G4fotC2GE8KzWX9mSxCH1wmPE3nJglf4Z2ig_amnhvlMVX87otaq58niAg9iuLktVNF_1WCMnN7v","paypal":{"host":"https:\u002F\u002Fapi.paypal.com:443","clientMode":"production","serverMode":"live","webhookId":"4G466076A0294510S","monthlyPlan":{"planId":"P-9WR0658853113943TMU5FDQA","name":"Medium Membership (Monthly) with setup fee","description":"Unlimited access to the best and brightest stories on Medium. Membership billed monthly."},"yearlyPlan":{"planId":"P-7N8963881P8875835MU5JOPQ","name":"Medium Membership (Annual) with setup fee","description":"Unlimited access to the best and brightest stories on Medium. Membership billed annually."},"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\u002Fredeem.","price":"50.00","currency":"USD","sku":"membership-gift-1-yr"},"oldMonthlyPlan":{"planId":"P-96U02458LM656772MJZUVH2Y","name":"Medium Membership (Monthly)","description":"Unlimited access to the best and brightest stories on Medium. Membership billed monthly."},"oldYearlyPlan":{"planId":"P-59P80963JF186412JJZU3SMI","name":"Medium Membership (Annual)","description":"Unlimited access to the best and brightest stories on Medium. Membership billed annually."},"monthlyPlanWithTrial":{"planId":"P-66C21969LR178604GJPVKUKY","name":"Medium Membership (Monthly) with setup fee","description":"Unlimited access to the best and brightest stories on Medium. Membership billed monthly."},"yearlyPlanWithTrial":{"planId":"P-6XW32684EX226940VKCT2MFA","name":"Medium Membership (Annual) with setup fee","description":"Unlimited access to the best and brightest stories on Medium. Membership billed annually."},"oldMonthlyPlanNoSetupFee":{"planId":"P-4N046520HR188054PCJC7LJI","name":"Medium Membership (Monthly)","description":"Unlimited access to the best and brightest stories on Medium. Membership billed monthly."},"oldYearlyPlanNoSetupFee":{"planId":"P-7A4913502Y5181304CJEJMXQ","name":"Medium Membership (Annual)","description":"Unlimited access to the best and brightest stories on Medium. Membership billed annually."},"sdkUrl":"https:\u002F\u002Fwww.paypal.com\u002Fsdk\u002Fjs"},"stripePublishableKey":"pk_live_7FReX44VnNIInZwrIIx6ghjl","log":{"json":true,"level":"info"},"imageUploadMaxSizeMb":25,"staffPicks":{"title":"Staff Picks","catalogId":"c7bc6e1ee00f"}},"session":{"xsrf":""}}</script><script>window.__APOLLO_STATE__ = {"ROOT_QUERY":{"__typename":"Query","viewer":null,"collectionByDomainOrSlug({\"domainOrSlug\":\"proandroiddev.com\"})":{"__ref":"Collection:c72404660798"},"variantFlags":[{"__typename":"VariantFlag","name":"goliath_externalsearch_enable_comment_deindexation","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"ios_social_share_sheet","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_ios_offline_reading","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_sprig","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"ios_display_paywall_after_onboarding","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_ios_easy_resubscribe","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_premium_tier_badge","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_moc_load_processor_c","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_tipping_v0_ios","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_braintree_paypal","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_conversion_ranker_v2","valueType":{"__typename":"VariantFlagString","value":"control"}},{"__typename":"VariantFlag","name":"signup_services","valueType":{"__typename":"VariantFlagString","value":"twitter,facebook,google,email,google-fastidv,google-one-tap,apple"}},{"__typename":"VariantFlag","name":"enable_ml_rank_rex_anno","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_pp_v4","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_simplified_digest_v2_b","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"allow_test_auth","valueType":{"__typename":"VariantFlagString","value":"disallow"}},{"__typename":"VariantFlag","name":"enable_marketing_emails","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"mobile_custom_app_icon","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_pill_based_home_feed","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_starspace","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"ios_in_app_free_trial","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"available_annual_plan","valueType":{"__typename":"VariantFlagString","value":"2c754bcc2995"}},{"__typename":"VariantFlag","name":"enable_ios_dynamic_paywall_aspiriational","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_group_gifting","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_iceland_forced_android","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_pre_pp_v4","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_tipping_v0_android","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_speechify_widget","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"ios_enable_friend_links_postpage_banners","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"android_enable_friend_links_creation","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"disable_partner_program_enrollment","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_aurora_pub_follower_page","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_legacy_feed_in_iceland","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_new_stripe_customers","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"ios_enable_friend_links_creation","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"available_monthly_premium_plan","valueType":{"__typename":"VariantFlagString","value":"12a660186432"}},{"__typename":"VariantFlag","name":"browsable_stream_config_bucket","valueType":{"__typename":"VariantFlagString","value":"curated-topics"}},{"__typename":"VariantFlag","name":"enable_automod","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_lite_archive_page","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_premium_tier","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"available_annual_premium_plan","valueType":{"__typename":"VariantFlagString","value":"4a442ace1476"}},{"__typename":"VariantFlag","name":"enable_speechify_ios","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_update_explore_wtf","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"can_receive_tips_v0","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_braintree_apple_pay","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_medium2_kbfd","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_susi_redesign_ios","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_tick_landing_page","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_recommended_publishers_query","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_android_verified_author","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_recirc_model","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"allow_signup","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_mastodon_for_members","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_update_topic_portals_wtf","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"allow_access","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_braintree_webhook","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_conversion_model_v2","valueType":{"__typename":"VariantFlagString","value":"group_2"}},{"__typename":"VariantFlag","name":"enable_moc_load_processor_first_story","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_cache_less_following_feed","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_seamless_social_sharing","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"reader_fair_distribution_non_qp","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"skip_fs_cache_user_vals","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_android_dynamic_aspirational_paywall","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_lite_server_upstream_deadlines","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"price_smoke_test_monthly","valueType":{"__typename":"VariantFlagString","value":""}},{"__typename":"VariantFlag","name":"enable_moc_load_processor_all_recs_surfaces","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"glyph_font_set","valueType":{"__typename":"VariantFlagString","value":"m2-unbound-source-serif-pro"}},{"__typename":"VariantFlag","name":"enable_apple_sign_in","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_bg_post_post","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_mastodon_avatar_upload","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"android_enable_editor_new_publishing_flow","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"android_enable_lists_v2","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_apple_webhook","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_bayesian_average_pub_search","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"reengagement_notification_duration","valueType":{"__typename":"VariantFlagNumber","value":3}},{"__typename":"VariantFlag","name":"android_enable_syntax_highlight","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"available_monthly_plan","valueType":{"__typename":"VariantFlagString","value":"60e220181034"}},{"__typename":"VariantFlag","name":"enable_intrinsic_automatic_actions","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_sharer_create_post_share_key","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_lite_response_markup","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"redefined_top_posts","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_deprecate_legacy_providers_v3","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_post_bottom_responses_input","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_rex_new_push_notification_endpoint","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"signin_services","valueType":{"__typename":"VariantFlagString","value":"twitter,facebook,google,email,google-fastidv,google-one-tap,apple"}},{"__typename":"VariantFlag","name":"enable_billing_frequency_on_step2","valueType":{"__typename":"VariantFlagString","value":"group_1"}},{"__typename":"VariantFlag","name":"onboarding_tags_from_top_views","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_author_cards","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_diversification_rex","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_rex_aggregator_v2","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"can_send_tips_v0","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_google_webhook","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_auto_follow_on_subscribe","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_see_pronouns","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"android_enable_friend_links_postpage_banners","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_newsletter_lo_flow_custom_domains","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_susi_redesign_android","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_creator_welcome_email","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_import","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_mastodon_for_members_username_selection","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_ranker_v10","valueType":{"__typename":"VariantFlagString","value":"control"}},{"__typename":"VariantFlag","name":"textshots_userid","valueType":{"__typename":"VariantFlagString","value":""}},{"__typename":"VariantFlag","name":"android_rating_prompt_stories_read_threshold","valueType":{"__typename":"VariantFlagNumber","value":2}},{"__typename":"VariantFlag","name":"enable_braintree_integration","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_footer_app_buttons","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_pp_country_expansion","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_publication_hierarchy_web","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_rex_reading_history","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"rex_generator_max_candidates","valueType":{"__typename":"VariantFlagNumber","value":1000}},{"__typename":"VariantFlag","name":"android_enable_image_sharer","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"android_two_hour_refresh","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_recaptcha_enterprise","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_boost_nia_v01","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_lo_homepage","valueType":{"__typename":"VariantFlagString","value":"control"}},{"__typename":"VariantFlag","name":"enable_configure_pronouns","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_rito_upstream_deadlines","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_sharer_validate_post_share_key","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_entities_to_follow_v2","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_post_bottom_responses","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"ios_iceland_nux","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_android_offline_reading","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_maim_the_meter","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"ios_enable_home_post_menu","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"num_post_bottom_responses_to_show","valueType":{"__typename":"VariantFlagString","value":"1"}},{"__typename":"VariantFlag","name":"enable_eventstats_event_processing","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_lite_continue_this_thread","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_braintree_trial_membership","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_app_flirty_thirty","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_branch_io","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"price_smoke_test_yearly","valueType":{"__typename":"VariantFlagString","value":""}},{"__typename":"VariantFlag","name":"enable_android_dynamic_programming_paywall","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"ios_enable_verified_book_author","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_ios_autorefresh","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"android_enable_topic_portals","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"coronavirus_topic_recirc","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_android_miro_v2","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_explicit_signals_updated_post_previews","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_updated_pub_recs_ui","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"limit_user_follows","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"limit_post_referrers","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_braintree_google_pay","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_lite_homepage","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_tag_recs","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_tribute_landing_page","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"ios_enable_lock_responses","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_abandoned_cart_promotion_email","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_google_one_tap","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_verifications_service","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_new_manage_membership_flow","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_ios_dynamic_paywall_programming","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_members_only_audio","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_author_cards_byline","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_explicit_signals","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_switch_plan_premium_tier","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_braintree_client","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"ios_remove_twitter_onboarding_step","valueType":{"__typename":"VariantFlagBoolean","value":true}}],"postResult({\"id\":\"f06492eeb63b\"})":{"__ref":"Post:f06492eeb63b"}},"ImageMetadata:1*A8VytPZQhvUf_MG6hm_Dlw.png":{"__typename":"ImageMetadata","id":"1*A8VytPZQhvUf_MG6hm_Dlw.png"},"Collection:c72404660798":{"__typename":"Collection","id":"c72404660798","favicon":{"__ref":"ImageMetadata:1*A8VytPZQhvUf_MG6hm_Dlw.png"},"customStyleSheet":null,"colorPalette":{"__typename":"ColorPalette","highlightSpectrum":{"__typename":"ColorSpectrum","backgroundColor":"#FFFFFFFF","colorPoints":[{"__typename":"ColorPoint","color":"#FFE4F8EF","point":0},{"__typename":"ColorPoint","color":"#FFDEF8ED","point":0.1},{"__typename":"ColorPoint","color":"#FFD9F7EB","point":0.2},{"__typename":"ColorPoint","color":"#FFD3F6E9","point":0.3},{"__typename":"ColorPoint","color":"#FFCEF6E7","point":0.4},{"__typename":"ColorPoint","color":"#FFC8F5E4","point":0.5},{"__typename":"ColorPoint","color":"#FFC2F4E2","point":0.6},{"__typename":"ColorPoint","color":"#FFBCF4E0","point":0.7},{"__typename":"ColorPoint","color":"#FFB5F3DE","point":0.8},{"__typename":"ColorPoint","color":"#FFAFF2DB","point":0.9},{"__typename":"ColorPoint","color":"#FFA8F2D9","point":1}]},"defaultBackgroundSpectrum":{"__typename":"ColorSpectrum","backgroundColor":"#FFFFFFFF","colorPoints":[{"__typename":"ColorPoint","color":"#FF2E987E","point":0},{"__typename":"ColorPoint","color":"#FF318D75","point":0.1},{"__typename":"ColorPoint","color":"#FF32826C","point":0.2},{"__typename":"ColorPoint","color":"#FF327663","point":0.3},{"__typename":"ColorPoint","color":"#FF306B5A","point":0.4},{"__typename":"ColorPoint","color":"#FF2E5F50","point":0.5},{"__typename":"ColorPoint","color":"#FF2A5347","point":0.6},{"__typename":"ColorPoint","color":"#FF26463C","point":0.7},{"__typename":"ColorPoint","color":"#FF203931","point":0.8},{"__typename":"ColorPoint","color":"#FF192C25","point":0.9},{"__typename":"ColorPoint","color":"#FF101D19","point":1}]},"tintBackgroundSpectrum":{"__typename":"ColorSpectrum","backgroundColor":"#FF7DE1C3","colorPoints":[{"__typename":"ColorPoint","color":"#FF7DE1C3","point":0},{"__typename":"ColorPoint","color":"#FF6ED2B5","point":0.1},{"__typename":"ColorPoint","color":"#FF5EC3A6","point":0.2},{"__typename":"ColorPoint","color":"#FF4EB397","point":0.3},{"__typename":"ColorPoint","color":"#FF3CA388","point":0.4},{"__typename":"ColorPoint","color":"#FF269278","point":0.5},{"__typename":"ColorPoint","color":"#FF008168","point":0.6},{"__typename":"ColorPoint","color":"#FF006F57","point":0.7},{"__typename":"ColorPoint","color":"#FF005C45","point":0.8},{"__typename":"ColorPoint","color":"#FF004732","point":0.9},{"__typename":"ColorPoint","color":"#FF002F1C","point":1}]}},"domain":"proandroiddev.com","slug":"proandroiddev","googleAnalyticsId":null,"editors":[{"__typename":"CollectionMastheadUserItem","user":{"__ref":"User:fbb92b85b19e"}},{"__typename":"CollectionMastheadUserItem","user":{"__ref":"User:eac743c05401"}},{"__typename":"CollectionMastheadUserItem","user":{"__ref":"User:c6e8e225f7d5"}},{"__typename":"CollectionMastheadUserItem","user":{"__ref":"User:96912518b8bb"}},{"__typename":"CollectionMastheadUserItem","user":{"__ref":"User:d022c4e0f12b"}},{"__typename":"CollectionMastheadUserItem","user":{"__ref":"User:6fffa5371f97"}},{"__typename":"CollectionMastheadUserItem","user":{"__ref":"User:bf87f3641b6c"}},{"__typename":"CollectionMastheadUserItem","user":{"__ref":"User:f6e9347ca668"}}],"name":"ProAndroidDev","avatar":{"__ref":"ImageMetadata:1*XVtdl45m8YaYrPI4buJ5yQ.png"},"description":"The latest posts from Android Professionals and Google Developer Experts.","subscriberCount":62222,"latestPostsConnection({\"paging\":{\"limit\":1}})":{"__typename":"PostConnection","posts":[{"__ref":"Post:ff7bb40470df"}]},"viewerEdge":{"__ref":"CollectionViewerEdge:collectionId:c72404660798-viewerId:lo_6bca7498358e"},"twitterUsername":"proandroiddev","facebookPageId":null,"logo":{"__ref":"ImageMetadata:"}},"User:fbb92b85b19e":{"__typename":"User","id":"fbb92b85b19e"},"User:eac743c05401":{"__typename":"User","id":"eac743c05401"},"User:c6e8e225f7d5":{"__typename":"User","id":"c6e8e225f7d5"},"User:96912518b8bb":{"__typename":"User","id":"96912518b8bb"},"User:d022c4e0f12b":{"__typename":"User","id":"d022c4e0f12b"},"User:6fffa5371f97":{"__typename":"User","id":"6fffa5371f97"},"User:bf87f3641b6c":{"__typename":"User","id":"bf87f3641b6c"},"User:f6e9347ca668":{"__typename":"User","id":"f6e9347ca668"},"ImageMetadata:1*XVtdl45m8YaYrPI4buJ5yQ.png":{"__typename":"ImageMetadata","id":"1*XVtdl45m8YaYrPI4buJ5yQ.png"},"User:9ad99ca649d4":{"__typename":"User","id":"9ad99ca649d4","customDomainState":{"__typename":"CustomDomainState","live":{"__typename":"CustomDomain","domain":"giuliani-arnaud.medium.com"}},"hasSubdomain":true,"username":"giuliani-arnaud"},"Post:ff7bb40470df":{"__typename":"Post","id":"ff7bb40470df","firstPublishedAt":1732672821762,"creator":{"__ref":"User:9ad99ca649d4"},"collection":{"__ref":"Collection:c72404660798"},"isSeries":false,"mediumUrl":"https:\u002F\u002Fproandroiddev.com\u002Fbenchmarking-koin-vs-dagger-hilt-in-modern-android-development-2024-ff7bb40470df","sequence":null,"uniqueSlug":"benchmarking-koin-vs-dagger-hilt-in-modern-android-development-2024-ff7bb40470df"},"LinkedAccounts:cb954442a18e":{"__typename":"LinkedAccounts","mastodon":null,"id":"cb954442a18e"},"UserViewerEdge:userId:cb954442a18e-viewerId:lo_6bca7498358e":{"__typename":"UserViewerEdge","id":"userId:cb954442a18e-viewerId:lo_6bca7498358e","isFollowing":false,"isUser":false,"isMuting":false},"NewsletterV3:d4236acce56c":{"__typename":"NewsletterV3","id":"d4236acce56c","type":"NEWSLETTER_TYPE_AUTHOR","slug":"cb954442a18e","name":"cb954442a18e","collection":null,"user":{"__ref":"User:cb954442a18e"}},"User:cb954442a18e":{"__typename":"User","id":"cb954442a18e","name":"Dobri Kostadinov","username":"dobri.kostadinov","newsletterV3":{"__ref":"NewsletterV3:d4236acce56c"},"linkedAccounts":{"__ref":"LinkedAccounts:cb954442a18e"},"isSuspended":false,"imageId":"1*PDWUz7RmoqP9kmFnZzGPUg.jpeg","mediumMemberAt":1569999600000,"verifications":{"__typename":"VerifiedInfo","isBookAuthor":false},"socialStats":{"__typename":"SocialStats","followerCount":1990,"followingCount":8,"collectionFollowingCount":8},"customDomainState":null,"hasSubdomain":false,"bio":"15+ years in native Android dev (Java, Kotlin). Expert in developing beautiful android native apps.","isPartnerProgramEnrolled":true,"viewerEdge":{"__ref":"UserViewerEdge:userId:cb954442a18e-viewerId:lo_6bca7498358e"},"viewerIsUser":false,"postSubscribeMembershipUpsellShownAt":0,"membership":{"__ref":"Membership:e7bbc5e7b1a0"},"allowNotes":true,"twitterScreenName":""},"Membership:e7bbc5e7b1a0":{"__typename":"Membership","tier":"MEMBER","id":"e7bbc5e7b1a0"},"Paragraph:bd8b63e20705_0":{"__typename":"Paragraph","id":"bd8b63e20705_0","name":"a5cd","type":"H3","href":null,"layout":null,"metadata":null,"text":"Jetpack compose: What Scaffold have and have not","hasDropCap":null,"dropCapImage":null,"markups":[{"__typename":"Markup","type":"CODE","start":22,"end":30,"href":null,"anchorType":null,"userId":null,"linkMetadata":null}],"codeBlockMetadata":null,"iframe":null,"mixtapeMetadata":null},"Paragraph:bd8b63e20705_1":{"__typename":"Paragraph","id":"bd8b63e20705_1","name":"7edd","type":"H4","href":null,"layout":null,"metadata":null,"text":"Unlocking the Power of Scaffold: What It Can and Can’t Do in Jetpack Compose","hasDropCap":null,"dropCapImage":null,"markups":[],"codeBlockMetadata":null,"iframe":null,"mixtapeMetadata":null},"ImageMetadata:1*J1YDs7Gc77TshLLZvlZ1Xw.png":{"__typename":"ImageMetadata","id":"1*J1YDs7Gc77TshLLZvlZ1Xw.png","originalHeight":1024,"originalWidth":1024,"focusPercentX":null,"focusPercentY":null,"alt":null},"Paragraph:bd8b63e20705_2":{"__typename":"Paragraph","id":"bd8b63e20705_2","name":"39e0","type":"IMG","href":null,"layout":"INSET_CENTER","metadata":{"__ref":"ImageMetadata:1*J1YDs7Gc77TshLLZvlZ1Xw.png"},"text":"This image was generated with the assistance of AI","hasDropCap":null,"dropCapImage":null,"markups":[],"codeBlockMetadata":null,"iframe":null,"mixtapeMetadata":null},"Paragraph:bd8b63e20705_3":{"__typename":"Paragraph","id":"bd8b63e20705_3","name":"b694","type":"H3","href":null,"layout":null,"metadata":null,"text":"Introduction","hasDropCap":null,"dropCapImage":null,"markups":[],"codeBlockMetadata":null,"iframe":null,"mixtapeMetadata":null},"Paragraph:bd8b63e20705_4":{"__typename":"Paragraph","id":"bd8b63e20705_4","name":"5745","type":"P","href":null,"layout":null,"metadata":null,"text":"Jetpack Compose has revolutionized Android UI development by providing a declarative and reactive approach to building user interfaces. One of its most powerful and commonly used layout components is Scaffold. It simplifies setting up standard app layouts by offering ready-to-use slots for placing items like a TopBar, BottomBar, FloatingActionButton, and more.","hasDropCap":null,"dropCapImage":null,"markups":[{"__typename":"Markup","type":"CODE","start":200,"end":208,"href":null,"anchorType":null,"userId":null,"linkMetadata":null},{"__typename":"Markup","type":"CODE","start":312,"end":318,"href":null,"anchorType":null,"userId":null,"linkMetadata":null},{"__typename":"Markup","type":"CODE","start":320,"end":329,"href":null,"anchorType":null,"userId":null,"linkMetadata":null},{"__typename":"Markup","type":"CODE","start":331,"end":351,"href":null,"anchorType":null,"userId":null,"linkMetadata":null}],"codeBlockMetadata":null,"iframe":null,"mixtapeMetadata":null},"Paragraph:bd8b63e20705_5":{"__typename":"Paragraph","id":"bd8b63e20705_5","name":"3bc0","type":"P","href":null,"layout":null,"metadata":null,"text":"In this article, we will explore what Scaffold is, what it provides, and also what it doesn’t, helping you understand how and when to use it effectively in your Jetpack Compose projects.","hasDropCap":null,"dropCapImage":null,"markups":[{"__typename":"Markup","type":"CODE","start":38,"end":46,"href":null,"anchorType":null,"userId":null,"linkMetadata":null}],"codeBlockMetadata":null,"iframe":null,"mixtapeMetadata":null},"Paragraph:bd8b63e20705_6":{"__typename":"Paragraph","id":"bd8b63e20705_6","name":"8ac7","type":"H3","href":null,"layout":null,"metadata":null,"text":"What is Scaffold in Jetpack Compose?","hasDropCap":null,"dropCapImage":null,"markups":[],"codeBlockMetadata":null,"iframe":null,"mixtapeMetadata":null},"Paragraph:bd8b63e20705_7":{"__typename":"Paragraph","id":"bd8b63e20705_7","name":"bee7","type":"P","href":null,"layout":null,"metadata":null,"text":"At its core, Scaffold is a composable that provides a structured layout, designed to handle the basic layout patterns that are commonly used in Android apps. It allows developers to place key components such as an app bar, a bottom navigation bar, and floating action buttons with ease, while also giving full control over the main content of the screen.","hasDropCap":null,"dropCapImage":null,"markups":[{"__typename":"Markup","type":"CODE","start":13,"end":21,"href":null,"anchorType":null,"userId":null,"linkMetadata":null}],"codeBlockMetadata":null,"iframe":null,"mixtapeMetadata":null},"Paragraph:bd8b63e20705_8":{"__typename":"Paragraph","id":"bd8b63e20705_8","name":"7f0b","type":"P","href":null,"layout":null,"metadata":null,"text":"Here’s a breakdown of the main components that Scaffold provides:","hasDropCap":null,"dropCapImage":null,"markups":[{"__typename":"Markup","type":"CODE","start":47,"end":55,"href":null,"anchorType":null,"userId":null,"linkMetadata":null}],"codeBlockMetadata":null,"iframe":null,"mixtapeMetadata":null},"Paragraph:bd8b63e20705_9":{"__typename":"Paragraph","id":"bd8b63e20705_9","name":"6ff7","type":"ULI","href":null,"layout":null,"metadata":null,"text":"TopBar: For placing a toolbar or custom top app bar.","hasDropCap":null,"dropCapImage":null,"markups":[{"__typename":"Markup","type":"STRONG","start":0,"end":6,"href":null,"anchorType":null,"userId":null,"linkMetadata":null}],"codeBlockMetadata":null,"iframe":null,"mixtapeMetadata":null},"Paragraph:bd8b63e20705_10":{"__typename":"Paragraph","id":"bd8b63e20705_10","name":"1acb","type":"ULI","href":null,"layout":null,"metadata":null,"text":"BottomBar: For a bottom navigation bar or similar UI elements.","hasDropCap":null,"dropCapImage":null,"markups":[{"__typename":"Markup","type":"STRONG","start":0,"end":9,"href":null,"anchorType":null,"userId":null,"linkMetadata":null}],"codeBlockMetadata":null,"iframe":null,"mixtapeMetadata":null},"Paragraph:bd8b63e20705_11":{"__typename":"Paragraph","id":"bd8b63e20705_11","name":"6b78","type":"ULI","href":null,"layout":null,"metadata":null,"text":"FloatingActionButton (FAB): For an action button that floats above the content.","hasDropCap":null,"dropCapImage":null,"markups":[{"__typename":"Markup","type":"STRONG","start":0,"end":26,"href":null,"anchorType":null,"userId":null,"linkMetadata":null}],"codeBlockMetadata":null,"iframe":null,"mixtapeMetadata":null},"Paragraph:bd8b63e20705_12":{"__typename":"Paragraph","id":"bd8b63e20705_12","name":"578f","type":"ULI","href":null,"layout":null,"metadata":null,"text":"Drawer: To add navigation drawers.","hasDropCap":null,"dropCapImage":null,"markups":[{"__typename":"Markup","type":"STRONG","start":0,"end":6,"href":null,"anchorType":null,"userId":null,"linkMetadata":null}],"codeBlockMetadata":null,"iframe":null,"mixtapeMetadata":null},"Paragraph:bd8b63e20705_13":{"__typename":"Paragraph","id":"bd8b63e20705_13","name":"5086","type":"ULI","href":null,"layout":null,"metadata":null,"text":"Snackbar: For showing snackbars when user feedback is required.","hasDropCap":null,"dropCapImage":null,"markups":[{"__typename":"Markup","type":"STRONG","start":0,"end":8,"href":null,"anchorType":null,"userId":null,"linkMetadata":null}],"codeBlockMetadata":null,"iframe":null,"mixtapeMetadata":null},"Paragraph:bd8b63e20705_14":{"__typename":"Paragraph","id":"bd8b63e20705_14","name":"d13a","type":"ULI","href":null,"layout":null,"metadata":null,"text":"Content: The main area where most of the app’s UI will live.","hasDropCap":null,"dropCapImage":null,"markups":[{"__typename":"Markup","type":"STRONG","start":0,"end":7,"href":null,"anchorType":null,"userId":null,"linkMetadata":null}],"codeBlockMetadata":null,"iframe":null,"mixtapeMetadata":null},"Paragraph:bd8b63e20705_15":{"__typename":"Paragraph","id":"bd8b63e20705_15","name":"280b","type":"P","href":null,"layout":null,"metadata":null,"text":"Let’s dive deeper into these individual capabilities.","hasDropCap":null,"dropCapImage":null,"markups":[],"codeBlockMetadata":null,"iframe":null,"mixtapeMetadata":null},"Paragraph:bd8b63e20705_16":{"__typename":"Paragraph","id":"bd8b63e20705_16","name":"f8f5","type":"H3","href":null,"layout":null,"metadata":null,"text":"Capabilities of Scaffold","hasDropCap":null,"dropCapImage":null,"markups":[],"codeBlockMetadata":null,"iframe":null,"mixtapeMetadata":null},"Paragraph:bd8b63e20705_17":{"__typename":"Paragraph","id":"bd8b63e20705_17","name":"16eb","type":"H4","href":null,"layout":null,"metadata":null,"text":"TopBar","hasDropCap":null,"dropCapImage":null,"markups":[],"codeBlockMetadata":null,"iframe":null,"mixtapeMetadata":null},"Paragraph:bd8b63e20705_18":{"__typename":"Paragraph","id":"bd8b63e20705_18","name":"71e0","type":"P","href":null,"layout":null,"metadata":null,"text":"The TopBar slot is a convenient place to add a TopAppBar, which is commonly used to display the app’s title, navigation icons, and actions. Here’s how you can add a TopAppBar to a Scaffold:","hasDropCap":null,"dropCapImage":null,"markups":[{"__typename":"Markup","type":"CODE","start":4,"end":10,"href":null,"anchorType":null,"userId":null,"linkMetadata":null},{"__typename":"Markup","type":"CODE","start":47,"end":56,"href":null,"anchorType":null,"userId":null,"linkMetadata":null},{"__typename":"Markup","type":"CODE","start":165,"end":174,"href":null,"anchorType":null,"userId":null,"linkMetadata":null}],"codeBlockMetadata":null,"iframe":null,"mixtapeMetadata":null},"Paragraph:bd8b63e20705_19":{"__typename":"Paragraph","id":"bd8b63e20705_19","name":"bf5b","type":"PRE","href":null,"layout":null,"metadata":null,"text":"Scaffold(\n topBar = {\n TopAppBar(\n title = { Text(\"My App\") },\n navigationIcon = {\n IconButton(onClick = { \u002F* Handle navigation *\u002F }) {\n Icon(Icons.Filled.Menu, contentDescription = \"Menu\")\n }\n },\n actions = {\n IconButton(onClick = { \u002F* Handle action *\u002F }) {\n Icon(Icons.Filled.Favorite, contentDescription = \"Favorite\")\n }\n }\n )\n },\n content = { \u002F* Content here *\u002F }\n)","hasDropCap":null,"dropCapImage":null,"markups":[],"codeBlockMetadata":{"__typename":"CodeBlockMetadata","mode":"EXPLICIT","lang":"kotlin"},"iframe":null,"mixtapeMetadata":null},"Paragraph:bd8b63e20705_20":{"__typename":"Paragraph","id":"bd8b63e20705_20","name":"4936","type":"H3","href":null,"layout":null,"metadata":null,"text":"BottomBar","hasDropCap":null,"dropCapImage":null,"markups":[],"codeBlockMetadata":null,"iframe":null,"mixtapeMetadata":null},"Paragraph:bd8b63e20705_21":{"__typename":"Paragraph","id":"bd8b63e20705_21","name":"282d","type":"P","href":null,"layout":null,"metadata":null,"text":"A BottomBar can be used for navigation or displaying key actions. Below is an example of how to add a simple BottomAppBar inside the Scaffold:","hasDropCap":null,"dropCapImage":null,"markups":[{"__typename":"Markup","type":"CODE","start":2,"end":11,"href":null,"anchorType":null,"userId":null,"linkMetadata":null},{"__typename":"Markup","type":"CODE","start":109,"end":121,"href":null,"anchorType":null,"userId":null,"linkMetadata":null},{"__typename":"Markup","type":"CODE","start":133,"end":141,"href":null,"anchorType":null,"userId":null,"linkMetadata":null}],"codeBlockMetadata":null,"iframe":null,"mixtapeMetadata":null},"Paragraph:bd8b63e20705_22":{"__typename":"Paragraph","id":"bd8b63e20705_22","name":"e534","type":"PRE","href":null,"layout":null,"metadata":null,"text":"Scaffold(\n bottomBar = {\n BottomAppBar {\n IconButton(onClick = { \u002F* Handle home *\u002F }) {\n Icon(Icons.Filled.Home, contentDescription = \"Home\")\n }\n Spacer(Modifier.weight(1f, true)) \u002F\u002F Push the next icon to the end\n IconButton(onClick = { \u002F* Handle profile *\u002F }) {\n Icon(Icons.Filled.Person, contentDescription = \"Profile\")\n }\n }\n },\n content = { \u002F* Content here *\u002F }\n)","hasDropCap":null,"dropCapImage":null,"markups":[],"codeBlockMetadata":{"__typename":"CodeBlockMetadata","mode":"EXPLICIT","lang":"kotlin"},"iframe":null,"mixtapeMetadata":null},"Paragraph:bd8b63e20705_23":{"__typename":"Paragraph","id":"bd8b63e20705_23","name":"7d88","type":"H3","href":null,"layout":null,"metadata":null,"text":"FloatingActionButton (FAB)","hasDropCap":null,"dropCapImage":null,"markups":[],"codeBlockMetadata":null,"iframe":null,"mixtapeMetadata":null},"Paragraph:bd8b63e20705_24":{"__typename":"Paragraph","id":"bd8b63e20705_24","name":"8b00","type":"P","href":null,"layout":null,"metadata":null,"text":"One of the most iconic elements in Android apps, the FAB, is easy to integrate with Scaffold:","hasDropCap":null,"dropCapImage":null,"markups":[{"__typename":"Markup","type":"CODE","start":84,"end":92,"href":null,"anchorType":null,"userId":null,"linkMetadata":null}],"codeBlockMetadata":null,"iframe":null,"mixtapeMetadata":null},"Paragraph:bd8b63e20705_25":{"__typename":"Paragraph","id":"bd8b63e20705_25","name":"29f0","type":"PRE","href":null,"layout":null,"metadata":null,"text":"Scaffold(\n floatingActionButton = {\n FloatingActionButton(onClick = { \u002F* Handle FAB click *\u002F }) {\n Icon(Icons.Filled.Add, contentDescription = \"Add\")\n }\n },\n content = { \u002F* Content here *\u002F }\n)","hasDropCap":null,"dropCapImage":null,"markups":[],"codeBlockMetadata":{"__typename":"CodeBlockMetadata","mode":"EXPLICIT","lang":"kotlin"},"iframe":null,"mixtapeMetadata":null},"Paragraph:bd8b63e20705_26":{"__typename":"Paragraph","id":"bd8b63e20705_26","name":"6beb","type":"H3","href":null,"layout":null,"metadata":null,"text":"DrawerContent","hasDropCap":null,"dropCapImage":null,"markups":[],"codeBlockMetadata":null,"iframe":null,"mixtapeMetadata":null},"Paragraph:bd8b63e20705_27":{"__typename":"Paragraph","id":"bd8b63e20705_27","name":"dbb2","type":"P","href":null,"layout":null,"metadata":null,"text":"If you need a navigation drawer, Scaffold makes it easy to add one using the drawerContent parameter. This allows users to swipe from the side to reveal a drawer with navigation or other options.","hasDropCap":null,"dropCapImage":null,"markups":[{"__typename":"Markup","type":"CODE","start":33,"end":41,"href":null,"anchorType":null,"userId":null,"linkMetadata":null},{"__typename":"Markup","type":"CODE","start":77,"end":90,"href":null,"anchorType":null,"userId":null,"linkMetadata":null}],"codeBlockMetadata":null,"iframe":null,"mixtapeMetadata":null},"Paragraph:bd8b63e20705_28":{"__typename":"Paragraph","id":"bd8b63e20705_28","name":"926c","type":"PRE","href":null,"layout":null,"metadata":null,"text":"Scaffold(\n drawerContent = {\n Column {\n Text(\"Home\")\n Text(\"Profile\")\n Text(\"Settings\")\n }\n },\n content = { \u002F* Content here *\u002F }\n)","hasDropCap":null,"dropCapImage":null,"markups":[],"codeBlockMetadata":{"__typename":"CodeBlockMetadata","mode":"EXPLICIT","lang":"kotlin"},"iframe":null,"mixtapeMetadata":null},"Paragraph:bd8b63e20705_29":{"__typename":"Paragraph","id":"bd8b63e20705_29","name":"70b9","type":"H3","href":null,"layout":null,"metadata":null,"text":"Snackbar","hasDropCap":null,"dropCapImage":null,"markups":[],"codeBlockMetadata":null,"iframe":null,"mixtapeMetadata":null},"Paragraph:bd8b63e20705_30":{"__typename":"Paragraph","id":"bd8b63e20705_30","name":"6042","type":"P","href":null,"layout":null,"metadata":null,"text":"Stay tuned for upcoming articles where I’ll dive into customizing snackbars. For now, let’s keep it simple.","hasDropCap":null,"dropCapImage":null,"markups":[],"codeBlockMetadata":null,"iframe":null,"mixtapeMetadata":null},"Paragraph:bd8b63e20705_31":{"__typename":"Paragraph","id":"bd8b63e20705_31","name":"5679","type":"P","href":null,"layout":null,"metadata":null,"text":"Snackbars are essential for showing brief messages to the user. You can trigger them using the ScaffoldState, which is tied to the Scaffold:","hasDropCap":null,"dropCapImage":null,"markups":[{"__typename":"Markup","type":"CODE","start":95,"end":108,"href":null,"anchorType":null,"userId":null,"linkMetadata":null},{"__typename":"Markup","type":"CODE","start":131,"end":139,"href":null,"anchorType":null,"userId":null,"linkMetadata":null}],"codeBlockMetadata":null,"iframe":null,"mixtapeMetadata":null},"Paragraph:bd8b63e20705_32":{"__typename":"Paragraph","id":"bd8b63e20705_32","name":"55f2","type":"PRE","href":null,"layout":null,"metadata":null,"text":"val scaffoldState = rememberScaffoldState()\nval scope = rememberCoroutineScope()\n\nScaffold(\n scaffoldState = scaffoldState,\n content = { \u002F* Content here *\u002F },\n floatingActionButton = {\n FloatingActionButton(onClick = {\n scope.launch {\n scaffoldState.snackbarHostState.showSnackbar(\"This is a Snackbar\")\n }\n }) {\n Icon(Icons.Filled.Info, contentDescription = \"Show Snackbar\")\n }\n }\n)","hasDropCap":null,"dropCapImage":null,"markups":[],"codeBlockMetadata":{"__typename":"CodeBlockMetadata","mode":"EXPLICIT","lang":"kotlin"},"iframe":null,"mixtapeMetadata":null},"Paragraph:bd8b63e20705_33":{"__typename":"Paragraph","id":"bd8b63e20705_33","name":"a4cd","type":"H3","href":null,"layout":null,"metadata":null,"text":"Content Slot","hasDropCap":null,"dropCapImage":null,"markups":[],"codeBlockMetadata":null,"iframe":null,"mixtapeMetadata":null},"Paragraph:bd8b63e20705_34":{"__typename":"Paragraph","id":"bd8b63e20705_34","name":"b419","type":"P","href":null,"layout":null,"metadata":null,"text":"The content slot is where most of the app’s layout will reside. This is where you define your custom UI, such as a LazyColumn, Box, or any other Compose component.","hasDropCap":null,"dropCapImage":null,"markups":[{"__typename":"Markup","type":"CODE","start":4,"end":11,"href":null,"anchorType":null,"userId":null,"linkMetadata":null},{"__typename":"Markup","type":"CODE","start":115,"end":125,"href":null,"anchorType":null,"userId":null,"linkMetadata":null},{"__typename":"Markup","type":"CODE","start":127,"end":130,"href":null,"anchorType":null,"userId":null,"linkMetadata":null}],"codeBlockMetadata":null,"iframe":null,"mixtapeMetadata":null},"Paragraph:bd8b63e20705_35":{"__typename":"Paragraph","id":"bd8b63e20705_35","name":"7cf5","type":"PRE","href":null,"layout":null,"metadata":null,"text":"Scaffold(\n topBar = { \u002F* TopAppBar *\u002F },\n content = { padding -\u003E\n LazyColumn(\n contentPadding = padding\n ) {\n items(100) {\n Text(\"Item #$it\", Modifier.padding(16.dp))\n }\n }\n }\n)","hasDropCap":null,"dropCapImage":null,"markups":[],"codeBlockMetadata":{"__typename":"CodeBlockMetadata","mode":"EXPLICIT","lang":"kotlin"},"iframe":null,"mixtapeMetadata":null},"Paragraph:bd8b63e20705_36":{"__typename":"Paragraph","id":"bd8b63e20705_36","name":"3f96","type":"H3","href":null,"layout":null,"metadata":null,"text":"What Scaffold Does Not Have","hasDropCap":null,"dropCapImage":null,"markups":[],"codeBlockMetadata":null,"iframe":null,"mixtapeMetadata":null},"Paragraph:bd8b63e20705_37":{"__typename":"Paragraph","id":"bd8b63e20705_37","name":"d29d","type":"P","href":null,"layout":null,"metadata":null,"text":"While Scaffold provides many useful features, it’s not a one-size-fits-all solution. Here are a few things it doesn’t provide:","hasDropCap":null,"dropCapImage":null,"markups":[{"__typename":"Markup","type":"CODE","start":6,"end":14,"href":null,"anchorType":null,"userId":null,"linkMetadata":null}],"codeBlockMetadata":null,"iframe":null,"mixtapeMetadata":null},"Paragraph:bd8b63e20705_38":{"__typename":"Paragraph","id":"bd8b63e20705_38","name":"7dff","type":"H4","href":null,"layout":null,"metadata":null,"text":"Multi-layered Layouts","hasDropCap":null,"dropCapImage":null,"markups":[],"codeBlockMetadata":null,"iframe":null,"mixtapeMetadata":null},"Paragraph:bd8b63e20705_39":{"__typename":"Paragraph","id":"bd8b63e20705_39","name":"71f4","type":"P","href":null,"layout":null,"metadata":null,"text":"Scaffold works well for simple layouts, but if your UI requires complex nested scaffolds or multiple layers of drawers or toolbars, you’ll need to manage those layouts manually.","hasDropCap":null,"dropCapImage":null,"markups":[{"__typename":"Markup","type":"CODE","start":0,"end":8,"href":null,"anchorType":null,"userId":null,"linkMetadata":null}],"codeBlockMetadata":null,"iframe":null,"mixtapeMetadata":null},"Paragraph:bd8b63e20705_40":{"__typename":"Paragraph","id":"bd8b63e20705_40","name":"3eae","type":"H4","href":null,"layout":null,"metadata":null,"text":"Custom Animations","hasDropCap":null,"dropCapImage":null,"markups":[],"codeBlockMetadata":null,"iframe":null,"mixtapeMetadata":null},"Paragraph:bd8b63e20705_41":{"__typename":"Paragraph","id":"bd8b63e20705_41","name":"801e","type":"P","href":null,"layout":null,"metadata":null,"text":"While Compose supports animations, Scaffold doesn’t provide built-in transitions for elements like showing and hiding the FAB or BottomBar. You’ll need to manually manage these animations.","hasDropCap":null,"dropCapImage":null,"markups":[{"__typename":"Markup","type":"CODE","start":35,"end":43,"href":null,"anchorType":null,"userId":null,"linkMetadata":null}],"codeBlockMetadata":null,"iframe":null,"mixtapeMetadata":null},"Paragraph:bd8b63e20705_42":{"__typename":"Paragraph","id":"bd8b63e20705_42","name":"fae3","type":"H4","href":null,"layout":null,"metadata":null,"text":"Built-in State Management","hasDropCap":null,"dropCapImage":null,"markups":[],"codeBlockMetadata":null,"iframe":null,"mixtapeMetadata":null},"Paragraph:bd8b63e20705_43":{"__typename":"Paragraph","id":"bd8b63e20705_43","name":"4ad9","type":"P","href":null,"layout":null,"metadata":null,"text":"Scaffold focuses on UI structure, and it doesn’t manage state like whether a drawer is open or closed. That’s up to you to manage using ScaffoldState and rememberCoroutineScope.","hasDropCap":null,"dropCapImage":null,"markups":[{"__typename":"Markup","type":"CODE","start":0,"end":8,"href":null,"anchorType":null,"userId":null,"linkMetadata":null},{"__typename":"Markup","type":"CODE","start":136,"end":149,"href":null,"anchorType":null,"userId":null,"linkMetadata":null},{"__typename":"Markup","type":"CODE","start":154,"end":176,"href":null,"anchorType":null,"userId":null,"linkMetadata":null}],"codeBlockMetadata":null,"iframe":null,"mixtapeMetadata":null},"Paragraph:bd8b63e20705_44":{"__typename":"Paragraph","id":"bd8b63e20705_44","name":"760c","type":"H4","href":null,"layout":null,"metadata":null,"text":"Advanced Drawer Behavior","hasDropCap":null,"dropCapImage":null,"markups":[],"codeBlockMetadata":null,"iframe":null,"mixtapeMetadata":null},"Paragraph:bd8b63e20705_45":{"__typename":"Paragraph","id":"bd8b63e20705_45","name":"e04b","type":"P","href":null,"layout":null,"metadata":null,"text":"For more advanced navigation drawer patterns (like multi-step drawers), you’ll need to implement custom logic or use other Compose features to handle the complexity.","hasDropCap":null,"dropCapImage":null,"markups":[],"codeBlockMetadata":null,"iframe":null,"mixtapeMetadata":null},"Paragraph:bd8b63e20705_46":{"__typename":"Paragraph","id":"bd8b63e20705_46","name":"4dd8","type":"H3","href":null,"layout":null,"metadata":null,"text":"Combining Scaffold with Other Compose Components","hasDropCap":null,"dropCapImage":null,"markups":[],"codeBlockMetadata":null,"iframe":null,"mixtapeMetadata":null},"Paragraph:bd8b63e20705_47":{"__typename":"Paragraph","id":"bd8b63e20705_47","name":"9e2e","type":"P","href":null,"layout":null,"metadata":null,"text":"Scaffold is highly flexible, and one of its strengths is its ability to integrate seamlessly with other composables. Here’s an example of how you can combine Scaffold with a LazyColumn to create a scrollable list:","hasDropCap":null,"dropCapImage":null,"markups":[{"__typename":"Markup","type":"CODE","start":0,"end":8,"href":null,"anchorType":null,"userId":null,"linkMetadata":null},{"__typename":"Markup","type":"CODE","start":158,"end":166,"href":null,"anchorType":null,"userId":null,"linkMetadata":null},{"__typename":"Markup","type":"CODE","start":174,"end":184,"href":null,"anchorType":null,"userId":null,"linkMetadata":null}],"codeBlockMetadata":null,"iframe":null,"mixtapeMetadata":null},"Paragraph:bd8b63e20705_48":{"__typename":"Paragraph","id":"bd8b63e20705_48","name":"d50e","type":"PRE","href":null,"layout":null,"metadata":null,"text":"Scaffold(\n topBar = { \u002F* TopAppBar *\u002F },\n content = { padding -\u003E\n LazyColumn(\n contentPadding = padding\n ) {\n items(50) { index -\u003E\n Text(\"Item $index\", Modifier.padding(16.dp))\n }\n }\n }\n)","hasDropCap":null,"dropCapImage":null,"markups":[],"codeBlockMetadata":{"__typename":"CodeBlockMetadata","mode":"EXPLICIT","lang":"kotlin"},"iframe":null,"mixtapeMetadata":null},"Paragraph:bd8b63e20705_49":{"__typename":"Paragraph","id":"bd8b63e20705_49","name":"6572","type":"P","href":null,"layout":null,"metadata":null,"text":"You can also easily integrate bottom sheets, dialogs, and more into your Scaffold layout, making it the perfect foundation for your app’s UI.","hasDropCap":null,"dropCapImage":null,"markups":[{"__typename":"Markup","type":"CODE","start":73,"end":81,"href":null,"anchorType":null,"userId":null,"linkMetadata":null}],"codeBlockMetadata":null,"iframe":null,"mixtapeMetadata":null},"Paragraph:bd8b63e20705_50":{"__typename":"Paragraph","id":"bd8b63e20705_50","name":"8d9f","type":"H3","href":null,"layout":null,"metadata":null,"text":"Performance and Usability Considerations","hasDropCap":null,"dropCapImage":null,"markups":[],"codeBlockMetadata":null,"iframe":null,"mixtapeMetadata":null},"Paragraph:bd8b63e20705_51":{"__typename":"Paragraph","id":"bd8b63e20705_51","name":"6d55","type":"P","href":null,"layout":null,"metadata":null,"text":"When working with Scaffold, it's important to be aware of potential performance issues. Overusing nesting or placing too many heavy elements inside a Scaffold can slow down your app, especially on low-end devices. Keep the layout lightweight and avoid unnecessary recompositions to ensure smooth performance.","hasDropCap":null,"dropCapImage":null,"markups":[{"__typename":"Markup","type":"CODE","start":18,"end":26,"href":null,"anchorType":null,"userId":null,"linkMetadata":null},{"__typename":"Markup","type":"CODE","start":150,"end":158,"href":null,"anchorType":null,"userId":null,"linkMetadata":null}],"codeBlockMetadata":null,"iframe":null,"mixtapeMetadata":null},"Paragraph:bd8b63e20705_52":{"__typename":"Paragraph","id":"bd8b63e20705_52","name":"67ba","type":"H3","href":null,"layout":null,"metadata":null,"text":"Conclusion","hasDropCap":null,"dropCapImage":null,"markups":[],"codeBlockMetadata":null,"iframe":null,"mixtapeMetadata":null},"Paragraph:bd8b63e20705_53":{"__typename":"Paragraph","id":"bd8b63e20705_53","name":"e098","type":"P","href":null,"layout":null,"metadata":null,"text":"Scaffold in Jetpack Compose is a powerful and flexible tool for laying out the basic structure of your Android UI. It simplifies the integration of standard components like app bars, FABs, and drawers, while also providing a customizable content area where your app’s main interface will live.","hasDropCap":null,"dropCapImage":null,"markups":[{"__typename":"Markup","type":"CODE","start":0,"end":8,"href":null,"anchorType":null,"userId":null,"linkMetadata":null}],"codeBlockMetadata":null,"iframe":null,"mixtapeMetadata":null},"Paragraph:bd8b63e20705_54":{"__typename":"Paragraph","id":"bd8b63e20705_54","name":"34aa","type":"P","href":null,"layout":null,"metadata":null,"text":"However, it’s not without limitations. More complex layouts and advanced animations will require additional handling. But when used correctly, Scaffold can help you rapidly develop polished and intuitive interfaces.","hasDropCap":null,"dropCapImage":null,"markups":[{"__typename":"Markup","type":"CODE","start":143,"end":151,"href":null,"anchorType":null,"userId":null,"linkMetadata":null}],"codeBlockMetadata":null,"iframe":null,"mixtapeMetadata":null},"Paragraph:bd8b63e20705_55":{"__typename":"Paragraph","id":"bd8b63e20705_55","name":"471c","type":"P","href":null,"layout":null,"metadata":null,"text":"Explore the power of Scaffold in your next Jetpack Compose project and build layouts with ease!","hasDropCap":null,"dropCapImage":null,"markups":[{"__typename":"Markup","type":"CODE","start":21,"end":29,"href":null,"anchorType":null,"userId":null,"linkMetadata":null}],"codeBlockMetadata":null,"iframe":null,"mixtapeMetadata":null},"ImageMetadata:1*WbNLOnNTJQ8Q9_uPZZb09Q.png":{"__typename":"ImageMetadata","id":"1*WbNLOnNTJQ8Q9_uPZZb09Q.png","originalHeight":2,"originalWidth":1000,"focusPercentX":null,"focusPercentY":null,"alt":null},"Paragraph:bd8b63e20705_56":{"__typename":"Paragraph","id":"bd8b63e20705_56","name":"60cd","type":"IMG","href":null,"layout":"INSET_CENTER","metadata":{"__ref":"ImageMetadata:1*WbNLOnNTJQ8Q9_uPZZb09Q.png"},"text":"","hasDropCap":null,"dropCapImage":null,"markups":[],"codeBlockMetadata":null,"iframe":null,"mixtapeMetadata":null},"Paragraph:bd8b63e20705_57":{"__typename":"Paragraph","id":"bd8b63e20705_57","name":"dbe7","type":"P","href":null,"layout":null,"metadata":null,"text":"Dobri Kostadinov\nAndroid Consultant | Trainer\nEmail me | Follow me on LinkedIn | Follow me on Medium | Buy me a coffee","hasDropCap":null,"dropCapImage":null,"markups":[{"__typename":"Markup","type":"A","start":46,"end":54,"href":"mailto:dobri.kostadinov@gmail.com","anchorType":"LINK","userId":null,"linkMetadata":null},{"__typename":"Markup","type":"A","start":57,"end":78,"href":"https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fdobrikostadinov\u002F","anchorType":"LINK","userId":null,"linkMetadata":null},{"__typename":"Markup","type":"A","start":81,"end":100,"href":"https:\u002F\u002Fmedium.com\u002F@dobri.kostadinov","anchorType":"LINK","userId":null,"linkMetadata":null},{"__typename":"Markup","type":"A","start":103,"end":118,"href":"https:\u002F\u002Fwww.buymeacoffee.com\u002Fdobri.kostadinov","anchorType":"LINK","userId":null,"linkMetadata":null},{"__typename":"Markup","type":"EM","start":0,"end":16,"href":null,"anchorType":null,"userId":null,"linkMetadata":null}],"codeBlockMetadata":null,"iframe":null,"mixtapeMetadata":null},"CollectionViewerEdge:collectionId:c72404660798-viewerId:lo_6bca7498358e":{"__typename":"CollectionViewerEdge","id":"collectionId:c72404660798-viewerId:lo_6bca7498358e","isEditor":false,"isMuting":false},"ImageMetadata:":{"__typename":"ImageMetadata","id":"","originalWidth":0,"originalHeight":0},"PostViewerEdge:postId:f06492eeb63b-viewerId:lo_6bca7498358e":{"__typename":"PostViewerEdge","shouldIndexPostForExternalSearch":true,"id":"postId:f06492eeb63b-viewerId:lo_6bca7498358e"},"Tag:jetpack-compose":{"__typename":"Tag","id":"jetpack-compose","displayTitle":"Jetpack Compose","normalizedTagSlug":"jetpack-compose"},"Tag:android-app-development":{"__typename":"Tag","id":"android-app-development","displayTitle":"Android App Development","normalizedTagSlug":"android-app-development"},"Tag:mobile-app-development":{"__typename":"Tag","id":"mobile-app-development","displayTitle":"Mobile App Development","normalizedTagSlug":"mobile-app-development"},"Tag:androiddev":{"__typename":"Tag","id":"androiddev","displayTitle":"AndroidDev","normalizedTagSlug":"androiddev"},"Tag:android":{"__typename":"Tag","id":"android","displayTitle":"Android","normalizedTagSlug":"android"},"Post:f06492eeb63b":{"__typename":"Post","id":"f06492eeb63b","collection":{"__ref":"Collection:c72404660798"},"content({\"postMeteringOptions\":{}})":{"__typename":"PostContent","isLockedPreviewOnly":false,"bodyModel":{"__typename":"RichText","sections":[{"__typename":"Section","name":"5a3d","startIndex":0,"textLayout":null,"imageLayout":null,"backgroundImage":null,"videoLayout":null,"backgroundVideo":null}],"paragraphs":[{"__ref":"Paragraph:bd8b63e20705_0"},{"__ref":"Paragraph:bd8b63e20705_1"},{"__ref":"Paragraph:bd8b63e20705_2"},{"__ref":"Paragraph:bd8b63e20705_3"},{"__ref":"Paragraph:bd8b63e20705_4"},{"__ref":"Paragraph:bd8b63e20705_5"},{"__ref":"Paragraph:bd8b63e20705_6"},{"__ref":"Paragraph:bd8b63e20705_7"},{"__ref":"Paragraph:bd8b63e20705_8"},{"__ref":"Paragraph:bd8b63e20705_9"},{"__ref":"Paragraph:bd8b63e20705_10"},{"__ref":"Paragraph:bd8b63e20705_11"},{"__ref":"Paragraph:bd8b63e20705_12"},{"__ref":"Paragraph:bd8b63e20705_13"},{"__ref":"Paragraph:bd8b63e20705_14"},{"__ref":"Paragraph:bd8b63e20705_15"},{"__ref":"Paragraph:bd8b63e20705_16"},{"__ref":"Paragraph:bd8b63e20705_17"},{"__ref":"Paragraph:bd8b63e20705_18"},{"__ref":"Paragraph:bd8b63e20705_19"},{"__ref":"Paragraph:bd8b63e20705_20"},{"__ref":"Paragraph:bd8b63e20705_21"},{"__ref":"Paragraph:bd8b63e20705_22"},{"__ref":"Paragraph:bd8b63e20705_23"},{"__ref":"Paragraph:bd8b63e20705_24"},{"__ref":"Paragraph:bd8b63e20705_25"},{"__ref":"Paragraph:bd8b63e20705_26"},{"__ref":"Paragraph:bd8b63e20705_27"},{"__ref":"Paragraph:bd8b63e20705_28"},{"__ref":"Paragraph:bd8b63e20705_29"},{"__ref":"Paragraph:bd8b63e20705_30"},{"__ref":"Paragraph:bd8b63e20705_31"},{"__ref":"Paragraph:bd8b63e20705_32"},{"__ref":"Paragraph:bd8b63e20705_33"},{"__ref":"Paragraph:bd8b63e20705_34"},{"__ref":"Paragraph:bd8b63e20705_35"},{"__ref":"Paragraph:bd8b63e20705_36"},{"__ref":"Paragraph:bd8b63e20705_37"},{"__ref":"Paragraph:bd8b63e20705_38"},{"__ref":"Paragraph:bd8b63e20705_39"},{"__ref":"Paragraph:bd8b63e20705_40"},{"__ref":"Paragraph:bd8b63e20705_41"},{"__ref":"Paragraph:bd8b63e20705_42"},{"__ref":"Paragraph:bd8b63e20705_43"},{"__ref":"Paragraph:bd8b63e20705_44"},{"__ref":"Paragraph:bd8b63e20705_45"},{"__ref":"Paragraph:bd8b63e20705_46"},{"__ref":"Paragraph:bd8b63e20705_47"},{"__ref":"Paragraph:bd8b63e20705_48"},{"__ref":"Paragraph:bd8b63e20705_49"},{"__ref":"Paragraph:bd8b63e20705_50"},{"__ref":"Paragraph:bd8b63e20705_51"},{"__ref":"Paragraph:bd8b63e20705_52"},{"__ref":"Paragraph:bd8b63e20705_53"},{"__ref":"Paragraph:bd8b63e20705_54"},{"__ref":"Paragraph:bd8b63e20705_55"},{"__ref":"Paragraph:bd8b63e20705_56"},{"__ref":"Paragraph:bd8b63e20705_57"}]},"validatedShareKey":"","shareKeyCreator":null},"creator":{"__ref":"User:cb954442a18e"},"inResponseToEntityType":null,"isLocked":false,"isMarkedPaywallOnly":false,"lockedSource":"LOCKED_POST_SOURCE_NONE","mediumUrl":"https:\u002F\u002Fproandroiddev.com\u002Fjetpack-compose-what-scaffold-have-and-have-not-f06492eeb63b","primaryTopic":null,"topics":[{"__typename":"Topic","slug":"android-development"}],"isPublished":true,"latestPublishedVersion":"bd8b63e20705","visibility":"PUBLIC","postResponses":{"__typename":"PostResponses","count":2},"clapCount":113,"allowResponses":true,"isLimitedState":false,"title":"Jetpack compose: What Scaffold have and have not","isSeries":false,"sequence":null,"uniqueSlug":"jetpack-compose-what-scaffold-have-and-have-not-f06492eeb63b","socialTitle":"","socialDek":"","canonicalUrl":"","metaDescription":"","latestPublishedAt":1728405457177,"readingTime":4.455031446540881,"previewContent":{"__typename":"PreviewContent","subtitle":"Unlocking the Power of Scaffold: What It Can and Can’t Do in Jetpack Compose"},"previewImage":{"__ref":"ImageMetadata:1*J1YDs7Gc77TshLLZvlZ1Xw.png"},"isShortform":false,"seoTitle":"","firstPublishedAt":1728405457177,"updatedAt":1731669187844,"shortformType":"SHORTFORM_TYPE_LINK","seoDescription":"","viewerEdge":{"__ref":"PostViewerEdge:postId:f06492eeb63b-viewerId:lo_6bca7498358e"},"isSuspended":false,"license":"ALL_RIGHTS_RESERVED","tags":[{"__ref":"Tag:jetpack-compose"},{"__ref":"Tag:android-app-development"},{"__ref":"Tag:mobile-app-development"},{"__ref":"Tag:androiddev"},{"__ref":"Tag:android"}],"isNewsletter":false,"statusForCollection":"APPROVED","pendingCollection":null,"detectedLanguage":"en","wordCount":1079,"layerCake":6,"responsesLocked":false}}</script><script src="https://cdn-client.medium.com/lite/static/js/manifest.aa9242f7.js"></script><script src="https://cdn-client.medium.com/lite/static/js/9865.1496d74a.js"></script><script src="https://cdn-client.medium.com/lite/static/js/main.e556b4ac.js"></script><script src="https://cdn-client.medium.com/lite/static/js/instrumentation.d9108df7.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/reporting.ff22a7a5.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/9120.5df29668.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/5049.d1ead72d.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/4810.6318add7.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/6618.db187378.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/2707.b0942613.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/9977.5b3eb23a.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/8599.1ab63137.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/5250.9f9e01d2.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/5787.e66a3a4d.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/2648.26563adf.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/8393.826a25fb.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/3104.c3413b66.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/3735.afb7e926.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/5642.8ad8a900.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/6546.cd03f950.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/6834.08de95de.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/7346.72622eb9.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/2420.2a5e2d95.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/839.ca7937c2.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/7975.d195c6f1.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/2106.21ff89d3.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/7394.094844de.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/2961.00a48598.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/8204.c4082863.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/4391.59acaed3.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/PostPage.MainContent.1387c5dc.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/8414.6565ad5f.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/3974.8d3e0217.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/2527.a0afad8a.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/PostResponsesContent.36c2ecf4.chunk.js"></script><script>window.main();</script></body></html>