名前空間を利用して色や画像の指定でコード補完を使えるようにする

こんにちは、シマイモです。
最近、チームでiOSアプリの開発をしています。
そのプロジェクトでは、名前空間を活用して、色や画像をコード補完を使って指定できるようにし、タイポを防いでいます。
今回は、その方法をご紹介します。

検証環境

Xcode 16.2(16C5032a)
iOS 16.6
Swift 6.0.3

設定方法

Assetsを開いて、フォルダ「Colors」を作成します。
そのフォルダ「Colors」のShow the Attributes inspectorを開き、「Provides Namespace」にチェックを入れます。

これで、設定は完了です!

実際にコードを書く

import SwiftUI

struct HomeView: View {
  var body: some View {
    ZStack {
      Color(.Colors.backgroundPrimary)
        .ignoresSafeArea()

      Text("Hello World!")
        .foregroundStyle(Color(.Colors.textPrimary))
    }
  }
}

#Preview {
  HomeView()
}

.Colors.textPrimary.Colors.backgroundPrimary のように、. で繋げるだけで指定ができるようになりました。
これにより、名前を忘れてわざわざ調べる必要がなくなり、タイポによる色の指定ミスも防げます。
また、Assets を整理するときに不要なものを削除しても、コンパイルエラーが発生するため、見落としを防げます。

画像の場合

画像の場合も、色の指定方法と同じように「Provides Namespace」にチェックを入れるだけで、同じように.Images.UserIcon に使えるようになります。

さらにフォルダー分け

今のProjectではOnboardingやHomeなどでさらにフォルダーを分けています。
画像のように子フォルダの「Provides Namespace」にもチェックを入れます。

実際にコードではこのように書けます。

import SwiftUI

struct HomeView: View {
  var body: some View {
    ZStack {
      Color(.Colors.Home.backgroundPrimary)
        .ignoresSafeArea()

      Text("Hello World!")
        .foregroundStyle(Color(.Colors.Home.textPrimary))
    }
  }
}

#Preview {
  HomeView()
}

さいごに

名前空間を活用することで、画像や色の指定がしやすくなりました。
今のプロジェクトでも開発がスムーズになり、とても快適です。
ぜひ皆さんも試してみてください!
良い開発ライフを!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です