この記事について
最近個人プロダクトで使っている、R.swiftとSwiftLintの併用による利点について記載します。
R.swiftについて
プロジェクト内の画像やStoryboard上のViewControlerのクラス名など、従来であれば文字列として入力すべきものをプロパティ値として扱うことができるようになります。
これによって、画像名などのtypoが減少し、より安定的な開発を行えるようになります。
typoが減ることによって、短期的に開発効率を上げることができます。
SwiftLintについて
Realmが出しているSwift用のlintツール。
これを使用することでちょっとしたコードの汚さなどがかなり軽減されます。
導入直後は大量のエラーと警告が出るため、既存のプロジェクトに適用するには不向きですが、新規プロジェクトで導入するには最適です。
lintツールを導入しておけば、コードの読みやすさがある程度担保されるためチーム開発にもうってつけです。
また、半年前の自分のコードを読み直すと言った場面でも役に立ちます。
これらのことから、長期的に開発効率を上げることができます。
R.generated.swiftについて
R.swiftによって自動生成されるR.generated.swift
についてですが、公式では下記のようにgit管理下に置くべきではないと書かれています。
Tip: Add the *.generated.swift pattern to your .gitignore file to prevent unnecessary conflicts.
しかし、個人的な見解としては、R.generated.swift
もgit管理下に置くべきだと考えます。
なぜなら、一度R.swiftを使い始めると、このファイルなしではプロジェクトがコンパイル不可になるためです。
一人で開発している時なら問題ありませんが、新しい人にgit経由でプロジェクトを渡した時、gitのリポジトリとは別にこのファイルを渡さなくてはいけなくなります。
であれば、リポジトリを渡してすぐに開発が行えるほうが効率的です。
また、チーム開発を行っている際に、各々のチームメンバが追加したプロパティが共有されずにコンパイルに失敗するなどの事象も発生します。
このような問題も、件のファイルをgit管理下においておけば発生しません。
この場合コンフリクトが発生しますが、その解消はそこまでハードなものにはならないだろうと思われます。
コンパイル不可能な状態になるくらいなら、コンフリクトが起こったほうがまだ良いだろうという考えです。
まとめ
R.swiftとSwiftLintを併用することによる利点とそれに関するtipsについて記事を書かせて頂きました。
この記事が、読んだ人の開発効率向上につながれば幸いです。