SwitGenユーザー(Homebrew)
紹介する
SwitGenについて簡単に説明します.
分かりやすいシナリオで説明したいと思います.
UIColor(named:)
を使用して指定した文字列定数をAssetにロードする必要があります.let customColor = UIColor(named: "customRed")!
この方法は文字列をハードコーディングするため、エラーが発生し、実行時にエラーが特定されるため、コンパイル時にエラーを見つけるのは難しい.したがって、補足措置としては、以下のように使用することができる.
enum Constans: String {
let customRed = "customRed"
}
extension UIColor {
static var customRed: UIColor {
UIColor(named: Constans.customRed.rawValue) ?? UIColor()
}
}
let customRed: UIColor = .customRed
追加されたリソースが多い場合は、マクロコードを記述して一括生成する方法も使用されます.この部分をシンプルにしたのがSWIFITGEN.
SwitGenでは、テンプレートを使用して上記の手順を実行できます.
これは、ハードコーディングエラーとコンパイル時にエラーをキャプチャするのに役立ちます.
どのように使用されているかを理解してみましょう.
設定
インストール前の作業環境は次のとおりです.
1. m1 macbook pro 16g
2. Xcode 13.2
3. Monterey 12.1
インストール方法
githubにもよく紹介されていて、いろいろな方法に長所と短所があるようです.
1. Download the ZIP
2. CocoaPods
3. Homebrew
4. Mint
ZipとCocoaPodsは、プロジェクトごとに容易に個別に適用できます.
HomebrewとMintはシステム全体で使用できるので、各項目を1つずつ設定したくない場合は選択できます.
Homebrewを選びました.Homebrewに設定されていますが、プロジェクトごとに違います.swifgen.ymlを別に適用してみます.
Homebrewのインストール
terminalにbrewでswifgenをインストールします.brew update
brew install swiftgen
この場合、hoemディレクトリのデフォルトはswiftgenです.ymlが位置決めされます.
Switgenの基本的な使い方
swiftgenの基本的な使用方法はswiftgenです.ymlでテンプレートを作成します.
テンプレートをswiftgenでグループ化します.
swiftgen.ymlでは、これらのバンドルパッケージのAssets.xcassets
をグループ化します.Asset+Generated.swift
(サンプル名)を生成します.Asset+Generated.swift
は、Assetで定義されたコンテンツに列挙的にアクセスすることを可能にする.
例:let customRed: UIColor = Asset.Color.customRed.color
上記のように.タイプ説明書は参考までに書いてあるので、必要ではありません.
まず、それがどのように動いているかを簡単にテストします.
端末に入力:cd ~/Desktop
swiftgen config init
ここでエラーが発生した場合、brewはswiftgenをインストールしていません.
まず、使いやすいようにデスクトップディレクトリに移動してから作業します.
上のコマンドはswifgenです.ymlの命令を生成します.
Dekstopディレクトリに移動するのはswiftgenです.ymlが生成されます.swiftgen config init
コマンドを入力するとswifgenになるかもしれません.ymlファイルは自動的にエディタで開きます.swiftgen.yml
の内容を見て、注釈を詳しく使いたいなら、ぜひ読んでみてください.
まず資産に集中しましょう.
作成したばかりのswiftgen.yml
を
brew update
brew install swiftgen
let customRed: UIColor = Asset.Color.customRed.color
cd ~/Desktop
swiftgen config init
ymlコンテンツの表示
# xcassets:
# inputs:
# - Main.xcassets
# - ProFeatures.xcassets
# outputs:
# - templateName: swift5
# params:
# forceProvidesNamespaces: true
# output: XCAssets+Generated.swift
これはAssetをグループ化してから変換する部分で、調理で使用できます.使いたい部分はコールアッセンセットを別途作りたいです.
Asset Catalog
が新設されました.名前はコール
いくつかのカスタムカラーをColor Assetに格納します.
swiftgen.ymlに次の内容を追加します.
xcassets:
inputs:
- Color.xcassets
outputs:
- templateName: swift5
params:
enumName: Colors
output: Color+Generated.swift
内容をよく見る.-templateName:swift 5、swift 4を特別に書く必要がある場合は、その内容を渡すことができます.詳細については、ドキュメントを参照してください.
次に、次のコマンドを入力します.
swiftgen config run
コマンドが正常に実行された場合File written: Color+Generated.swift
に表示されます.今は何も見えないはずですが、そのカタログに行けば
Color+Generated.swift
ファイルが生成されます.プロジェクトに追加します.
struct ContentView: View {
var body: some View {
Text("Hello, world!")
.padding()
.foregroundColor(Colors.customRed.color)
}
}
extension View {
func foregroundColor(_ uicolor: UIColor) -> some View {
self.foregroundColor(Color(uicolor))
}
}
実際、色
Color.customRed.color
に近づくことができます.形式Color
は、ymlによって記述されたenumNameである.基本的なワークフローですのでまとめてみます
swiftgen config run
はい.
swiftgen config run
を押すのは面倒でしょうか?こんな考えがあります.この部分を自動化できるのはRun Script
です.RunScript
プロジェクト→ターゲット→コンストラクションフェーズに移動します.
Run Scriptを追加しましょう
runscriptは,構築時に端末を自動的に開き,スクリプト内のコンテンツを実行する機能であると考えられる.
このシェルに内容を書きます.
ここの前に駅でやりました.
swiftgen config run
に記入すると構築のたびにセグメント化され、
Generated.swift
が生成されます.上の内容を入れて構築すると~
ミスを犯す.
特別な内容ではなくterminalでswiftgenを実行したいのですが、ありません.
brewにインストールされているswifgenは実行する必要があるのでpassを指定します.
PATH=/opt/homebrew/bin:$PATH
swiftgen config run
ここで実行がまた間違った.
今回はSwitgenymlが見つからないことを示します.うん.
コマンドを実行する前に、そのディレクトリがどこにあるかを見てみましょう.
PATH=/opt/homebrew/bin:$PATH
pwd
ls
swiftgen config run
スクリプトに上記の内容に変更した後に発生したエラーが表示された場合、プロジェクトフォルダにはありますが、ターゲットフォルダにはありません.
ターゲットフォルダに入ればいいです
PATH=/opt/homebrew/bin:$PATH
cd SwiftGenPractice
swiftgen config run
今構築すれば間違いなく構築され、正常に構築されます!内線。
この場合はswfitgenです.これは、ymlを検索してコンテンツパケットごとにファイルを生成する方法であり、実際には、例のようにパケット化されたコンテンツが多くなければ、ymlなしでインラインすることもできる.
swiftgen xcassets Resources/Images.xcassets --templateName swift5 --output "Constants/Assets+Generated.swift"
整理する
完全なコード
Reference
この問題について(SwitGenユーザー(Homebrew)), 我々は、より多くの情報をここで見つけました https://velog.io/@hey_hen/SwfitGen-사용기-Homebrewテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol