<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://doveletter.dev</loc>
<lastmod>2026-04-05T09:00:22.776Z</lastmod>
<changefreq>weekly</changefreq>
<priority>1</priority>
</url>
<url>
<loc>https://doveletter.dev/subscribe</loc>
<lastmod>2026-04-05T09:00:22.776Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.9</priority>
</url>
<url>
<loc>https://doveletter.dev/preview</loc>
<lastmod>2026-04-05T09:00:22.776Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.9</priority>
</url>
<url>
<loc>https://doveletter.dev/book/kotlin</loc>
<lastmod>2026-04-05T09:00:22.776Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.95</priority>
</url>
<url>
<loc>https://doveletter.dev/books</loc>
<lastmod>2026-04-05T09:00:22.776Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.85</priority>
</url>
<url>
<loc>https://doveletter.dev/quiz</loc>
<lastmod>2026-04-05T09:00:22.776Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://doveletter.dev/quiz/android</loc>
<lastmod>2026-04-05T09:00:22.776Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://doveletter.dev/quiz/kotlin</loc>
<lastmod>2026-04-05T09:00:22.776Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://doveletter.dev/course</loc>
<lastmod>2026-04-05T09:00:22.776Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.85</priority>
</url>
<url>
<loc>https://doveletter.dev/course/android</loc>
<lastmod>2026-04-05T09:00:22.776Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.85</priority>
</url>
<url>
<loc>https://doveletter.dev/course/kotlin</loc>
<lastmod>2026-04-05T09:00:22.776Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.85</priority>
</url>
<url>
<loc>https://doveletter.dev/mcp</loc>
<lastmod>2026-04-05T09:00:22.776Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.85</priority>
</url>
<url>
<loc>https://doveletter.dev/preview/articles/activity-lifecycle-internals</loc>
<lastmod>2026-04-05T09:00:22.934Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://doveletter.dev/preview/articles/api-guidelines-compose</loc>
<lastmod>2026-04-05T09:00:22.934Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://doveletter.dev/preview/articles/assisted-inject-hilt</loc>
<lastmod>2026-04-05T09:00:22.934Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://doveletter.dev/preview/articles/cancellation-coroutines</loc>
<lastmod>2026-04-05T09:00:22.934Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://doveletter.dev/preview/articles/coil-internals</loc>
<lastmod>2026-04-05T09:00:22.934Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://doveletter.dev/preview/articles/compose-algorithms-data-structures</loc>
<lastmod>2026-04-05T09:00:22.934Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://doveletter.dev/preview/articles/compose-compiler-stability-types</loc>
<lastmod>2026-04-05T09:00:22.934Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://doveletter.dev/preview/articles/compose-complex-layouts</loc>
<lastmod>2026-04-05T09:00:22.934Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://doveletter.dev/preview/articles/compose-crossfade-internals</loc>
<lastmod>2026-04-05T09:00:22.934Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://doveletter.dev/preview/articles/compose-derivedStateOf-internals</loc>
<lastmod>2026-04-05T09:00:22.934Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://doveletter.dev/preview/articles/compose-drawing-system</loc>
<lastmod>2026-04-05T09:00:22.934Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://doveletter.dev/preview/articles/compose-group-types</loc>
<lastmod>2026-04-05T09:00:22.934Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://doveletter.dev/preview/articles/compose-hot-reload</loc>
<lastmod>2026-04-05T09:00:22.934Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://doveletter.dev/preview/articles/compose-identity-mechanisms</loc>
<lastmod>2026-04-05T09:00:22.934Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://doveletter.dev/preview/articles/compose-phases</loc>
<lastmod>2026-04-05T09:00:22.934Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://doveletter.dev/preview/articles/compose-positional-memoization</loc>
<lastmod>2026-04-05T09:00:22.934Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://doveletter.dev/preview/articles/compose-preview-internals</loc>
<lastmod>2026-04-05T09:00:22.934Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.9</priority>
</url>
<url>
<loc>https://doveletter.dev/preview/articles/compose-runtime-annotations</loc>
<lastmod>2026-04-05T09:00:22.934Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://doveletter.dev/preview/articles/compose-slottable-gap-to-link</loc>
<lastmod>2026-04-05T09:00:22.934Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://doveletter.dev/preview/articles/compose-slottable-internals</loc>
<lastmod>2026-04-05T09:00:22.934Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://doveletter.dev/preview/articles/compose-snapshot-isolation</loc>
<lastmod>2026-04-05T09:00:22.934Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://doveletter.dev/preview/articles/compose-snapshot-system</loc>
<lastmod>2026-04-05T09:00:22.934Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://doveletter.dev/preview/articles/compose-stability-analyzer-heatmap</loc>
<lastmod>2026-04-05T09:00:22.934Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.9</priority>
</url>
<url>
<loc>https://doveletter.dev/preview/articles/compose-stability-interence</loc>
<lastmod>2026-04-05T09:00:22.934Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://doveletter.dev/preview/articles/compose-styles</loc>
<lastmod>2026-04-05T09:00:22.934Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.9</priority>
</url>
<url>
<loc>https://doveletter.dev/preview/articles/coroutines-compiler-machinery</loc>
<lastmod>2026-04-05T09:00:22.934Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.9</priority>
</url>
<url>
<loc>https://doveletter.dev/preview/articles/dagger-multibinding</loc>
<lastmod>2026-04-05T09:00:22.934Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://doveletter.dev/preview/articles/datastore-crash-safety</loc>
<lastmod>2026-04-05T09:00:22.934Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://doveletter.dev/preview/articles/deep-dive-compatibility</loc>
<lastmod>2026-04-05T09:00:22.934Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://doveletter.dev/preview/articles/dependency-injection-container</loc>
<lastmod>2026-04-05T09:00:22.934Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://doveletter.dev/preview/articles/derived-state-mechanisms</loc>
<lastmod>2026-04-05T09:00:22.934Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://doveletter.dev/preview/articles/flexible-bottomsheet-google-maps</loc>
<lastmod>2026-04-05T09:00:22.934Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.9</priority>
</url>
<url>
<loc>https://doveletter.dev/preview/articles/kotlin-error-handling</loc>
<lastmod>2026-04-05T09:00:22.934Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://doveletter.dev/preview/articles/kotlin-lazy-internals</loc>
<lastmod>2026-04-05T09:00:22.934Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://doveletter.dev/preview/articles/kotlin-shared-internals-keep</loc>
<lastmod>2026-04-05T09:00:22.934Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.9</priority>
</url>
<url>
<loc>https://doveletter.dev/preview/articles/ksp-internals</loc>
<lastmod>2026-04-05T09:00:22.934Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://doveletter.dev/preview/articles/landscapist-core</loc>
<lastmod>2026-04-05T09:00:22.934Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://doveletter.dev/preview/articles/landscapist-image-plugin</loc>
<lastmod>2026-04-05T09:00:22.934Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.9</priority>
</url>
<url>
<loc>https://doveletter.dev/preview/articles/r8-keep-rules</loc>
<lastmod>2026-04-05T09:00:22.934Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://doveletter.dev/preview/articles/r8-mode-impacts</loc>
<lastmod>2026-04-05T09:00:22.934Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://doveletter.dev/preview/articles/recompose-scopes</loc>
<lastmod>2026-04-05T09:00:22.934Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://doveletter.dev/preview/articles/remote-compose</loc>
<lastmod>2026-04-05T09:00:22.934Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://doveletter.dev/preview/articles/retrofit-internals</loc>
<lastmod>2026-04-05T09:00:22.934Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.9</priority>
</url>
<url>
<loc>https://doveletter.dev/preview/articles/retrofit-java-interpolates</loc>
<lastmod>2026-04-05T09:00:22.934Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://doveletter.dev/preview/articles/retrofit-proxy-pattern</loc>
<lastmod>2026-04-05T09:00:22.934Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://doveletter.dev/preview/articles/sandwich</loc>
<lastmod>2026-04-05T09:00:22.934Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.9</priority>
</url>
<url>
<loc>https://doveletter.dev/preview/articles/saveable</loc>
<lastmod>2026-04-05T09:00:22.934Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://doveletter.dev/preview/articles/snapshot-flow-internals</loc>
<lastmod>2026-04-05T09:00:22.934Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://doveletter.dev/preview/articles/viewmodel-internals</loc>
<lastmod>2026-04-05T09:00:22.934Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://doveletter.dev/preview/articles/viewmodel</loc>
<lastmod>2026-04-05T09:00:22.934Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://doveletter.dev/preview/articles/workmanager-internals</loc>
<lastmod>2026-04-05T09:00:22.934Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://doveletter.dev/preview/interviews/compose-phases</loc>
<lastmod>2026-04-05T09:00:22.946Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://doveletter.dev/preview/interviews/coroutine-cancellation</loc>
<lastmod>2026-04-05T09:00:22.946Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://doveletter.dev/preview/interviews/r8-optimization</loc>
<lastmod>2026-04-05T09:00:22.946Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
</urlset>
