<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>rsicarelli.com</title><description>Rodrigo Sicarelli — Staff Software Engineer, Kotlin Multiplatform authority, speaker and OSS maintainer.</description><link>https://rsicarelli.com/</link><language>en</language><item><title>Kotlin Multiplatform in production</title><link>https://rsicarelli.com/en/blog/kotlin-multiplatform-in-production/</link><guid isPermaLink="true">https://rsicarelli.com/en/blog/kotlin-multiplatform-in-production/</guid><description>What it actually takes to ship Kotlin Multiplatform across iOS and Android in a real product.</description><pubDate>Fri, 15 May 2026 00:00:00 GMT</pubDate></item><item><title>Claude Code 101: Demystifying Language Models</title><link>https://rsicarelli.com/en/blog/claude-code-101-demystifying-language-models/</link><guid isPermaLink="true">https://rsicarelli.com/en/blog/claude-code-101-demystifying-language-models/</guid><description>In the previous article, we built the entire factory: the evolution from manual production to autonomous machines, the ecosystem of agentic tools, the…</description><pubDate>Thu, 09 Apr 2026 00:00:00 GMT</pubDate></item><item><title>Claude Code 101: Introduction to Agentic Programming</title><link>https://rsicarelli.com/en/blog/claude-code-101-introduction-to-agentic-programming/</link><guid isPermaLink="true">https://rsicarelli.com/en/blog/claude-code-101-introduction-to-agentic-programming/</guid><description>September 2025. I was leading a critical dependency upgrade on a mobile app with millions of users. The kind of change that breaks tests in a cascade.…</description><pubDate>Mon, 06 Apr 2026 00:00:00 GMT</pubDate></item><item><title>Fakt: Automating the Fake-over-mock pattern</title><link>https://rsicarelli.com/en/blog/fakt-automating-the-fake-over-mock-pattern-amh/</link><guid isPermaLink="true">https://rsicarelli.com/en/blog/fakt-automating-the-fake-over-mock-pattern-amh/</guid><description>Kotlin testing has a problem that gets worse the more successful your project becomes.</description><pubDate>Wed, 25 Feb 2026 00:00:00 GMT</pubDate></item><item><title>The Hidden Cost of Default Hierarchy Template in Kotlin Multiplatform</title><link>https://rsicarelli.com/en/blog/the-hidden-cost-of-default-hierarchy-templates-in-kotlin-multiplatform/</link><guid isPermaLink="true">https://rsicarelli.com/en/blog/the-hidden-cost-of-default-hierarchy-templates-in-kotlin-multiplatform/</guid><description>The Default Hierarchy Template in KMP projects is a great way to reduce boilerplate code and start working quickly. However, it came with an unexpected…</description><pubDate>Sun, 02 Nov 2025 00:00:00 GMT</pubDate></item><item><title>KMP-102 - Modularization in KMP</title><link>https://rsicarelli.com/en/blog/kmp-102-modularizacao-no-kmp/</link><guid isPermaLink="true">https://rsicarelli.com/en/blog/kmp-102-modularizacao-no-kmp/</guid><description>In the last article we dug into the quirks of code exported to Objective-C headers, along with the best practices for what to export…</description><pubDate>Fri, 07 Mar 2025 00:00:00 GMT</pubDate></item><item><title>KMP-102 - Optimizing Kotlin for Obj-C/Swift</title><link>https://rsicarelli.com/en/blog/kmp-102-otimizando-a-exportacao-do-kotlin-para-o-obj-cswift/</link><guid isPermaLink="true">https://rsicarelli.com/en/blog/kmp-102-otimizando-a-exportacao-do-kotlin-para-o-obj-cswift/</guid><description>In the last post, we learned how to use Kotlin code in Swift, some techniques to improve the code exported to Swift, and how annotations control its…</description><pubDate>Sat, 18 Jan 2025 00:00:00 GMT</pubDate></item><item><title>KMP-102 - Using Kotlin Code in Swift</title><link>https://rsicarelli.com/en/blog/kmp-102-utilizando-codigo-kotlin-no-swift/</link><guid isPermaLink="true">https://rsicarelli.com/en/blog/kmp-102-utilizando-codigo-kotlin-no-swift/</guid><description>In the last post, we learned how to create an XCFramework from Kotlin code and explored some characteristics of the generated build types.</description><pubDate>Fri, 11 Oct 2024 00:00:00 GMT</pubDate></item><item><title>KMP-102 - Characteristics of the XCFramework in KMP</title><link>https://rsicarelli.com/en/blog/kmp-102-caracteristicas-do-xcframework-no-kmp/</link><guid isPermaLink="true">https://rsicarelli.com/en/blog/kmp-102-caracteristicas-do-xcframework-no-kmp/</guid><description>In the previous post, we learned how Kotlin/Native exports a collection of .frameworks in the XCFramework format.</description><pubDate>Sun, 21 Jul 2024 00:00:00 GMT</pubDate></item><item><title>KMP-102 - XCFramework for KMP Devs</title><link>https://rsicarelli.com/en/blog/kmp-102-xcframework-para-devs-kmp/</link><guid isPermaLink="true">https://rsicarelli.com/en/blog/kmp-102-xcframework-para-devs-kmp/</guid><description>Welcome to the KMP-102 series. We dig deeper into Kotlin Multiplatform concepts, learning more about how to integrate our Kotlin code into iOS and beyond.</description><pubDate>Wed, 29 May 2024 00:00:00 GMT</pubDate></item><item><title>Kotlin Koans BR: Import alias</title><link>https://rsicarelli.com/en/blog/kotlin-koans-br-alias-para-importacao-import-alias/</link><guid isPermaLink="true">https://rsicarelli.com/en/blog/kotlin-koans-br-alias-para-importacao-import-alias/</guid><description>When importing a class or function, you can give it a different name by adding as NewName after the import directive. This can be useful when…</description><pubDate>Sat, 06 Apr 2024 00:00:00 GMT</pubDate></item><item><title>Kotlin Koans BR: Extension functions and properties</title><link>https://rsicarelli.com/en/blog/kotlin-koans-br-extension-functions-e-properties-funcoes-e-propriedades-estendidas/</link><guid isPermaLink="true">https://rsicarelli.com/en/blog/kotlin-koans-br-extension-functions-e-properties-funcoes-e-propriedades-estendidas/</guid><description>Implement the extension functions Int.r() and Pair.r() so they convert an Int and a Pair into a RationalNumber.</description><pubDate>Sat, 06 Apr 2024 00:00:00 GMT</pubDate></item><item><title>Kotlin Koans BR: Named arguments</title><link>https://rsicarelli.com/en/blog/kotlin-koans-br-argumentos-nomeados/</link><guid isPermaLink="true">https://rsicarelli.com/en/blog/kotlin-koans-br-argumentos-nomeados/</guid><description>Make the joinOptions() function return the list in JSON format (for example, [a, b, c]) by specifying only two arguments.</description><pubDate>Thu, 07 Mar 2024 00:00:00 GMT</pubDate></item><item><title>Kotlin Koans BR: Default arguments</title><link>https://rsicarelli.com/en/blog/kotlin-koans-br-argumentos-padrao/</link><guid isPermaLink="true">https://rsicarelli.com/en/blog/kotlin-koans-br-argumentos-padrao/</guid><description>Imagine you have several overloads of foo() in your favorite language. You can replace them all with a single function in Kotlin.</description><pubDate>Thu, 07 Mar 2024 00:00:00 GMT</pubDate></item><item><title>Kotlin Koans BR: Data Classes</title><link>https://rsicarelli.com/en/blog/kotlin-koans-br-classes-de-dados-data-classes/</link><guid isPermaLink="true">https://rsicarelli.com/en/blog/kotlin-koans-br-classes-de-dados-data-classes/</guid><description>Rewrite the following code in Kotlin, then add the data modifier. A beginner-friendly look at Kotlin classes and data classes.</description><pubDate>Thu, 07 Mar 2024 00:00:00 GMT</pubDate></item><item><title>Kotlin Koans BR: Sealed Classes</title><link>https://rsicarelli.com/en/blog/kotlin-koans-br-classes-seladas/</link><guid isPermaLink="true">https://rsicarelli.com/en/blog/kotlin-koans-br-classes-seladas/</guid><description>Reuse your solution from the previous task, but replace the interface with a sealed interface. That way you no longer need the else branch in the when expression.</description><pubDate>Thu, 07 Mar 2024 00:00:00 GMT</pubDate></item><item><title>Kotlin Koans BR: Lambdas</title><link>https://rsicarelli.com/en/blog/kotlin-koans-br-lambdas/</link><guid isPermaLink="true">https://rsicarelli.com/en/blog/kotlin-koans-br-lambdas/</guid><description>Pass a lambda to the any function to check whether the collection contains an even number.</description><pubDate>Thu, 07 Mar 2024 00:00:00 GMT</pubDate></item><item><title>Kotlin Koans BR: String Templates</title><link>https://rsicarelli.com/en/blog/kotlin-koans-br-modelos-de-string/</link><guid isPermaLink="true">https://rsicarelli.com/en/blog/kotlin-koans-br-modelos-de-string/</guid><description>The pattern below matches a date in the format 13.06.1992 (two digits, a dot, two digits, a dot, four digits):</description><pubDate>Thu, 07 Mar 2024 00:00:00 GMT</pubDate></item><item><title>Kotlin Koans BR: Hello, world!</title><link>https://rsicarelli.com/en/blog/kotlin-koans-br-ola-mundo/</link><guid isPermaLink="true">https://rsicarelli.com/en/blog/kotlin-koans-br-ola-mundo/</guid><description>Change the code so that the start function returns the string &quot;OK&quot;.</description><pubDate>Thu, 07 Mar 2024 00:00:00 GMT</pubDate></item><item><title>Kotlin Koans BR: Triple-quoted strings</title><link>https://rsicarelli.com/en/blog/kotlin-koans-br-strings-com-tres-aspas/</link><guid isPermaLink="true">https://rsicarelli.com/en/blog/kotlin-koans-br-strings-com-tres-aspas/</guid><description>Swap the trimIndent call for trimMargin, setting # as the prefix value, so the resulting string no longer contains the prefix character.</description><pubDate>Thu, 07 Mar 2024 00:00:00 GMT</pubDate></item><item><title>Kotlin Koans BR: Smart casts</title><link>https://rsicarelli.com/en/blog/kotlin-koans-br-tipagem-inteligente/</link><guid isPermaLink="true">https://rsicarelli.com/en/blog/kotlin-koans-br-tipagem-inteligente/</guid><description>Rewrite the given code using Kotlin smart casts and the when expression.</description><pubDate>Thu, 07 Mar 2024 00:00:00 GMT</pubDate></item><item><title>Kotlin Koans BR: The &quot;nothing&quot; type (Nothing)</title><link>https://rsicarelli.com/en/blog/kotlin-koans-br-tipo-nenhum-nothing/</link><guid isPermaLink="true">https://rsicarelli.com/en/blog/kotlin-koans-br-tipo-nenhum-nothing/</guid><description>Specify the Nothing return type for the failWithWrongAge function.</description><pubDate>Thu, 07 Mar 2024 00:00:00 GMT</pubDate></item><item><title>Kotlin Koans BR: Nullable types</title><link>https://rsicarelli.com/en/blog/kotlin-koans-br-tipos-anulaveis/</link><guid isPermaLink="true">https://rsicarelli.com/en/blog/kotlin-koans-br-tipos-anulaveis/</guid><description>Rewrite the following code so that it uses only a single if expression, and learn how Kotlin handles nullable types safely.</description><pubDate>Thu, 07 Mar 2024 00:00:00 GMT</pubDate></item><item><title>KMP 101: Exploring internal and external dependencies in KMP (end of the series)</title><link>https://rsicarelli.com/en/blog/kmp-101-explorando-as-dependencias-internas-e-externas-no-kmp/</link><guid isPermaLink="true">https://rsicarelli.com/en/blog/kmp-101-explorando-as-dependencias-internas-e-externas-no-kmp/</guid><description>In previous articles, we established a foundation in Kotlin Multiplatform (KMP) and how it compiles to multiple platforms.</description><pubDate>Sat, 27 Jan 2024 00:00:00 GMT</pubDate></item><item><title>KMP 101: How to Share Code in KMP - Connecting Platforms with expect and actual</title><link>https://rsicarelli.com/en/blog/kmp-101-como-compartilhar-codigo-no-kmp-conectando-plataformas-com-expect-e-actual/</link><guid isPermaLink="true">https://rsicarelli.com/en/blog/kmp-101-como-compartilhar-codigo-no-kmp-conectando-plataformas-com-expect-e-actual/</guid><description>Unpacking the expect and actual keywords in Kotlin Multiplatform and the different ways they let you share code across platforms.</description><pubDate>Wed, 13 Dec 2023 00:00:00 GMT</pubDate></item><item><title>KMP 101: Learning how Gradle is used in Kotlin Multiplatform</title><link>https://rsicarelli.com/en/blog/kmp-101-aprendendo-sobre-o-uso-do-gradle-no-kotlin-multiplataforma/</link><guid isPermaLink="true">https://rsicarelli.com/en/blog/kmp-101-aprendendo-sobre-o-uso-do-gradle-no-kotlin-multiplataforma/</guid><description>In the last article, we created a project using the KMP Wizard and, with little effort, ran our app on Android, iOS, and Desktop.</description><pubDate>Fri, 01 Dec 2023 00:00:00 GMT</pubDate></item><item><title>KMP 101: Creating and running your first multiplatform project in Fleet</title><link>https://rsicarelli.com/en/blog/kmp-101-criando-e-executando-seu-primeiro-projeto-multiplataforma-no-fleet/</link><guid isPermaLink="true">https://rsicarelli.com/en/blog/kmp-101-criando-e-executando-seu-primeiro-projeto-multiplataforma-no-fleet/</guid><description>Over the last few articles we covered key KMP concepts, from the multiplatform paradigm to setting up the environment.</description><pubDate>Fri, 01 Dec 2023 00:00:00 GMT</pubDate></item><item><title>KMP 101: Understanding and Setting Up the Dev Environment in Kotlin Multiplatform</title><link>https://rsicarelli.com/en/blog/kmp-101-guia-pratico-para-configurar-e-entender-o-ambiente-no-kotlin-multiplataforma/</link><guid isPermaLink="true">https://rsicarelli.com/en/blog/kmp-101-guia-pratico-para-configurar-e-entender-o-ambiente-no-kotlin-multiplataforma/</guid><description>Software development is a complex process that demands not only skill and creativity, but also a well-configured development environment.</description><pubDate>Wed, 29 Nov 2023 00:00:00 GMT</pubDate></item><item><title>KMP 101: Mastering the Principles of Source Sets</title><link>https://rsicarelli.com/en/blog/kotlin-multiplataforma-101-dominando-os-principios-dos-source-sets/</link><guid isPermaLink="true">https://rsicarelli.com/en/blog/kotlin-multiplataforma-101-dominando-os-principios-dos-source-sets/</guid><description>In the last article, we learned about the Kotlin compiler frontend, IR, and backend. Now we dig into source sets — the key concept for writing KMP code.</description><pubDate>Fri, 24 Nov 2023 00:00:00 GMT</pubDate></item><item><title>KMP 101: Understanding How Kotlin Compiles to Multiple Platforms</title><link>https://rsicarelli.com/en/blog/kotlin-multiplataforma-101-entendendo-como-o-kotlin-compila-para-multiplas-plataformas/</link><guid isPermaLink="true">https://rsicarelli.com/en/blog/kotlin-multiplataforma-101-entendendo-como-o-kotlin-compila-para-multiplas-plataformas/</guid><description>In the last post (🔗 KMP 101: An Introduction to the multiplatform paradigm), we explored the multiplatform paradigm and how KMP stands out in the ecosystem.</description><pubDate>Tue, 21 Nov 2023 00:00:00 GMT</pubDate></item><item><title>KMP 101: An introduction to the multiplatform paradigm</title><link>https://rsicarelli.com/en/blog/kotlin-multiplataforma-101-introducao-ao-paradigma-da-multiplataforma/</link><guid isPermaLink="true">https://rsicarelli.com/en/blog/kotlin-multiplataforma-101-introducao-ao-paradigma-da-multiplataforma/</guid><description>We use a wide range of apps every day on phones, watches, TVs, and computers, all part of a broad digital ecosystem.</description><pubDate>Tue, 14 Nov 2023 00:00:00 GMT</pubDate></item><item><title>Android Plataforma - Part 0: Introducing the Series</title><link>https://rsicarelli.com/en/blog/android-plataforma-parte-0-introducao-a-serie/</link><guid isPermaLink="true">https://rsicarelli.com/en/blog/android-plataforma-parte-0-introducao-a-serie/</guid><description>Android development is a constant stream of new devices, SDK updates, and a flood of libraries and tools shipping every day. Here is how we tame it.</description><pubDate>Wed, 27 Sep 2023 00:00:00 GMT</pubDate></item><item><title>Android Plataforma - Part 1: Modularization</title><link>https://rsicarelli.com/en/blog/android-plataforma-parte-1-modularizacao/</link><guid isPermaLink="true">https://rsicarelli.com/en/blog/android-plataforma-parte-1-modularizacao/</guid><description>Efficiency matters in modern software projects. This article covers modularization in Kotlin/Android projects, Gradle, and the challenges of many modules.</description><pubDate>Wed, 27 Sep 2023 00:00:00 GMT</pubDate></item><item><title>Android Plataforma - Part 10: Customizing the modules</title><link>https://rsicarelli.com/en/blog/android-plataforma-parte-10-customizacao-dos-modulos/</link><guid isPermaLink="true">https://rsicarelli.com/en/blog/android-plataforma-parte-10-customizacao-dos-modulos/</guid><description>In the last article we explored CommonsExtension to remove duplication from our configuration.</description><pubDate>Wed, 27 Sep 2023 00:00:00 GMT</pubDate></item><item><title>Android Plataforma - Part 11: Building a DSL to customize the new options</title><link>https://rsicarelli.com/en/blog/android-plataforma-parte-11-criando-uma-dsl-para-customizar-as-novas-opcoes/</link><guid isPermaLink="true">https://rsicarelli.com/en/blog/android-plataforma-parte-11-criando-uma-dsl-para-customizar-as-novas-opcoes/</guid><description>In the previous article, we parameterized the arguments of applyAndroidApp() and appyAndroidLibary() with models.</description><pubDate>Wed, 27 Sep 2023 00:00:00 GMT</pubDate></item><item><title>Android Plataforma - Part 12: Optimizing build time for Android libraries</title><link>https://rsicarelli.com/en/blog/android-plataforma-parte-12-otimizando-tempo-de-compilacao-para-bibliotecas-android/</link><guid isPermaLink="true">https://rsicarelli.com/en/blog/android-plataforma-parte-12-otimizando-tempo-de-compilacao-para-bibliotecas-android/</guid><description>🌱 Branch: 12/improving-android-library-build-time 🔗 Repository:...</description><pubDate>Wed, 27 Sep 2023 00:00:00 GMT</pubDate></item><item><title>Android Plataforma - Part 13: Including &quot;pure JVM&quot; modules</title><link>https://rsicarelli.com/en/blog/android-plataforma-parte-13-incluindo-modulos-puro-jvm/</link><guid isPermaLink="true">https://rsicarelli.com/en/blog/android-plataforma-parte-13-incluindo-modulos-puro-jvm/</guid><description>In the last article we sped up Android module builds by turning off several Android Gradle Plugin (AGP) features.</description><pubDate>Wed, 27 Sep 2023 00:00:00 GMT</pubDate></item><item><title>Android Plataforma - Part 14: Opting in to experimental Kotlin compiler features</title><link>https://rsicarelli.com/en/blog/android-plataforma-parte-14-aderindo-a-funcionalidades-experimentais-do-compilador-do-kotlin/</link><guid isPermaLink="true">https://rsicarelli.com/en/blog/android-plataforma-parte-14-aderindo-a-funcionalidades-experimentais-do-compilador-do-kotlin/</guid><description>In the last article we extended our platform with the ability to declare JVM modules.</description><pubDate>Wed, 27 Sep 2023 00:00:00 GMT</pubDate></item><item><title>Android Plataforma - Part 15: Taking care of your code with Detekt, ktlint and Spotless</title><link>https://rsicarelli.com/en/blog/android-plataforma-parte-15-cuidando-do-codigo-com-detekt-klint-e-spotless/</link><guid isPermaLink="true">https://rsicarelli.com/en/blog/android-plataforma-parte-15-cuidando-do-codigo-com-detekt-klint-e-spotless/</guid><description>In the last article we covered how our platform lets different modules opt into experimental features.</description><pubDate>Wed, 27 Sep 2023 00:00:00 GMT</pubDate></item><item><title>Android Plataforma - Part 16: Final thoughts</title><link>https://rsicarelli.com/en/blog/android-plataforma-parte-16-consideracoes-finais/</link><guid isPermaLink="true">https://rsicarelli.com/en/blog/android-plataforma-parte-16-consideracoes-finais/</guid><description>Over the last articles, we built a platform from scratch, learning and applying concepts to make multi-module Kotlin apps more flexible and scalable.</description><pubDate>Wed, 27 Sep 2023 00:00:00 GMT</pubDate></item><item><title>Android Plataforma - Part 2: Starting the Project</title><link>https://rsicarelli.com/en/blog/android-plataforma-parte-2-inicio-do-projeto/</link><guid isPermaLink="true">https://rsicarelli.com/en/blog/android-plataforma-parte-2-inicio-do-projeto/</guid><description>In this post we explore a starter project, understand the challenges of maintaining build.gradle.kts files, and discover how Gradle Composite Builds…</description><pubDate>Wed, 27 Sep 2023 00:00:00 GMT</pubDate></item><item><title>Android Plataforma - Part 3: Sharing Gradle Scripts</title><link>https://rsicarelli.com/en/blog/android-plataforma-parte-3-compartilhando-scripts-do-gradle/</link><guid isPermaLink="true">https://rsicarelli.com/en/blog/android-plataforma-parte-3-compartilhando-scripts-do-gradle/</guid><description>In the previous article we saw the challenges of a multi-module project: maintaining and reusing Gradle files. Let us dig into how to solve that.</description><pubDate>Wed, 27 Sep 2023 00:00:00 GMT</pubDate></item><item><title>Android Plataforma - Part 4: Composite Build</title><link>https://rsicarelli.com/en/blog/android-plataforma-parte-4-composite-build-lgk/</link><guid isPermaLink="true">https://rsicarelli.com/en/blog/android-plataforma-parte-4-composite-build-lgk/</guid><description>In the previous articles we saw why modularity matters and why Composite Builds are the right choice for scaling Kotlin projects.</description><pubDate>Wed, 27 Sep 2023 00:00:00 GMT</pubDate></item><item><title>Android Plataforma - Part 5: Simplifying Gradle Init</title><link>https://rsicarelli.com/en/blog/android-plataforma-parte-5-simplificando-gradle-init/</link><guid isPermaLink="true">https://rsicarelli.com/en/blog/android-plataforma-parte-5-simplificando-gradle-init/</guid><description>In the previous article, we set up our platform with build-logic and registered the greeting task in the main project.</description><pubDate>Wed, 27 Sep 2023 00:00:00 GMT</pubDate></item><item><title>Android Plataforma - Part 6: Version Catalog</title><link>https://rsicarelli.com/en/blog/android-plataforma-parte-6-version-catalog/</link><guid isPermaLink="true">https://rsicarelli.com/en/blog/android-plataforma-parte-6-version-catalog/</guid><description>In the previous post, we optimized our platform and got it ready for more features.</description><pubDate>Wed, 27 Sep 2023 00:00:00 GMT</pubDate></item><item><title>Android Plataforma - Part 7: Decorating the &apos;app&apos; module</title><link>https://rsicarelli.com/en/blog/android-plataforma-parte-7-decorando-o-modulo-app/</link><guid isPermaLink="true">https://rsicarelli.com/en/blog/android-plataforma-parte-7-decorando-o-modulo-app/</guid><description>In the previous article, we got our platform ready to take on new features.</description><pubDate>Wed, 27 Sep 2023 00:00:00 GMT</pubDate></item><item><title>Android Plataforma - Part 8: Decorating the &apos;library&apos; modules</title><link>https://rsicarelli.com/en/blog/android-plataforma-parte-8-decorando-os-modulo-library/</link><guid isPermaLink="true">https://rsicarelli.com/en/blog/android-plataforma-parte-8-decorando-os-modulo-library/</guid><description>In the last post, we introduced the first decoration in the Platform and set up our entire app module using the Kotlin DSL.</description><pubDate>Wed, 27 Sep 2023 00:00:00 GMT</pubDate></item><item><title>Android Plataforma - Part 9: Unifying the Application and Library extensions with the Common Extension</title><link>https://rsicarelli.com/en/blog/android-plataforma-parte-9-unificando-a-application-e-library-extensions-com-a-common-extension/</link><guid isPermaLink="true">https://rsicarelli.com/en/blog/android-plataforma-parte-9-unificando-a-application-e-library-extensions-com-a-common-extension/</guid><description>In the last post, we managed to extract the configuration logic for our library modules.</description><pubDate>Wed, 27 Sep 2023 00:00:00 GMT</pubDate></item></channel></rss>