Saltar al contenido
Todas las entradas

#engineering

39 entradas etiquetada con engineering.

MFKAPPS 5 min de lectura

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.

#android #engineering #room
MFKAPPS 4 min de lectura

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.

#android #engineering #kotlin
MFKAPPS 5 min de lectura

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.

#android #engineering #kotlin
MFKAPPS 6 min de lectura

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.

#android #engineering #kotlin
MFKAPPS 6 min de lectura

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.

#android #engineering #kotlin
MFKAPPS 5 min de lectura

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.

#android #engineering #kotlin
MFKAPPS 5 min de lectura

Í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.

#android #engineering #room
MFKAPPS 5 min de lectura

@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.

#android #engineering #room
MFKAPPS 5 min de lectura

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.

#android #engineering #kotlin
MFKAPPS 5 min de lectura

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.

#android #engineering #kotlin
MFKAPPS 5 min de lectura

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.

#android #engineering #notifications
MFKAPPS 5 min de lectura

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.

#android #engineering #room
MFKAPPS 5 min de lectura

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.

#android #engineering #kotlin
MFKAPPS 5 min de lectura

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.

#android #engineering #kotlin
MFKAPPS 6 min de lectura

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.

#android #engineering #kotlin
MFKAPPS 6 min de lectura

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.

#android #engineering #room
MFKAPPS 6 min de lectura

Cifrar una base de datos Room en 2026: SQLCipher, el Keystore y migrar sin perder datos

Una guía práctica para cifrar en reposo una base de datos Room/SQLite en Android con SQLCipher — gestión de claves mediante el Keystore, la migración única y el coste real en rendimiento.

#android #engineering #privacy
MFKAPPS 5 min de lectura

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.

#android #engineering #privacy
MFKAPPS 6 min de lectura

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.

#android #engineering #kotlin
MFKAPPS 6 min de lectura

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.

#android #engineering #kotlin
MFKAPPS 5 min de lectura

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.

#android #engineering #kotlin
MFKAPPS 5 min de lectura

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.

#android #engineering #kotlin
MFKAPPS 6 min de lectura

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.

#android #engineering #kotlin
MFKAPPS 5 min de lectura

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.

#android #engineering #kotlin
MFKAPPS 6 min de lectura

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.

#android #engineering #kotlin
MFKAPPS 5 min de lectura

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.

#android #engineering #room
MFKAPPS 5 min de lectura

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.

#android #engineering #kotlin
MFKAPPS 6 min de lectura

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.

#android #engineering #kotlin
MFKAPPS 5 min de lectura

Construyendo el calendario de adherencia de OldSchool: convertir toques de dosis en un día fiable

Un calendario de adherencia mensual parece un simple punto de color por día. Así es el modelo de eventos, las reglas de estado diario y el cálculo de puntualidad, en el dispositivo.

#android #engineering #room
MFKAPPS 5 min de lectura

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.

#android #engineering #subscriptions
MFKAPPS 5 min de lectura

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.

#android #engineering #mobile
MFKAPPS 5 min de lectura

Construir Granyn: un control de presupuesto sin inicio de sesión bancario, en tres tablas

Cómo Granyn controla el gasto en varias divisas y detecta facturas recurrentes sin vincular una sola cuenta bancaria — el esquema Room detrás de todo, y las concesiones que exige.

#android #engineering #privacy
MFKAPPS 5 min de lectura

Acciones de notificación en Android bien hechas: marcar una dosis como tomada sin abrir la app

Una guía práctica de los botones de acción de notificación en Android — PendingIntent, la restricción del trampolín de actividad, goAsync() y actualizar el estado de Room con seguridad.

#android #engineering #notifications
MFKAPPS 4 min de lectura

Construir Stocky: predecir qué se agota en tu cocina — en el propio dispositivo

Cómo Stocky convierte el escaneo de un código de barras y un poco de historial de uso en una lista de la compra que aparece antes de que te quedes sin nada — con todos los cálculos, y todos los datos, guardados en tu teléfono.

#android #engineering #privacy
MFKAPPS 8 min de lectura

OCR con la privacidad primero en Android: cómo Subly lee facturas sin la nube

Una guía práctica de 2026 sobre OCR en el dispositivo en Android con ML Kit Text Recognition: la configuración, el código y los trucos de extracción de campos que mantienen los datos del usuario fuera de tus servidores.

#android #engineering #privacy
MFKAPPS 4 min de lectura

Construyendo Hydrame: recordatorios inteligentes sin la insistencia

Una app de recordatorios vive o muere por sus notificaciones. Así diseñé las de Hydrame para animarte con suavidad — y adaptarse a tu día en lugar de pelearse con él.

#hydrame #engineering #ux
MFKAPPS 8 min de lectura

Recordatorios fiables en Android en 2026: WorkManager, alarmas exactas y las nuevas reglas de batería

Cómo publicar en 2026 recordatorios en Android que de verdad se disparen — WorkManager vs AlarmManager, SCHEDULE_EXACT_ALARM, POST_NOTIFICATIONS y las rarezas de los fabricantes que todavía muerden.

#android #engineering #mobile
MFKAPPS 8 min de lectura

Android local-first en 2026: SQLite, Room y mantener los datos del usuario en el dispositivo

Una guía de 2026 para construir apps Android local-first con Room y SQLite — diseño de esquemas, migraciones, WAL, exportaciones y cuándo (y cuándo no) añadir sincronización.

#android #engineering #privacy
MFKAPPS 3 min de lectura

La ventaja de privacidad de las apps local-first

El dato más privado es el que nunca recopilas. Local-first no es solo una decisión de arquitectura: es la política de privacidad más sencilla que existe.

#privacy #engineering