<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet href="/feed.xsl" type="text/xsl"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><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><copyright>© 2026 Rodrigo Sicarelli — CC BY-NC 4.0 (https://creativecommons.org/licenses/by-nc/4.0/)</copyright><atom:link href="https://rsicarelli.com/en/rss.xml" rel="self" type="application/rss+xml"/><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 three pillars (prompt, context, and harness engineering). You know what the factory does, who works in it, and even how much revenue it pulls in.</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. The deadline was October: if it wasn&apos;t ready, the app wouldn&apos;t ship to the store.</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. We covered a few techniques to improve the code exported to Swift, and how annotations like @HiddenFromObjC and @HidesFromObjC control the visibility of code in Swift.</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>Over the last few articles, we dug into the inner workings of Kotlin Multiplatform: its paradigm, the compiler architecture, the source sets, the development environment, building and running a sample project, and the essential role of Gradle.</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 devices.</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 (🔗 KMP 101: Understanding How Kotlin Compiles for Multiple Platforms), we learned about the frontend, IR, and backend of the Kotlin compiler.</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 things: new devices, SDK updates, and an endless variety of libraries and tools that ship every single day.</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, the vital role Gradle plays in speeding up builds, and the challenges of managing multiple 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 several concepts with the goal of making 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 can help along the way.</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 understood the challenges a multi-module project brings: maintaining and reusing Gradle files. Let us get a better grasp on how to solve this problem by looking at two concepts: buildSrc and Composite Builds.</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>