Repolode
krzysztofzablocki

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. 1

    Instala el binario de sourcery con Homebrew

    brew install sourcery
  2. 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

#swift#code-generation#metaprogramming#templates#ios#testing#boilerplate#codegen#codegenerator

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