<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
        xmlns:image="http://www.google.com/schemas/sitemap-image/1.1">
  <url>
    <loc>https://blogs.mobilebytesensei.com/</loc>
    <lastmod>2026-10-01</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
  <url>
    <loc>https://blogs.mobilebytesensei.com/blog/</loc>
    <lastmod>2026-10-01</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.9</priority>
  </url>
  <url>
    <loc>https://blogs.mobilebytesensei.com/blog/connected-displays/</loc>
    <lastmod>2026-10-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://blogs.mobilebytesensei.com/posts/connected-displays/hero.png</image:loc>
      <image:title>An external display is a second window, not a bigger one</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://blogs.mobilebytesensei.com/blog/foldables/</loc>
    <lastmod>2026-09-30</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://blogs.mobilebytesensei.com/posts/foldables/hero.png</image:loc>
      <image:title>A hinge is a physical object, and your layout should know where it is</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://blogs.mobilebytesensei.com/blog/supporting-pane/</loc>
    <lastmod>2026-09-29</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://blogs.mobilebytesensei.com/posts/supporting-pane/hero.png</image:loc>
      <image:title>SupportingPaneScaffold is for content that is about other content</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://blogs.mobilebytesensei.com/blog/list-detail-pane/</loc>
    <lastmod>2026-09-28</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://blogs.mobilebytesensei.com/posts/list-detail-pane/hero.png</image:loc>
      <image:title>ListDetailPaneScaffold: the back button is the whole reason it exists</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://blogs.mobilebytesensei.com/blog/canonical-layouts/</loc>
    <lastmod>2026-09-27</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://blogs.mobilebytesensei.com/posts/canonical-layouts/hero.png</image:loc>
      <image:title>There are three adaptive layouts, and you probably don&apos;t need a fourth</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://blogs.mobilebytesensei.com/blog/window-size-classes/</loc>
    <lastmod>2026-09-26</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://blogs.mobilebytesensei.com/posts/window-size-classes/hero.png</image:loc>
      <image:title>Screen size is the wrong thing to branch on. Window size is the right one.</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://blogs.mobilebytesensei.com/blog/flexbox-alternative/</loc>
    <lastmod>2026-09-25</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://blogs.mobilebytesensei.com/posts/flexbox-alternative/hero.png</image:loc>
      <image:title>Porting FlexboxLayout: every flex property maps onto something, but not onto one thing</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://blogs.mobilebytesensei.com/blog/grid-layout/</loc>
    <lastmod>2026-09-24</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://blogs.mobilebytesensei.com/posts/grid-layout/hero.png</image:loc>
      <image:title>Sometimes the right grid is a Column of Rows</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://blogs.mobilebytesensei.com/blog/flow-layout/</loc>
    <lastmod>2026-09-23</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://blogs.mobilebytesensei.com/posts/flow-layout/hero.png</image:loc>
      <image:title>FlowRow is the chip group you kept writing a custom Layout for</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://blogs.mobilebytesensei.com/blog/pager/</loc>
    <lastmod>2026-09-22</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://blogs.mobilebytesensei.com/posts/pager/hero.png</image:loc>
      <image:title>HorizontalPager is a lazy list that snaps — and PagerState is where the bugs live</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://blogs.mobilebytesensei.com/blog/lazy-grid/</loc>
    <lastmod>2026-09-21</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://blogs.mobilebytesensei.com/posts/lazy-grid/hero.png</image:loc>
      <image:title>A grid is not a list with two columns</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://blogs.mobilebytesensei.com/blog/lazy-column/</loc>
    <lastmod>2026-09-20</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://blogs.mobilebytesensei.com/posts/lazy-column/hero.png</image:loc>
      <image:title>LazyColumn is not a faster Column, and items(key = …) is not optional</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://blogs.mobilebytesensei.com/blog/custom-modifiers/</loc>
    <lastmod>2026-09-19</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://blogs.mobilebytesensei.com/posts/custom-modifiers/hero.png</image:loc>
      <image:title>Write a custom modifier only after you&apos;ve ruled out a function</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://blogs.mobilebytesensei.com/blog/constraints-and-modifiers/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://blogs.mobilebytesensei.com/posts/constraints-and-modifiers/hero.png</image:loc>
      <image:title>Why fillMaxWidth() sometimes does nothing</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://blogs.mobilebytesensei.com/blog/modifiers-part-2-order/</loc>
    <lastmod>2026-09-17</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://blogs.mobilebytesensei.com/posts/modifiers-part-2-order/hero.png</image:loc>
      <image:title>padding().background() and background().padding() are not the same picture</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://blogs.mobilebytesensei.com/blog/modifiers-part-1/</loc>
    <lastmod>2026-09-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://blogs.mobilebytesensei.com/posts/modifiers-part-1/hero.png</image:loc>
      <image:title>A Modifier is a linked list, and that explains almost everything about it</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://blogs.mobilebytesensei.com/blog/layout-basics/</loc>
    <lastmod>2026-09-15</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://blogs.mobilebytesensei.com/posts/layout-basics/hero.png</image:loc>
      <image:title>Column, Row, Box — and the single-pass rule that makes them fast</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://blogs.mobilebytesensei.com/blog/state-holders-pattern/</loc>
    <lastmod>2026-09-14</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://blogs.mobilebytesensei.com/posts/state-holders-pattern/hero.png</image:loc>
      <image:title>Not every state holder is a ViewModel</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://blogs.mobilebytesensei.com/blog/architectural-layering/</loc>
    <lastmod>2026-09-13</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://blogs.mobilebytesensei.com/posts/architectural-layering/hero.png</image:loc>
      <image:title>The UI layer has two halves, and merging them is why screens become untestable</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://blogs.mobilebytesensei.com/blog/compositionlocal/</loc>
    <lastmod>2026-09-12</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://blogs.mobilebytesensei.com/posts/compositionlocal/hero.png</image:loc>
      <image:title>CompositionLocal is not dependency injection, and using it that way hurts later</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://blogs.mobilebytesensei.com/blog/saving-ui-state/</loc>
    <lastmod>2026-09-11</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://blogs.mobilebytesensei.com/posts/saving-ui-state/hero.png</image:loc>
      <image:title>rememberSaveable survives what remember doesn&apos;t — and it isn&apos;t a bigger remember</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://blogs.mobilebytesensei.com/blog/state-hoisting-pitfalls/</loc>
    <lastmod>2026-09-10</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://blogs.mobilebytesensei.com/posts/state-hoisting-pitfalls/hero.png</image:loc>
      <image:title>Six parameters deep and none of them are used here</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://blogs.mobilebytesensei.com/blog/state-hoisting-in-viewmodel/</loc>
    <lastmod>2026-09-09</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://blogs.mobilebytesensei.com/posts/state-hoisting-in-viewmodel/hero.png</image:loc>
      <image:title>The ViewModel is not the default place for state. It&apos;s the place for state that outlives the screen.</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://blogs.mobilebytesensei.com/blog/state-hoisting-basics/</loc>
    <lastmod>2026-09-08</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://blogs.mobilebytesensei.com/posts/state-hoisting-basics/hero.png</image:loc>
      <image:title>State hoisting is one question: who else needs to know?</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://blogs.mobilebytesensei.com/blog/three-phases/</loc>
    <lastmod>2026-09-07</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://blogs.mobilebytesensei.com/posts/three-phases/hero.png</image:loc>
      <image:title>Composition, layout, drawing — and why reading a value in the wrong one costs frames</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://blogs.mobilebytesensei.com/blog/side-effects-intro/</loc>
    <lastmod>2026-09-06</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://blogs.mobilebytesensei.com/posts/side-effects-intro/hero.png</image:loc>
      <image:title>Your composable ran four times. So did your network call.</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://blogs.mobilebytesensei.com/blog/lifecycle-of-composables/</loc>
    <lastmod>2026-09-05</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://blogs.mobilebytesensei.com/posts/lifecycle-of-composables/hero.png</image:loc>
      <image:title>A composable&apos;s lifecycle is three events, and none of them is onDestroy</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://blogs.mobilebytesensei.com/blog/recomposition/</loc>
    <lastmod>2026-09-04</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://blogs.mobilebytesensei.com/posts/recomposition/hero.png</image:loc>
      <image:title>Recomposition doesn&apos;t re-run your screen. It re-runs the scopes that read what changed.</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://blogs.mobilebytesensei.com/blog/first-composable/</loc>
    <lastmod>2026-09-03</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://blogs.mobilebytesensei.com/posts/first-composable/hero.png</image:loc>
      <image:title>What @Composable actually does to your function</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://blogs.mobilebytesensei.com/blog/thinking-in-compose/</loc>
    <lastmod>2026-09-02</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://blogs.mobilebytesensei.com/posts/thinking-in-compose/hero.png</image:loc>
      <image:title>Thinking in Compose: you can&apos;t reach into the UI any more, and that&apos;s the point</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://blogs.mobilebytesensei.com/blog/setup-and-bom/</loc>
    <lastmod>2026-09-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://blogs.mobilebytesensei.com/posts/setup-and-bom/hero.png</image:loc>
      <image:title>Compose has two version problems, and the BOM only solves one</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://blogs.mobilebytesensei.com/blog/adb-install-r-stale-screenshot/</loc>
    <lastmod>2026-08-31</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://blogs.mobilebytesensei.com/posts/adb-install-r-stale-screenshot/stale-composition.png</image:loc>
      <image:title>adb install -r doesn&apos;t kill your app, so your screenshot is a lie</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://blogs.mobilebytesensei.com/company</loc>
    <changefreq>monthly</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://blogs.mobilebytesensei.com/contact</loc>
    <changefreq>monthly</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://blogs.mobilebytesensei.com/privacy</loc>
    <changefreq>yearly</changefreq>
    <priority>0.3</priority>
  </url>
  <url>
    <loc>https://blogs.mobilebytesensei.com/terms</loc>
    <changefreq>yearly</changefreq>
    <priority>0.3</priority>
  </url>
  <url>
    <loc>https://blogs.mobilebytesensei.com/refund</loc>
    <changefreq>yearly</changefreq>
    <priority>0.3</priority>
  </url>
  <url>
    <loc>https://blogs.mobilebytesensei.com/support</loc>
    <changefreq>yearly</changefreq>
    <priority>0.3</priority>
  </url>
</urlset>
