LoginSignup
10

More than 5 years have passed since last update.

iOSアプリ開発でのリソース管理

Posted at

最近、Swiftを触り始めたのですが、画像と文字列の管理がわかりにくかったのでまとめておきます。
基礎的なことだと思いますが、同じような人の助けになれば。

試したバージョンは下記です。

  • Xcode 9.2
  • Swift 4
  • R.swift 4.0.0

R.swiftのインストール

リソースへのアクセスに R.swift というライブラリを使います。
ライブラリの説明とインストール方法は以下を参照してください。
https://github.com/mac-cain13/R.swift#installation

文字列リソースの管理

リソースファイルの作成

Xcodeの文字列リソースファイルを利用します。

ファイルの作成(Cmd+N)で開くダイアログから Strings File を選択します。

スクリーンショット 2017-12-18 17.48.52.png

名前(ここでは settings.strings とします)をつけて保存すると、空のファイルが作成されるので、"KEY" = "VALUE"; の形式で記述します。
文末にセミコロンが必要です。

settings.strings
"welcome" = "こんにちは!";
"bye" = "さようなら"

アクセス方法

下記のように取得可能です。

R.string.[ファイル名].[KEY]()
文字列の所得
let welcome = R.string.settings.welcome() // こんにちは!

画像リソースの管理

リソースの登録

アセットカタログに画像をドラッグして登録します。
スクリーンショット 2017-12-18 21.03.03.png

アセットを登録したら、一度プロジェクトをビルドします。
すると R.generated.swift に登録した画像が追加されます。

R.generated.swift
  struct image {
    /// Image `sick_kebyou_man`.
    static let sick_kebyou_man = Rswift.ImageResource(bundle: R.hostingBundle, name: "sick_kebyou_man")

アクセス方法

あとは以下のようにして取得可能です。

R.image.[リソース名]
画像にアクセス
let image1 = R.image.sick_kebyou_man()

スクリーンショット 2017-12-18 21.08.29.png

補完されるので、画像名を間違える心配もありません。

namespace付きでアクセス

画像はグルーピングして管理することもできます。

下図のようにアセットカタログにフォルダーを追加して Provides Namespace をチェックしておきます。

スクリーンショット_2017-12-18_21_16_10.jpg

すると、フォルダー配下の画像に フォルダー名.リソース名 でアクセス可能となります。

namespace付きで画像にアクセス
let image2 = R.image.hogehoge.sick_byouketsu_man()

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10