Un taller práctico con cinco proyectos de macros procedurales de Rust, cada uno con un esqueleto y una suite de pruebas trybuild para completar.
krzysztofzablocki/Sourcery
Generador de código Swift basado en SwiftSyntax que usa plantillas para crear código repetitivo, como mocks e implementaciones de Equatable y Codable.
- Estrellas
- 8,031
- Forks
- 633
- Issues abiertos
- 95
- Último commit
- hace 9 días
¿Qué es?
Sourcery es un generador de código Swift que se ejecuta desde la línea de comandos. Analiza tus archivos fuente de Swift con SwiftSyntax de Apple y pasa la información de tipos resultante a plantillas de Stencil, que luego generan nuevos archivos Swift. Así evita escribir código repetitivo, como mocks de protocolos, implementaciones de igualdad y hashing, funciones auxiliares para casos de enums, lenses y conformidades con Codable.
Un ejemplo típico es generar mocks: en lugar de escribir a mano una clase mock para cada protocolo, añades una anotación como `extension MyProtocol: AutoMockable {}` y Sourcery genera el mock. Como el resultado se vuelve a generar a partir del código fuente, los mocks se mantienen sincronizados cuando cambian los miembros del protocolo.
Sourcery se ejecuta como un binario que puedes instalar con Homebrew, CocoaPods, Mint o Swift Package Manager, y también se puede usar como plugin de comandos de Swift Package o como hook de pre-commit. Incluye un modo de observación para volver a generar código cuando cambian los archivos, y ofrece un archivo de configuración para definir las fuentes, las plantillas y los argumentos.
Funciones clave
- 01Genera mocks de protocolos con la anotación AutoMockable.
- 02Genera implementaciones de Equatable, Hashable y Codable a partir de definiciones de tipos.
- 03Permite crear plantillas personalizadas de Stencil para automatizar patrones arbitrarios.
- 04Ofrece un modo de observación que vuelve a generar código cuando cambian las fuentes o las plantillas.
- 05Se puede instalar mediante Homebrew, CocoaPods, Mint, SPM o pre-commit.
Casos de uso
- Generar mocks y stubs coherentes para todos los protocolos de un proyecto de iOS.
- Mantener sincronizado el código de Equatable, Hashable o Codable cuando cambian los tipos de modelo.
- Crear plantillas de generación de código específicas del proyecto para patrones de arquitectura repetitivos.
- Automatizar pantallas de ajustes u otro código de interfaz derivado de declaraciones de tipos.
Inicio rápido
- 1
Instala el binario de sourcery con Homebrew
brew install sourcery - 2
Ejecuta sourcery indicando las rutas de las fuentes, las plantillas y la salida
./bin/sourcery --sources <sources path> --templates <templates path> --output <output path>
Antes de usarlo
- Las plantillas escritas en JS no son compatibles al compilar con Swift Package Manager.
- El complemento de comandos de Xcode solo está disponible a partir de Xcode 14.
En colecciones
Temas
Preguntas frecuentes
- ¿Qué es Sourcery?
- Generador de código Swift basado en SwiftSyntax que usa plantillas para crear código repetitivo, como mocks e implementaciones de Equatable y Codable. Sourcery es un generador de código Swift que se ejecuta desde la línea de comandos. Analiza tus archivos fuente de Swift con SwiftSyntax de Apple y pasa la información de tipos resultante a plantillas de Stencil, que luego generan nuevos archivos Swift. Así evita escribir código repetitivo, como mocks de protocolos, implementaciones de igualdad y hashing, funciones auxiliares para casos de enums, lenses y conformidades con Codable.
- ¿Sourcery es gratuito? ¿Qué licencia tiene?
- Sourcery es open source bajo la licencia MIT. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿Sourcery sigue mantenido?
- Mantenimiento activo. El último commit de Sourcery fue el 28 oct 2026.
- ¿Para qué puedo usar Sourcery?
- Generar mocks y stubs coherentes para todos los protocolos de un proyecto de iOS. Mantener sincronizado el código de Equatable, Hashable o Codable cuando cambian los tipos de modelo. Crear plantillas de generación de código específicas del proyecto para patrones de arquitectura repetitivos. Automatizar pantallas de ajustes u otro código de interfaz derivado de declaraciones de tipos.
- ¿Cómo se instala Sourcery?
- Instala el binario de sourcery con Homebrew: brew install sourcery Ejecuta sourcery indicando las rutas de las fuentes, las plantillas y la salida: ./bin/sourcery --sources <sources path> --templates <templates path> --output <output path>
- ¿Dónde consigo Sourcery?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/krzysztofzablocki/Sourcery
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Servidor MCP gratuito y bidireccional para Figma que permite a agentes de programación convertir diseños en código y devolver diseños al lienzo.
Una biblioteca de Java que se integra con editores y herramientas de build para generar código repetitivo, como getters, equals, builders y campos de logging, mediante anotaciones.
Plantilla para crear contratos inteligentes de GenLayer, con un juego de apuestas de fútbol como ejemplo, pruebas, linting, CI y un frontend con Next.js.
Plantilla inicial de Next.js 15 lista para producción, con TypeScript, Tailwind CSS v4, pruebas, linting e infraestructura opcional para despliegues en AWS.
Una app para macOS que permite controlar mediante una interfaz gráfica los simuladores de iOS, tvOS y watchOS con la herramienta simctl de Apple.