¿Qué hace desarrollo-ios-swift?
Desarrolla aplicaciones iOS nativas con Swift. Cubre la arquitectura MVVM, SwiftUI, URLSession para redes, Combine para programación reactiva y persistencia con Core Data.
Introducción
Este skill proporciona las bases para construir aplicaciones iOS robustas y mantenibles utilizando Swift. Está enfocado en las siguientes áreas clave:
- Arquitectura MVVM: Separa la lógica de negocio de la interfaz de usuario, mejorando la testabilidad y el mantenimiento del código.
- SwiftUI: Framework moderno para construir interfaces de usuario declarativas y reactivas.
- URLSession: Cliente HTTP nativo para realizar solicitudes de red y manejar respuestas.
- Combine: Framework para manejar eventos asíncronos y flujos de datos de manera reactiva.
- Core Data: Framework de persistencia para almacenar y recuperar datos estructurados.
¿Por qué usar este skill?
- Desarrollo profesional: Aplica patrones de diseño probados en la industria.
- Eficiencia: Aprovecha las capacidades nativas de iOS para reducir el código boilerplate.
- Escalabilidad: Arquitectura que facilita el crecimiento de la aplicación.
- Compatibilidad: Funciona con herramientas de IA como Claude Code, Cursor, Codex y otras.
Cómo usar este skill
- Asegúrate de tener un entorno de desarrollo iOS configurado (Xcode, Swift 5+).
- Sigue la estructura MVVM para organizar tu proyecto:
- Model: Define las estructuras de datos y la lógica de negocio.
- View: Crea interfaces con SwiftUI.
- ViewModel: Conecta la vista con el modelo mediante Combine.
- Para networking, implementa URLSession con Combine para manejar respuestas asíncronas.
- Para persistencia, configura Core Data con un contenedor persistente.
Ejemplo rápido
// ViewModel de ejemplo con Combine
import Foundation
import Combine
class UserViewModel: ObservableObject {
@Published var users: [User] = []
private var cancellables = Set<AnyCancellable>()
func fetchUsers() {
guard let url = URL(string: "https://api.example.com/users") else { return }
URLSession.shared.dataTaskPublisher(for: url)
.map { $0.data }
.decode(type: [User].self, decoder: JSONDecoder())
.receive(on: DispatchQueue.main)
.sink(receiveCompletion: { completion in
// Manejar errores
}, receiveValue: { [weak self] users in
self?.users = users
})
.store(in: &cancellables)
}
}
Notas adicionales
Este skill asume conocimientos básicos de Swift y Xcode. Para más detalles, consulta la documentación oficial de Apple sobre SwiftUI, Combine y Core Data.