3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Swift】R.swiftを使った文字列のハードコーディング対策

Posted at

はじめに

Localizable.stirngsを使って、文字列のハードコーディングを避けていた。
URL: 【Swift】Localizable.stringsを使った文字列のハードコーディング対策
しかし、自動補完が効かないデメリットがある。

この記事では、R.swiftを使った場合の文字列のハードコーディング対策の実装を備忘録として、記録する

実装比較

Localizable.stringsの場合

Localizable.strings
"ArticleTitle" = "記事タイトル";
"ArticleAuthor" = "kasiwa";
"ArticleBody" = "記事本文記事本文記事本文記事本文記事本文記事本文記事本文";
"ArticleCreatedAt" = "2023/05/06";
ViewController
import UIKit

final class ViewController: UIViewController {
    @IBOutlet private var articleTitle: UILabel!
    @IBOutlet private var articleCreatedAt: UILabel!
    @IBOutlet private var articleBody: UILabel!
    @IBOutlet private var articleAuthor: UILabel!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        articleTitle.text = NSLocalizedString("ArticleTitle", comment: "")
        articleCreatedAt.text = NSLocalizedString("ArticleCreatedAt", comment: "")
        articleBody.text = NSLocalizedString("ArticleBody", comment: "")
        articleAuthor.text = NSLocalizedString("ArticleAuthor", comment: "")
    }
}

Localizable.strings+R.swiftの場合

ViewController.swift
import UIKit

final class ViewController: UIViewController {
    @IBOutlet private var articleTitle: UILabel!
    @IBOutlet private var articleCreatedAt: UILabel!
    @IBOutlet private var articleBody: UILabel!
    @IBOutlet private var articleAuthor: UILabel!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        articleTitle.text = R.string.localizable.articleTitle()
        articleCreatedAt.text = R.string.localizable.articleCreatedAt()
        articleBody.text = R.string.localizable.articleBody()
        articleAuthor.text = R.string.localizable.articleAuthor()
    }
}

プレビュー

終わりに

R.swiftを活用すれば、文字列の指定ミスによるクラッシュがなくなるので、開発を効率化できる。

個人的に、書きやすさもR.swiftを使った方が楽。
StoryBoard, Cellも文字列と同様に、自動補完が効くので、積極的にR.swiftを使っていきたい。

参考リンク

R.swift - Github
R.swiftのセットアップ方法(Swift5)

3
0
0

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
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?