Room TypeConverters en 2026: cómo guardar enums, fechas y listas sin corromper tu esquema
Una guía práctica sobre los TypeConverters de Room en Android — enums, Instant/LocalDate y listas — además de los errores que convierten un converter en un bug silencioso de corrupción de datos.
R8 y ProGuard para Kotlin, Room y Compose: el fallo que solo ocurre en release
Por qué una app Android con Room + Compose puede funcionar perfectamente en debug y fallar en producción, y las reglas keep de R8/ProGuard que lo evitan a tiempo.
La API In-App Review de Android: pedir una valoración sin resultar molesto
Una guía práctica de la API In-App Review de Google: cómo funciona realmente, cuándo activarla y por qué el típico popup de 'valóranos' está perjudicando en silencio tu puntuación en Play Store.
App shortcuts y Quick Settings Tiles en Android: registrar agua sin abrir la app
Una guía práctica de la API dinámica ShortcutManager y de TileService en Android — cómo hacer que una acción de un solo toque se salte la app por completo, con los errores en los que caen la mayoría de las implementaciones.
Tipos de servicio en primer plano en Android en 2026: elegir el que realmente encaja con tu función
Una guía práctica sobre las restricciones de tipos de servicio en primer plano de Android — dataSync, mediaPlayback, specialUse, shortService — y cómo elegir el correcto sin que te lo maten o te lo rechacen.
StateFlow vs SharedFlow en Jetpack Compose: modelar el estado de la UI sin el bug de replay
Cuándo usar StateFlow y cuándo usar SharedFlow en un ViewModel de Compose — y el bug de evento único que aparece al confundirlos.
Índices de base de datos Room en 2026: encontrar la consulta que realmente va lenta y arreglarla
Una guía práctica para indexar una base de datos Room/SQLite en Android — leer EXPLAIN QUERY PLAN, añadir @Index sin adivinar, y los errores que anulan un índice en silencio.
@Relation de Room: consultar datos uno-a-muchos en Android sin consultas N+1
Una guía práctica de la anotación @Relation de Room — modelar datos uno-a-muchos como categorías y entradas sin consultas N+1 ni joins manuales.
Navegación con seguridad de tipos en Jetpack Compose: rutas como datos, no como strings
Cómo reemplazar las rutas basadas en strings de Compose Navigation por objetos Kotlin serializables — argumentos con seguridad de tipos, grafos anidados y deep links que sobreviven a un refactor.
Live Updates de Android 16: llevar el temporizador de enfoque de Mintly a la pantalla de bloqueo
Una guía práctica sobre las notificaciones centradas en el progreso de Android 16 — segmentos de ProgressStyle, notificaciones continuas promovidas y lo que aportan a un temporizador Pomodoro activo.
Canales de notificación en Android en 2026: diseñar niveles de importancia que los usuarios no silenciarán
Una guía práctica sobre los canales de notificación de Android — niveles de importancia, grupos de canales, por qué la configuración se congela tras crearlos y cómo migrarlos sin perder la confianza del usuario.
Paging 3 con Room: manteniendo fluida una lista de transacciones creciente en Android en 2026
Cómo paginar una lista de transacciones respaldada por Room con Jetpack Paging 3 para que años de datos se mantengan fluidos en Compose — sin RemoteMediator, sin red, solo una base de datos local bien hecha.
La migración de Android a páginas de memoria de 16 KB: qué se rompe de verdad y cómo revisar tu APK
Google ahora exige que las apps de Android admitan páginas de memoria de 16 KB. Esto es lo que significa en la práctica, por qué las bibliotecas nativas son las que se rompen y cómo verificar que la tuya está a salvo.
Concurrencia estructurada en Android en 2026: scopes, cancelación y las fugas que evita
Una guía práctica de concurrencia estructurada con Kotlin en Android — viewModelScope frente a lifecycleScope, por qué se propaga la cancelación y las fugas de coroutines que elimina en silencio.
Recomposición en Jetpack Compose: qué la dispara realmente y por qué dejé de adivinar
Una guía práctica sobre la recomposición en Jetpack Compose en 2026 — estabilidad de tipos, lambdas inestables, claves de LazyColumn y cómo leer el informe de métricas del compilador.
Búsqueda de texto completo en Room: añadir búsqueda instantánea a una app Android local-first en 2026
Una guía práctica del soporte FTS4 de Room en Android — construir una tabla virtual de búsqueda, mantenerla sincronizada con triggers, y por qué FTS5 exige una migración manual.
Copias de seguridad de datos local-first en Android en 2026: exportación SAF, Auto Backup y un flujo de restauración en el que puedes confiar
Cómo las apps local-first en Android respaldan los datos del usuario sin un servidor: exportación/importación con SAF, Auto Backup for App Data y una restauración que verifica antes de sobrescribir.
Probar una app Android local-first en 2026: Room, Flow y los tests de Compose UI que detectan errores reales
Una estrategia práctica de testing para apps Android local-first en 2026 — tests de DAO con Room en memoria, Turbine para Flow, y los pocos tests de Compose UI que de verdad valen la pena.
Autenticación biométrica en Android en 2026: BiometricPrompt, el Keystore y cómo bloquear una app local-first
Una guía práctica de androidx.biometric en Android — BiometricPrompt, claves respaldadas por CryptoObject, respaldo con credenciales del dispositivo, y los errores que hacen que una huella dactilar no proteja nada.
Accesibilidad en Android en 2026: una checklist de TalkBack y semántica de Compose que se sostiene
Una checklist práctica de accesibilidad en Android para 2026 — TalkBack, semántica de Compose, áreas táctiles y la pasada de pruebas que hago en cada pantalla antes de publicar.
Health Connect en Android en 2026: leer y escribir datos sin renunciar al local-first
Una guía práctica sobre la API Health Connect de Android en 2026 — permisos, lecturas en segundo plano y por qué las apps local-first deberían tratarla como opcional, no como fuente de verdad.
Edge-to-edge y retroceso predictivo en Android en 2026: qué es obligatorio ahora y cómo no romper tu interfaz
El edge-to-edge ahora es obligatorio en API 35+ y el retroceso predictivo es el gesto por defecto. Una guía práctica sobre insets de Compose, WindowInsets y PredictiveBackHandler.
Jetpack DataStore en 2026: migrar desde SharedPreferences sin perder un solo ajuste
Una guía práctica para pasar de SharedPreferences a Jetpack DataStore en Android — las trampas asíncronas, la ruta de migración que preserva los valores existentes y cómo probarla.
Escaneo de códigos de barras con ML Kit en Android en 2026: cómo Stocky añade un artículo a la despensa en menos de un segundo
Una guía práctica 2026 del escaneo de códigos de barras en el dispositivo con ML Kit y CameraX: ajuste de formatos, búsqueda de producto sin conexión, y las matemáticas del uso parcial.
Migraciones de bases de datos Room en 2026: desplegar cambios de esquema sin perder una sola fila
Una guía práctica sobre las migraciones de bases de datos Room en Android — AutoMigration, objetos Migration escritos a mano, y cómo probar una migración antes de que tus usuarios encuentren el error.
Baseline Profiles en Android: qué mueve realmente tu tiempo de arranque en frío en 2026
Una guía práctica de los Baseline Profiles de Android: cómo generarlos con Macrobenchmark, conectarlos en Gradle, medir la ganancia real y las otras tres cosas que mueven el arranque en frío.
Jetpack Glance en 2026: cómo construir un widget de pantalla de inicio que nunca miente sobre tus datos
Una guía práctica de los widgets de Jetpack Glance en Android: estado, acciones de toque, y la trampa de la cuota de actualización que deja datos obsoletos.
Construyendo Subly: las matemáticas de calendario detrás de las fechas de renovación de suscripciones
Predecir la próxima fecha de cobro de una suscripción parece trivial hasta que te topas con la facturación a fin de mes, los años bisiestos y las conversiones de prueba. Así es como Subly lo resuelve, en el dispositivo.
Construyendo Mintly: mantener un temporizador de enfoque preciso cuando Android quiere matar el proceso
Un temporizador Pomodoro en ejecución tiene un problema de fiabilidad más difícil que un recordatorio puntual. Así es como Mintly sobrevive al modo Doze, a la muerte del proceso y al desfase con la pantalla apagada, con un servicio en primer plano y una hora de fin en tiempo real.
Cómo publico apps de Android como desarrollador en solitario en 2026
Un manual de lanzamiento real de principio a fin para publicar en solitario una app de Android en Kotlin + Compose en 2026 — alcance, desarrollo, ficha de Play Store y los detalles aburridos que deciden si llegas a lanzar.