iOS

Resolución activa de problemas

Prompts de Práctica

Intenta resolverlo antes de revelar. Cada prompt de código y de diseño de sistemas se despliega por etapas — primero el enfoque, luego la solución — para que practiques la recuperación, no el reconocimiento. Marca lo que resolviste; regresa al resto.

Resueltos 0 / 16
Nivel
  1. CódigoMid

    Debounce de un campo de búsqueda en SwiftUI

    swiftuiconcurrenciabúsqueda

    Un campo de búsqueda ejecuta una consulta en cada pulsación de tecla. Haga que solo consulte después de que el usuario pause la escritura durante 300ms, y cancele la consulta en curso cuando llegue una nueva pulsación — usando concurrencia de Swift, sin Combine.

    próximo: nuevo
  2. CódigoSenior

    Una caché de imágenes thread-safe con un actor

    concurrenciaactorcaché

    Muchas tareas de vistas solicitan imágenes concurrentemente. Construya una caché en memoria que nunca compita, y que deduzca solicitudes concurrentes para la misma URL para que solo se descargue una vez.

    próximo: nuevo
  3. CódigoMid

    Descodificar un JSON desordenado con Codable

    datacodablejson

    Una API devuelve claves snake_case, fechas ISO-8601 y un objeto anidado. Descodifíquelo en modelos Swift limpios sin escribir manualmente cada clave.

    próximo: nuevo
  4. CódigoSenior

    Reintento asíncrono con backoff exponencial

    concurrenciaredresiliencia

    Envuelva una operación asíncrona para que reintente en caso de fallo hasta N veces con backoff exponencial, respete la cancelación y relance el último error si todos los intentos fallan.

    próximo: nuevo
  5. CódigoMid

    Un view model @Observable con estados de carga

    swiftuimvvmestado

    Construya un view model que cargue una lista y exponga estados de carga / cargado / vacío / error para que la vista pueda renderizar cada uno limpiamente. Hágalo testeable.

    próximo: nuevo
  6. CódigoMid

    Obtener dos endpoints concurrentemente y combinar

    concurrenciared

    Una pantalla de perfil necesita el usuario y sus publicaciones de dos endpoints. Obténgalos en paralelo y combínelos — no espere uno y luego el otro.

    próximo: nuevo
  7. CódigoSenior

    Un almacén de tokens Keychain mínimo

    seguridadkeychain

    Almacene y lea un token de autenticación de forma segura. Explique por qué esto debe estar en el Keychain en lugar de UserDefaults.

    próximo: nuevo
  8. CódigoSenior

    Conectar una API basada en callbacks a async/await

    concurrenciainteroperabilidad

    Tiene una API legacy load(completion:) que retorna un Result. Exponga una versión moderna async throws sin reescribir el código legacy.

    próximo: nuevo
  9. CódigoSenior

    Lista de scroll infinito con paginación

    swiftuirendimientopaginación

    Renderice una lista larga que cargue la siguiente página cuando el usuario se acerque al final, sin cargar todo de antemano y sin disparar solicitudes de página duplicadas.

    próximo: nuevo
  10. DiseñoArquitecto

    Diseñe una app de notas offline-first

    arquitecturasincronizacióndatos

    Los usuarios crean y editan notas que deben funcionar completamente sin conexión y sincronizar entre dispositivos. Diseñe el flujo de datos, la estrategia de sincronización y la resolución de conflictos.

    próximo: nuevo
  11. DiseñoArquitecto

    Arquitectura de una app para 30 ingenieros

    arquitecturamodularizaciónspm

    Una app de un solo target tiene compilaciones incrementales de 12 minutos y constantes conflictos de merge. ¿Cómo la reestructura para que un equipo grande pueda avanzar rápido?

    próximo: nuevo
  12. DiseñoSenior

    Diseñe un feed de imágenes fluido

    rendimientoswiftuimedios

    Diseñe un feed social de fotos en alta resolución que se desplace a una tasa de frames constante en dispositivos antiguos y no exceda el presupuesto de memoria.

    próximo: nuevo
  13. DiseñoSenior

    Diseñe la capa de red y datos

    arquitecturaredcaché

    Diseñe la capa entre su UI y el backend: cómo encajan las solicitudes, descodificación, caché, renovación de autenticación y pruebas.

    próximo: nuevo
  14. DiseñoSenior

    Diseñe navegación y deep linking

    arquitecturanavegación

    Diseñe la navegación de una app con múltiples pestañas que debe soportar deep links, enrutamiento de notificaciones push y restauración de estado.

    próximo: nuevo
  15. DiseñoSenior

    Diseñe un pipeline de CI/CD y lanzamiento

    cicdlanzamientofirmado

    Configure build, pruebas, firmado y lanzamiento para un equipo para que cada cambio esté verificado y la distribución sea a un clic — con una implementación segura.

    próximo: nuevo
  16. DiseñoBeyond

    Diseñe búsqueda semántica en el dispositivo

    aicoremlbúsqueda

    Permita a los usuarios buscar su contenido por significado, no solo por palabras clave, total y directamente en el dispositivo por privacidad. Diseñelo.

    próximo: nuevo