Artículos

  • Generales 0

    Trait objects en Rust: dyn Trait, object safety, Box y despacho dinámico

    Los trait objects de Rust permiten polimorfismo en tiempo de ejecución con despacho dinámico por vtable. Aprende a usar Box con dyn Trait, Arc con Send y Sync para hilos, dyn Error para errores universales y a detectar cuándo un trait no es object-safe.

  • Generales 0

    CloudKit en Swift: CKDatabase, CKRecord, consultas y sincronización con iCloud

    Aprende a sincronizar datos con iCloud usando CloudKit sin servidor propio: CKContainer, CKDatabase privada y pública, CKRecord, CKQuery con NSPredicate, paginación con CKQueryOperation, suscripciones push, NSPersistentCloudKitContainer con Core Data y CKAsset para ficheros.

  • Generales 0

    Traits avanzados en Rust: tipos asociados, regla huérfana, newtype y default implementations

    Guía práctica sobre traits avanzados en Rust: tipos asociados frente a parámetros genéricos, implementaciones por defecto, la orphan rule y cómo sortearla con el patrón newtype, y supertraits. Cuatro ejemplos de código reales con los errores de compilación típicos.

  • Generales 0

    TipKit en Swift: mostrar tips de onboarding con reglas, frecuencia y TipView en SwiftUI

    TipKit, disponible desde iOS 17, permite mostrar tips contextuales de onboarding sin gestionar UserDefaults a mano. Aprende a definir tips con @Parameter, reglas condicionales, eventos acumulados y frecuencia de visualización, con ejemplos reales y el antipatrón de resetDatastore.

  • Python 0

    Protocol Buffers y gRPC en Python: definir servicios, generar código y streaming bidireccional

    Aprende a usar gRPC con Python: define mensajes en .proto con string, int32, bool, repeated, map y oneof, genera stubs con protoc e implementa los cuatro tipos de RPC. Cubre interceptores de logging y autenticación, y betterproto como alternativa con dataclasses.

  • Generales 0

    Rust 2024 Edition: let chains, gen blocks, async closures y cambios de la nueva edición

    Rust 2024 Edition, estabilizada en Rust 1.85, introduce let chains para combinar if let con &&, gen blocks para crear iteradores con yield, async closures con AsyncFn y unsafe en bloques extern. Migra con cargo fix --edition.

  • Generales 0

    AppIntents en Swift: Shortcuts, integración con Siri, AppShortcut y parámetros

    Aprende a integrar tu app iOS con Shortcuts y Siri usando AppIntents desde iOS 16. Crea intents con @Parameter, define AppShortcut predefinidos con AppShortcutsProvider, implementa EntityQuery para seleccionar objetos y usa ControlWidget en iOS 18. Con ejemplos reales y errores frecuentes.

  • Python 0

    Dockerizar aplicaciones Python: Dockerfile optimizado, multi-stage, .dockerignore y Compose

    Aprende a dockerizar aplicaciones Python correctamente: FROM python:3.13-slim, capas cacheadas para pip install, multi-stage builds, .dockerignore, usuario no-root y Docker Compose con hot reload. Cinco ejemplos completos listos para producción.

  • Generales 0

    Rust sin std: desarrollo embebido y no_std para microcontroladores

    Aprende a escribir firmware en Rust sin biblioteca estándar usando #![no_std]. Configura el panic handler, allocators personalizados y embedded-hal. Ejemplos reales con rp2040-hal para Raspberry Pi Pico, I2C, heap con embedded-alloc y concurrencia con RTIC.

  • Generales 0

    WidgetKit en Swift: Widget, TimelineProvider, TimelineEntry y actualización programada

    Aprende a crear widgets para la pantalla de inicio de iOS con WidgetKit: Widget, TimelineProvider, TimelineEntry y TimelineReloadPolicy. Con ejemplos de widget de clima y tareas, App Group para datos compartidos, deep linking con widgetURL y Link, y relevance para Smart Stacks.