【SwiftUI】画像や文字列を型安全で管理するライブラリのR.Swiftを使ってみる

R.Swiftというライブラリを使用することで、長い文章をテキストファイルに記述して変数で呼び出せるようになるというわけで実際に使ってみました。今回は文字列の管理方法に絞って紹介したいと思います。
# R.Swiftとは  
画像、文字列、カラー、フォントといった静的リソースを型安全に管理できるライブラリです。

https://github.com/mac-cain13/R.swift

# R.SwiftをSwiftPMで導入する
GithubのReadmeに詳しく書かれていますが、順を追って説明したいと思います。
>1. In Project Settings, on the tab "Package Dependencies", click "+" and add github.com/mac-cain13/R.swift
>2. Select your target, on the tab "General", in the section "Frameworks, Libraries, and Embeded Content", click "+" and add RswiftLibrary
>3. Select your target, on the tab "Build Phases", in the section "Run Build Tool Plug-ins", click "+" and add RswiftGenerateInternalResources
>4. Right-click on your project, click RswiftModifyXcodePackages, click Run, click Allow Command to Change Files
>5. Build your project, now the R struct should be available in your code, use auto-complete to explore all static references
1. プロジェクトの設定画面に移動し、`Package Dependencies`タブを選択して左下の`＋`ボタンをクリックする。
![スクリーンショット 2023-10-23 19.58.40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3111542/76e78ee6-f79a-8e69-f2c6-01a3a97a85a6.png)
2. 検索バーにGithubのリンクを貼り付けて、r.swiftを追加する。
![スクリーンショット 2023-10-23 19.59.25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3111542/71c618f0-8b3f-17b2-41c6-98d29b926f8a.png)
3. プロジェクトのターゲット画面に移動し、`General`タブを選択して`Frameworks, Libraries, and Embeded Content`に`RswiftLibrary`があることを確認する。（Xcode15では何もせずに追加されていました。）
![スクリーンショット 2023-10-23 20.05.37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3111542/cfc17d47-74bb-4111-cb14-748618e803ea.png)
4. 同じくプロジェクトのターゲット画面で`Build Phases`タブを選択し、`Run Build Tool Plug-ins`を選択して展開し、`＋`ボタンをクリックして`RswiftGenerateInternalResources`を追加する。
![スクリーンショット 2023-10-23 20.09.27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3111542/fc411303-8b70-2132-efe0-aa67ac2b65dd.png)
5. プロジェクトの上で右クリックをして下の方にある`RswiftModifyXcodePackages`をクリックし、次の画面で`Run`をクリックしたのち、その次の画面で「Allow Command to Change Files」をクリックする。
![スクリーンショット 2023-10-23 20.16.08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3111542/faf31cf4-04e3-2b9b-511b-a16375df03d0.png)
![スクリーンショット 2023-10-23 20.16.14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3111542/d532e40b-9399-369e-55ac-2cedbf0e6d8b.png)
![スクリーンショット 2023-10-23 20.16.26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3111542/d963200b-faa6-e39e-b51a-9a98f66d3660.png)
6. プロジェクトをビルドして完了。
# 文字列を管理するためのファイルを作成する
1. 右クリックで`New File...`をクリックしてstringファイルを追加する。（ファイル名は`Localizable.string`）
![スクリーンショット 2023-10-23 20.23.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3111542/c4150af3-1816-f130-777f-038c23a0eda0.png)
2. 追加したファイルに呼び出す際の名前を「"」で囲み、「=」を挟んで保持させたい文字列を「"」で囲んで最後に「;」をつける
![スクリーンショット 2023-10-23 20.27.15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3111542/9bdd8173-e358-4ef8-c53b-3c50878f9988.png)
3. 一度ビルドをして記述したコードを自動生成によって有効化する。  
4. Viewで`R.string.localizable.(呼び出したい文字列の名前)`の形式で呼び出す。
![スクリーンショット 2023-10-24 11.14.28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3111542/5e2d6b85-35c4-fb9c-392b-c007ac3b835c.png)
:::note info
ビルドに失敗する可能性がありますが、Xcodeのメニューバーにある`Product`から`Clean Build Folder...`をクリックして再度ビルドすると成功します。
:::
# 最後に
R.Swiftの導入方法と文字列の使用方法についてまとめました。自分がこの情報に辿り着くのに時間がかかったのでご参考になればと思います。
# 参考リンク
https://github.com/mac-cain13/R.swift

https://qiita.com/m_rn/items/7c73d77e07ee7bd484cb