ページ内ナビ
概要
SwiftGenはiOS/macOS projectのresourceからSwift codeを生成するCLIです。Asset Catalog、localized strings、fonts、storyboards、Core Data、JSON/YAMLなどをparserで読み込み、文字列ベースのresource名をcompilerで検証できるconstant/APIへ置き換えます。
特徴と向いている用途
公式資料に基づく紹介・実機未検証 · 内容確認日:
主な特徴
resource名を生成codeへ変換してtypoと存在しない参照をcompile時に検出する
xcassets、strings、fonts、IB file、Core Dataなどをparserで読み込み、ImageAssetやlocalized string accessorsなどのSwift codeを生成します。resource名の直接入力を減らし、autocompleteとcompile-time checkを利用できます。
出典:[2]
swiftgen.ymlとStencil templateで生成規則をprojectへ固定する
swiftgen.ymlへinputs、output、templateNameを記述し、swiftgen config runまたはswiftgenで複数parserをまとめて実行できます。bundled templateに加えStencil-based custom templateも利用できます。
出典:[2]
向いている用途
asset・localizationが多いiOS projectでString-based APIを減らしたい場合に向く
画像名、色、localized key、storyboard identifierなどのresource参照を共通generated codeへ集約したいteamに適します。生成toolのversionとconfigをrepository側で固定するとdeveloper/CI間の差を抑えられます。
出典:[2]
導入前の確認
参考にした公式資料
- [1]SwiftGen/SwiftGen — GitHub repository(2026-10-06)
- [2]SwiftGen 6.6.3 — README(2026-10-06)
- [3]SwiftGen 6.6.3 — Package.swift(2026-10-06)
- [4]SwiftGen 6.6.3 release(2026-10-06)
- [5]SwiftGen MIT license(2026-10-06)
編集部からの補足
画像名・色・localized key・storyboard identifierなどString-basedなresource参照を減らしたいiOS projectに向きます。latest releaseは2024年なので、2026年のstable branchとの差を確認しつつtool versionを固定してください。
3ステップで試す
- 1
SwiftGen 6.6.3をMint経由で固定して確認する
READMEで案内されているMintを使い、projectで確認するSwiftGen versionを6.6.3へ固定します。
mint run SwiftGen/SwiftGen@6.6.3 swiftgen --version - 2
最小のswiftgen.ymlを作る
Asset CatalogをparseしてGenerated/Assets.swiftへ型安全なresource APIを生成するconfigを作ります。
cat > swiftgen.yml <<'YAML' xcassets: inputs: Resources/Images.xcassets outputs: - templateName: swift5 output: Generated/Assets.swift YAML - 3
configに沿ってcodeを生成する
version固定したSwiftGenでswiftgen.ymlを実行し、generated Swift fileを確認します。
mint run SwiftGen/SwiftGen@6.6.3 swiftgen config run
成長
成長の推移 · 直近30日
9,548 Stars
推移データを蓄積中です。
開発アクティビティ
直近90日・週次
- Commit(直近30日)
- 0
- Open PR
- 32
開発アクティビティを蓄積中です。
Built with
カテゴリとタグ
GitHubデータ
関連情報
関連記事を投稿するこのOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。
あわせて探訪
- Nx29,392 Stars
共通タグ 1件 · 共通カテゴリ 2件
複数プロジェクトの依存関係を把握し、必要なタスクだけを効率よく実行する
TypeScript - Jenkins26,621 Stars
共通タグ 1件 · 共通カテゴリ 2件
Job・Pipeline・pluginでbuild・test・analysis・deploymentを自動化するJava automation server
Java - Cookiecutter25,129 Stars
共通タグ 1件 · 共通カテゴリ 2件
Jinja templateと対話入力からproject skeletonを生成し、定型project構成を再利用する
Python - Skyvern23,140 Stars
共通タグ 1件 · 共通カテゴリ 2件
LLMと視覚理解で固定selectorに縛られずWeb業務を自動化する
Python - Renovate22,688 Stars
共通タグ 1件 · 共通カテゴリ 2件
90超のpackage managerを横断してdependency update PRを自動化する
TypeScript - Gradle18,875 Stars
共通タグ 1件 · 共通カテゴリ 2件
multi-projectのbuild・test・dependency管理をtask graphとpluginで統合する
Groovy
情報の誤りを報告
掲載内容に誤りや古い情報があればお知らせください。