Rustの手続き型マクロを実装する、5つのプロジェクトからなる実践ワークショップ。各プロジェクトには雛形とtrybuildのテストスイートが用意されています。
krzysztofzablocki/Sourcery
SwiftSyntaxを基盤とするSwiftコードジェネレーター。テンプレートを使ってモックやEquatable、Codableなどの定型コードを生成します。
- スター
- 8,031
- フォーク
- 633
- 未解決の Issue
- 95
- 最終コミット
- 9 日前
これは何?
SourceryはSwift向けのコマンドラインコードジェネレーターです。AppleのSwiftSyntaxでSwiftのソースファイルを解析し、得られた型情報をStencilテンプレートに渡して、新しいSwiftファイルを生成します。プロトコルのモック、等価性やハッシュの実装、enumのcase用ヘルパー、レンズ、Codable準拠といった繰り返しの多いコードを自動化できます。
代表的な用途はモックの生成です。プロトコルごとにモッククラスを手書きする代わりに、`extension MyProtocol: AutoMockable {}`のようなアノテーションを追加すると、Sourceryがモックを生成します。ソースから出力を再生成するため、プロトコルのメンバーが変わってもモックを最新の状態に保てます。
SourceryはHomebrew、CocoaPods、Mint、Swift Package Manager経由でインストールできるバイナリとして実行できるほか、Swift package command pluginやpre-commit hookとしても利用できます。ファイル変更時にコードを再生成するwatch modeを備え、ソース、テンプレート、引数を指定する設定ファイルも用意されています。
主な機能
- 01AutoMockableアノテーションを使ってプロトコルのモックを生成します。
- 02型定義からEquatable、Hashable、Codableの実装を生成します。
- 03Stencilテンプレートを自作して、任意のパターンを自動化できます。
- 04ソースやテンプレートの変更時にコードを再生成するwatch modeを備えています。
- 05Homebrew、CocoaPods、Mint、SPM、またはpre-commit経由でインストールできます。
ユースケース
- iOSプロジェクト内のすべてのプロトコルに対し、一貫性のあるモックやスタブを生成する。
- モデル型の変更に合わせて、Equatable、Hashable、Codableのコードを最新の状態に保つ。
- 繰り返しの多いアーキテクチャパターン向けに、プロジェクト固有のコード生成テンプレートを作成する。
- 型宣言をもとに設定画面などのUIコードを自動生成する。
クイックスタート
- 1
Homebrewでsourceryのバイナリをインストールします
brew install sourcery - 2
ソース、テンプレート、出力先のパスを指定してsourceryを実行します
./bin/sourcery --sources <sources path> --templates <templates path> --output <output path>
使う前に知っておきたいこと
- Swift Package Managerでビルドする場合、JSで記述されたテンプレートはサポートされません。
- XcodeコマンドプラグインはXcode 14以降でのみ利用できます。
収録されている特集
トピック
よくある質問
- Sourcery とは?
- SwiftSyntaxを基盤とするSwiftコードジェネレーター。テンプレートを使ってモックやEquatable、Codableなどの定型コードを生成します。 SourceryはSwift向けのコマンドラインコードジェネレーターです。AppleのSwiftSyntaxでSwiftのソースファイルを解析し、得られた型情報をStencilテンプレートに渡して、新しいSwiftファイルを生成します。プロトコルのモック、等価性やハッシュの実装、enumのcase用ヘルパー、レンズ、Codable準拠といった繰り返しの多いコードを自動化できます。
- Sourcery は無料で使えますか?ライセンスは?
- Sourcery は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- Sourcery は今もメンテナンスされていますか?
- 活発にメンテナンス中。Sourcery の最終コミットは 2026年10月28日 です。
- Sourcery は何に使えますか?
- iOSプロジェクト内のすべてのプロトコルに対し、一貫性のあるモックやスタブを生成する。 モデル型の変更に合わせて、Equatable、Hashable、Codableのコードを最新の状態に保つ。 繰り返しの多いアーキテクチャパターン向けに、プロジェクト固有のコード生成テンプレートを作成する。 型宣言をもとに設定画面などのUIコードを自動生成する。
- Sourcery のインストール方法は?
- Homebrewでsourceryのバイナリをインストールします: brew install sourcery ソース、テンプレート、出力先のパスを指定してsourceryを実行します: ./bin/sourcery --sources <sources path> --templates <templates path> --output <output path>
- Sourcery はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/krzysztofzablocki/Sourcery
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
コーディングエージェントがFigmaデザインをコード化し、デザインをキャンバスに書き戻せる無料の双方向Figma MCPサーバー。
アノテーションを使って、getterやequals、ビルダー、ロガーフィールドなどの定型コードを生成するJavaライブラリです。
サッカー賭けゲームを例に、テスト、lint、CI、Next.jsフロントエンドを備えたGenLayer intelligent contract開発用ボイラープレート。
TypeScript、Tailwind CSS v4、テスト、Lint、AWSへのオプションのデプロイ基盤を備えた、本番運用向けNext.js 15スターターテンプレート。
Appleのsimctlを活用し、iOS、tvOS、watchOSのシミュレータをGUIで操作できるmacOSアプリ。