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
- Introducción: Por Qué Este Post
- Mi Experiencia Personal
- El Contexto: IA On-Device en 2026
- MLX vs CoreML: Comparativa Completa
- Mi Elección y Por Qué
- El Stack Completo
- Requisitos de Hardware
- Estructura del Proyecto
- Configuración Inicial
- Decisiones Arquitectónicas
- 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ó:
| Factor | 2023 | 2026 |
|---|---|---|
| Modelos pequeños útiles | Limitados | Qwen2.5, Phi-4, Gemma 2 |
| RAM en iPhones | 6GB (Pro) | >8GB |
| Framework ML de Apple | CoreML (limitado para LLMs) | MLX Swift maduro |
| Cuantización | Experimental | 4-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
| Servicio | Precio | Privacidad | Offline |
|---|---|---|---|
| ChatGPT Plus | $20/mes | ❌ Datos en servidores | ❌ |
| Claude Pro | $20/mes | ❌ Datos en servidores | ❌ |
| Gemini Advanced | $20/mes | ❌ Datos en servidores | ❌ |
| App Local | Mucho 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:
- Encontrar el modelo en formato compatible
- Convertirlo manualmente (puede fallar)
- Optimizarlo para el dispositivo
- 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:
| Aspecto | UIKit | SwiftUI |
|---|---|---|
| Paradigma | Imperativo | Declarativo |
| Código necesario | Más | Menos |
| Previews | Limitadas | Excelentes |
| Estado | Manual | Automático |
| Curva de aprendizaje | Alta | Media |
| Futuro | Mantenimiento | Activo 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
| Dispositivo | Mínimo | Recomendado | Óptimo |
|---|---|---|---|
| iPhone | 15 Pro (8GB) | 16 Pro (8GB) | 16 Pro Max (12GB) |
| iPad | Pro M1 (8GB) | Pro M2 (8GB) | Pro M4 (16GB) |
| Mac | Air 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
| Beneficio | Explicación |
|---|---|
| Separación de concerns | UI no sabe nada de MLX, MLX no sabe nada de UI |
| Testabilidad | Puedo testear ViewModels sin UI |
| Reusabilidad | Un ViewModel puede usarse en múltiples Views |
| Mantenibilidad | Cambiar la UI no rompe la lógica |
| Escalabilidad | Fácil agregar features sin refactorizar todo |
Recursos y Siguiente Paso
Documentación Oficial
| Recurso | Link | Para qué |
|---|---|---|
| MLX Swift | GitHub | Referencia principal |
| MLX Examples | GitHub | Código de ejemplo |
| SwiftUI | Apple Docs | Documentación UI |
| SwiftData | Apple Docs | Documentación persistencia |
Modelos Recomendados (por el momento)
| Modelo | Tamaño | Uso | Link |
|---|---|---|---|
| Qwen2.5-0.5B-4bit | ~300MB | Tier gratis | HF |
| Qwen2.5-1.5B-4bit | ~900MB | Balance | HF |
| Qwen2.5-3B-4bit | ~1.8GB | Calidad | HF |
Comunidades
- r/LocalLLaMA - Comunidad de LLMs locales
- MLX Discord - Canal oficial de MLX
- iOS Dev Weekly - Newsletter iOS
- HuggingFace - Comunidad de modelos de MLX de HuggingFace
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:
- El rendimiento es 3-4x mejor
- El ecosistema de modelos es superior
- La audiencia target tiene hardware moderno
- 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.