<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Alberto Rivas — Blog</title><description>Artículos sobre desarrollo Android, Kotlin Multiplatform y Compose Multiplatform. Arquitectura, patrones y decisiones que importan en producción.</description><link>https://albrivas.com/</link><language>es-ES</language><item><title>Moshi vs kotlinx.serialization: campos nullable sin valor por defecto</title><link>https://albrivas.com/blog/moshi-kotlinx-serialization-nullable/</link><guid isPermaLink="true">https://albrivas.com/blog/moshi-kotlinx-serialization-nullable/</guid><description>Al migrar de Moshi a kotlinx.serialization, un campo nullable sin `= null` lanza excepción si la clave no está en el JSON. La causa y el fix en dos líneas.</description><pubDate>Fri, 01 May 2026 00:00:00 GMT</pubDate><category>Kotlin</category><category>KMP</category></item><item><title>kotlinx.serialization: campos nullable sin default son requeridos</title><link>https://albrivas.com/blog/moshi-to-kotlinx-serialization-nullable/</link><guid isPermaLink="true">https://albrivas.com/blog/moshi-to-kotlinx-serialization-nullable/</guid><description>JsonConvertException con &apos;Field is required but was missing&apos; al migrar de Moshi a kotlinx.serialization — causa raíz y fix con = null</description><pubDate>Fri, 01 May 2026 00:00:00 GMT</pubDate><category>KMP</category><category>Kotlin</category><category>Android</category></item><item><title>KMP strings: de R.string a Res con Compose Resources</title><link>https://albrivas.com/blog/kmp-rstring-to-res/</link><guid isPermaLink="true">https://albrivas.com/blog/kmp-rstring-to-res/</guid><description>Por qué R.string deja de funcionar al migrar a Kotlin Multiplatform y cómo reemplazarlo con Res, StringResource y stringResource de CMP</description><pubDate>Wed, 29 Apr 2026 00:00:00 GMT</pubDate><category>Android</category><category>KMP</category><category>Kotlin</category></item><item><title>Compose Multiplatform: migrar un módulo uikit de Android a CMP</title><link>https://albrivas.com/blog/compose-multiplatform-uikit/</link><guid isPermaLink="true">https://albrivas.com/blog/compose-multiplatform-uikit/</guid><description>Cómo migrar un módulo Compose Android a Compose Multiplatform: recursos, fuentes, Lottie y ConstraintLayout</description><pubDate>Mon, 27 Apr 2026 00:00:00 GMT</pubDate><category>Android</category><category>KMP</category><category>Kotlin</category></item><item><title>git filter-repo: eliminar credenciales del historial de Git</title><link>https://albrivas.com/blog/git-filter-repo-credentials/</link><guid isPermaLink="true">https://albrivas.com/blog/git-filter-repo-credentials/</guid><description>Credenciales hardcodeadas en un commit antiguo — por qué filter-branch falla y cómo limpiar el historial con git filter-repo y --replace-text</description><pubDate>Mon, 20 Apr 2026 00:00:00 GMT</pubDate><category>Git</category></item><item><title>Mixpanel en Kotlin Multiplatform sin SDK KMP oficial</title><link>https://albrivas.com/blog/mixpanel-kmp-sin-sdk-oficial/</link><guid isPermaLink="true">https://albrivas.com/blog/mixpanel-kmp-sin-sdk-oficial/</guid><description>Cómo integrar Mixpanel en un proyecto KMP cuando no hay SDK oficial: interfaz en commonMain e implementaciones nativas por plataforma.</description><pubDate>Fri, 10 Apr 2026 00:00:00 GMT</pubDate><category>KMP</category><category>Android</category><category>Kotlin</category></item><item><title>Room KMP: el source set correcto para los tests de base de datos</title><link>https://albrivas.com/blog/room-kmp-tests/</link><guid isPermaLink="true">https://albrivas.com/blog/room-kmp-tests/</guid><description>Por qué commonTest y androidUnitTest fallan con Room KMP y cómo jvmTest resuelve ambos problemas</description><pubDate>Wed, 08 Apr 2026 00:00:00 GMT</pubDate><category>KMP</category><category>Room</category><category>KMP Test</category></item><item><title>Run Configurations en Android Studio para Flutter</title><link>https://albrivas.com/blog/android-studio-run-configurations/</link><guid isPermaLink="true">https://albrivas.com/blog/android-studio-run-configurations/</guid><description>Cambia rápidamente entre flavors de tu proyecto Flutter usando run configurations personalizadas</description><pubDate>Tue, 04 Nov 2025 00:00:00 GMT</pubDate><category>Flutter</category><category>Android</category></item><item><title>Kotlin Tips - Destructuring declaration</title><link>https://albrivas.com/blog/kotlin-tips-destructive-declaration/</link><guid isPermaLink="true">https://albrivas.com/blog/kotlin-tips-destructive-declaration/</guid><description>Cómo usar desestructuración en Kotlin y mejorar tu código</description><pubDate>Wed, 22 Oct 2025 00:00:00 GMT</pubDate><category>Kotlin Tips</category><category>Android</category></item><item><title>Configurar email diferente por proyecto en Git</title><link>https://albrivas.com/blog/git-config/</link><guid isPermaLink="true">https://albrivas.com/blog/git-config/</guid><description>Guía para usar múltiples emails y nombres de usuario en Git según el proyecto</description><pubDate>Sun, 12 Oct 2025 00:00:00 GMT</pubDate><category>Git</category></item></channel></rss>