🦕 De una app iOS a un ecosistema Apple: Mi experiencia con desarrollo multiplataforma
13 de diciembre de 2025

Hace dos días tenía una app iOS funcional, hoy corre en iPhone, iPad, Mac y Apple Watch compartiendo el 70% del código, misma lógica de negocio, UIs distintas para cada plataforma.
¿Por qué multiplataforma? Porque cuando tu lógica de negocio funciona sin cambios en las 4 plataformas, y el usuario puede ver su colección en iPhone/iPad, gestionarla en Mac y actualizarla desde su Watch, entiendes el verdadero poder de una arquitectura bien diseñada.
Lo más importante: multiplataforma no es copiar y pegar código, es separar lógica de negocio de la presentación y adaptar la UI al contexto de cada dispositivo.
El resultado:
✔ iOS: App completa con autenticación, filtros, SwiftData local + sincronización en la nube.
✔ macOS: NavigationSplitView (3 columnas), keyboard shortcuts, menús nativos.
✔ watchOS: Colección compacta, actualizar progreso, feedback háptico -vibraciones muy precisas-.
✔ Código compartido: ViewModels (100%), Network layer (100%), Models (100%), KeychainHelper con App Groups
✔ Swift 6 Strict Concurrency: Complete (cero data races)
Nivel de dificultad: Medio-Alto
Tiempo invertido: 15 horas (Clean Architecture, App Groups, debugging de Target Membership)
¿Vale la pena? Absolutamente, tu producto es tu identidad, y no cuesta implementarlo, dará a tus clientes opciones y se podrán aprovechar de la comodidad del ecosistema Apple. Una vez que la arquitectura es sólida, añadir plataformas es exponencialmente más rápido.
Los aprendizajes clave
- @Observable es tu aliado: Compatible con todas las plataformas, mejor que @ObservableObject.
- Target Membership: ViewModels y lógica compartidos, Views específicos por plataforma.
- App Groups: Token en Keychain compartido entre iOS, macOS, watchOS. Login una vez, acceso desde todas.
- UI adaptativa: TabView en iPhone, NavigationSplitView (3 columnas) en Mac, listas compactas en Watch
Recursos que me ayudaron:
- Human Interface Guidelines - macOS
- Human Interface Guidelines - watchOS
- WWDC23 - Beyond the basics of structured concurrency
- Swift Evolution - Async/Await
Stack: Swift 6, Claude Code, GitHub, Canva, Adobe Photoshop 2025
