Actualizado el

Stack Tecnológico para Apps de IA en iOS 2026: MLX vs CoreML - Guía Completa


Stack Tecnológico para Apps de IA en iOS 2026: MLX vs CoreML

TL;DR: Para apps de IA on-device en iOS en 2026, MLX Swift ofrece rendimiento superior y mejor soporte para LLMs, mientras CoreML sigue siendo la opción para modelos clásicos y dispositivos más antiguos. En este post explico por qué elegí MLX + SwiftUI + SwiftData para crear un asistente AI 100% offline, y comparto el proceso de decisión completo.


📋 Tabla de Contenidos

  1. Introducción: Por Qué Este Post
  2. Mi Experiencia Personal
  3. El Contexto: IA On-Device en 2026
  4. MLX vs CoreML: Comparativa Completa
  5. Mi Elección y Por Qué
  6. El Stack Completo
  7. Requisitos de Hardware
  8. Estructura del Proyecto
  9. Configuración Inicial
  10. Decisiones Arquitectónicas
  11. Recursos y Siguiente Paso

Introducción: voy a explicar el “por qué” de este post

Estoy documentando públicamente la creación de una app de IA que va a funcionar 100% offline. Sin servidores, sin APIs de terceros, sin que tus datos salgan de tu dispositivo.

Esta es la Semana 1 del proyecto y conviene empezar explicando la decisión más importante: ¿qué tecnologías usar?

Pasé varios días investigando y encontré un problema (que podemos decir no es tan grave tampoco): la información actualizada para 2026 es escasa. La mayoría de tutoriales:

  • Están desactualizados (usan iOS 17 o anterior)
  • Asumen que vas a usar una API en la nube
  • No comparan (en la mayoría de los casos) las opciones reales para LLMs on-device
  • Ignoran las últimas actualizaciones de MLX Swift

Este post es el recurso que me hubiera gustado encontrar. Si estás considerando crear una app con IA local en iOS, esto te va a ahorrar días de investigación. Al menos por el momento 🥲.


Mi Experiencia Personal

Vengo del mundo de Python y data science (y mucho antes de la ingeniería dura). Había tocado Swift y Xcode antes de este proyecto, pero nunca le había dado un marco completo ni tenía una idea clara de usarlo. Mi experiencia con iOS se limitaba a ser usuario (me fascina el ecosistema Apple)

Si queres un poco más de background te recomiendo ir a mi sección “Sobre mí”.

Por Qué Este Proyecto

En realidad por varios motivos. El principal es que me encantaría tener un asistente 100% offline para que me ayude con mis tareas diarias. El uso de Claude, Gemini o ChatGPT requiere estar conectado a internet, lo que lo hace menos flexible en algunos casos. El secundario, y no menos importante, es que no todo el mundo quiere entregar sus datos a terceros para que puedan usar IA. Yo personalmente no me siento cómodo con esto. Y tercero (y varias variantes de éste ultimo) es que me fascinan los retos nuevos y ver qué tan rápido me adapto.

Mi Nivel Actual

Soy completamente nuevo en desarrollo iOS. Conozco programación usando python y he usado algo Django para web, pero Swift es territorio desconocido. Este proyecto es tanto sobre crear la app como sobre documentar mi aprendizaje en el uso de la IA/ML (ah.. tengo una especialidad pero la apliqué muy poco).


El Contexto: IA On-Device en 2026

Por Qué Ahora Es Diferente

De lo que pude encontrar investigando, hace 3 años, correr un LLM en un iPhone era ciencia ficción. Los modelos eran demasiado grandes, los dispositivos no tenían suficiente memoria, y el rendimiento era inaceptable.

En 2026, todo cambió:

Factor20232026
Modelos pequeños útilesLimitadosQwen2.5, Phi-4, Gemma 2
RAM en iPhones6GB (Pro)>8GB
Framework ML de AppleCoreML (limitado para LLMs)MLX Swift maduro
CuantizaciónExperimental4-bit estándar
Tokens/segundo~5 t/s~30 t/s

El Nuevo Paradigma

Los modelos de 1-3 mil millones de parámetros (billones en inglés) en 2026 son sorprendentemente buenos:

  • Qwen2.5-3B: Respuestas coherentes, razonamiento decente
  • Phi-4-mini: Excelente para código y lógica
  • Gemma 2 2B: Buen balance tamaño/calidad

Y lo mejor: caben en un iPhone moderno. Vemos como ejemplo uno de estos:

Modelo Qwen2.5-3B en 4-bit:
├── Tamaño en disco: ~1.8 GB
├── RAM en uso: ~2.5 GB
├── Velocidad: ~25-35 tokens/segundo (iPhone 16 Pro)
└── Calidad: Comparable a GPT-3.5 para muchas tareas

El Problema de las Alternativas Cloud

ServicioPrecioPrivacidadOffline
ChatGPT Plus$20/mes❌ Datos en servidores
Claude Pro$20/mes❌ Datos en servidores
Gemini Advanced$20/mes❌ Datos en servidores
App LocalMucho menor✅ 100% local

MLX vs CoreML: Comparativa Completa

Esta es la decisión más importante del proyecto. Vamos a profundizar.

CoreML: El Veterano

Core ML es un framework oficial de Apple para Machine Learning, disponible desde iOS 11 (2017).

Fortalezas de CoreML

✅ Compatibilidad universal
   └── Funciona en iPhones desde el 6s
   └── No requiere Apple Silicon

✅ Integración nativa
   └── Vision framework (imágenes)
   └── Natural Language (texto)
   └── Sound Analysis (audio)

✅ Madurez
   └── 9 años de desarrollo
   └── Documentación extensa
   └── Comunidad establecida

✅ Modelos clásicos
   └── Clasificación de imágenes
   └── Detección de objetos
   └── Análisis de sentimiento

Debilidades de CoreML

❌ Soporte LLM limitado
   └── No diseñado para transformers grandes
   └── Conversión de modelos problemática
   └── KV-cache ineficiente

❌ Rendimiento con LLMs
   └── ~8-12 tokens/segundo típico
   └── Alto consumo de memoria
   └── Latencia inicial alta

❌ Ecosistema de modelos
   └── Pocos LLMs pre-convertidos
   └── Conversión manual compleja
   └── Errores frecuentes en conversión

MLX: El Especialista

MLX es un framework open-source de Apple (lanzado diciembre 2023), diseñado específicamente para Apple Silicon.

Fortalezas de MLX

✅ Optimizado para LLMs
   └── Arquitectura transformer-first
   └── KV-cache eficiente
   └── Lazy evaluation

✅ Rendimiento superior
   └── ~30-50 tokens/segundo
   └── Uso eficiente de memoria unificada
   └── Metal optimizado

✅ API familiar
   └── Similar a PyTorch/NumPy
   └── Curva de aprendizaje suave
   └── Excelente para prototipar

✅ Ecosistema activo
   └── mlx-community en Hugging Face
   └── Cientos de modelos pre-convertidos
   └── Actualizaciones frecuentes

Debilidades de MLX

❌ Requisito Apple Silicon
   └── No funciona en Intel Macs
   └── No funciona en iPhones antiguos
   └── Limita audiencia potencial

❌ Relativamente nuevo
   └── 2 años vs 9 de CoreML
   └── Menos tutoriales disponibles
   └── API puede cambiar

❌ Menos integración nativa
   └── No tiene equivalentes a Vision/NL
   └── Requiere más código manual

Mi Elección y Por Qué

Elegí MLX Swift para este proyecto. Aquí está mi razonamiento:

1. El Caso de Uso Principal Son LLMs

Mi app necesita generar texto conversacional. MLX está diseñado exactamente para esto (entre otras cosas).

2. El Rendimiento Importa Para UX

La diferencia entre 10 t/s y 35 t/s es la diferencia entre una app frustrante y una app usable.

No creo que los usuarios quieran esperar 20 segundos ⏳.

3. El Ecosistema de Modelos

Con MLX, puedo hacer esto:

# Cargar un modelo es UNA línea
from mlx_lm import load, generate

model, tokenizer = load("mlx-community/Qwen2.5-3B-Instruct-4bit")

Con CoreML, necesito:

  1. Encontrar el modelo en formato compatible
  2. Convertirlo manualmente (puede fallar)
  3. Optimizarlo para el dispositivo
  4. Rezar para que funcione

La fricción es enorme.

4. Los Requisitos de Hardware Son Aceptables

Sí, MLX limita la audiencia a dispositivos con Apple Silicon. Pero:

  • iPhone 15 Pro y posteriores tienen 8GB de RAM
  • Todos los Mac desde 2020 tienen M1+
  • Los usuarios que quieren IA local tienen hardware moderno

Es un trade-off bastante aceptable

5. Apple Está Apostando por MLX

El equipo de MLX en Apple está activo. Hay releases frecuentes. El framework mejora constantemente.

CoreML para LLMs… no tanto.


El Stack Completo

Después de evaluar todas las opciones, este es mi stack final:

  • Lenguaje: Swift 6
  • Plataforma: iOS 26
  • UI: SwiftUI
  • Gestión de estado: @Observable
  • Persistencia: SwiftData
  • LLM: MLX Swift
  • Modelos: mlx-community — small o tiny
  • Hardware: Apple Silicon

Justificación de Cada Componente

SwiftUI (UI Framework)

Por qué SwiftUI y no UIKit:

AspectoUIKitSwiftUI
ParadigmaImperativoDeclarativo
Código necesarioMásMenos
PreviewsLimitadasExcelentes
EstadoManualAutomático
Curva de aprendizajeAltaMedia
FuturoMantenimientoActivo desarrollo

SwiftUI en 2026 está maduro. Los problemas de versiones anteriores están resueltos. Es la elección obvia para proyectos nuevos.

// Ejemplo: Un mensaje de chat en SwiftUI
struct MessageBubble: View {
    let message: Message
    
    var body: some View {
        HStack {
            if message.isUser { Spacer() }
            
            Text(message.content)
                .padding()
                .background(message.isUser ? .blue : .gray.opacity(0.2))
                .foregroundStyle(message.isUser ? .white : .primary)
                .clipShape(RoundedRectangle(cornerRadius: 16))
            
            if !message.isUser { Spacer() }
        }
    }
}

Swift 6 (Lenguaje)

Swift 6 trae strict concurrency checking por defecto. Esto significa:

  • Menos bugs de concurrencia
  • Código más seguro
  • Mejor integración con async/await

Para una app que hace inferencia ML en background, esto es crítico.

SwiftData (Persistencia)

Por qué SwiftData y no CoreData:

// CoreData (antiguo)
@NSManaged var content: String?
@NSManaged var timestamp: Date?
@NSManaged var conversation: Conversation?

// SwiftData (moderno)
@Model
class Message {
    var content: String
    var timestamp: Date
    var conversation: Conversation?
}

SwiftData es CoreData con una API moderna. Menos código, menos errores, mejor integración con SwiftUI. Te dejo los links al inicia para que puedas investigar mejor en detalle.

@Observable (State Management)

El nuevo framework Observation de Apple reemplaza a @ObservableObject y @Published. Dejo un ejemplo de como se ve:

// Antes (iOS 16)
class ChatViewModel: ObservableObject {
    @Published var messages: [Message] = []
    @Published var isLoading = false
}

// Ahora (iOS 26)
@Observable
class ChatViewModel {
    var messages: [Message] = []
    var isLoading = false
}

Seguro esto me va a costar un poco de tiempo de aprendizaje, pero creo que es la mejor opción para el futuro. Mas que vengo de python.


Requisitos de Hardware

Dispositivos Soportados

DispositivoMínimoRecomendadoÓptimo
iPhone15 Pro (8GB)16 Pro (8GB)16 Pro Max (12GB)
iPadPro M1 (8GB)Pro M2 (8GB)Pro M4 (16GB)
MacAir M1 (8GB)Pro M2 (16GB)Pro M3+ (18GB+)

Impacto en la Audiencia

Dispositivos con 8GB+ RAM (Apple Silicon):
├── iPhone 15 Pro / Pro Max (2023)
├── iPhone 16 / Pro / Pro Max (2024)
├── iPhone 17 series (2025)
├── Todos los iPad Pro con M-chip
├── Todos los Mac con M-chip
└── Estimado: ~30% de usuarios iOS activos

Tendencia: Este porcentaje crece cada año.

Decisión: Aceptar la limitación porque el segmento objetivo (usuarios que quieren IA local) tiene hardware moderno. En un par de años seguro esto va a ser más común.


Estructura del Proyecto

Arquitectura MVVM

Basicamente porque es una arquitectura popular y tiene buena primera curva de aprendizaje. Dejo acá un post de reddit porque esta bueno empezar a usarla.

Por Qué MVVM

BeneficioExplicación
Separación de concernsUI no sabe nada de MLX, MLX no sabe nada de UI
TestabilidadPuedo testear ViewModels sin UI
ReusabilidadUn ViewModel puede usarse en múltiples Views
MantenibilidadCambiar la UI no rompe la lógica
EscalabilidadFácil agregar features sin refactorizar todo

Recursos y Siguiente Paso

Documentación Oficial

RecursoLinkPara qué
MLX SwiftGitHubReferencia principal
MLX ExamplesGitHubCódigo de ejemplo
SwiftUIApple DocsDocumentación UI
SwiftDataApple DocsDocumentación persistencia

Modelos Recomendados (por el momento)

ModeloTamañoUsoLink
Qwen2.5-0.5B-4bit~300MBTier gratisHF
Qwen2.5-1.5B-4bit~900MBBalanceHF
Qwen2.5-3B-4bit~1.8GBCalidadHF

Comunidades

La Semana Que Viene

Semana 2: Aprendiendo Swift

En el próximo post voy a documentar mi transición de Python a Swift. Cubriré:

  • Diferencias clave entre lenguajes
  • Optionals (el concepto más confuso para principiantes)
  • Async/await en Swift vs Python
  • Closures y funciones de orden superior

Conclusión

Elegir el stack tecnológico es la decisión más importante de un proyecto. Para apps de IA on-device en iOS en 2026, mi recomendación es clara:

┌────────────────────────────────────────────────┐
│                                                │
│   MLX Swift + SwiftUI + SwiftData              │
│                                                │
│   Si tu app necesita LLMs on-device,           │
│   esta es la combinación ganadora.             │
│                                                │
└────────────────────────────────────────────────┘

El trade-off (solo Apple Silicon) es aceptable porque:

  1. El rendimiento es 3-4x mejor
  2. El ecosistema de modelos es superior
  3. La audiencia target tiene hardware moderno
  4. Apple está invirtiendo activamente en MLX

¿Te sirvió este post? Estoy documentando todo el proceso de crear esta app. Seguime en YouTube para el DevLog semanal.