Xcodeのプロジェクトを大掃除する方法


最初に

この記事は、Xcodeのプロジェクトを綺麗にする方法です。
ただ、あくまで僕が綺麗だと思うだけであって個人差はあると思いますm(_ _)m
他におすすめの方法とかあると、教えてもらえると嬉しいです!

記載時(2016/01/17)のバージョンは下記の通りです。

対象 バージョン
XCode 7.2
Mac 10.11.2

要注意!

今回の作業を行う前に、必ず ソースコードのバックアップを取っておいてください!
大掃除して動かなくなったとかだと笑えないので、注意してください。

タブとスペースが混ざってしまっている

悩み

複数人で開発したり、
ソースコードを適当にコピーペーストすると・・
気付けば、タブスペースが混在してませんか?

Xcode上では違いがわからなくても、
GitHubなどにソースコードを見た時に・・

   let hoge = "A"
      let fuga = "B"

上記のような感じで、インデントがずれちゃうことがあると思います。
汚いです、気になりますよね...!

解決方法

.swiftファイルのタブをスペースに一括置換する。

コマンド:

find ./* -name '*.swift' -exec vim -Nes -c 'set expandtab' -c 'set tabstop=4' -c 'set shiftwidth=4' -c 'retab' -c 'wq' {} \;

後は、Diffを確認する時に?w=を使うと、空白のみの変更は表示しないので、
変更点を確認しやすいです!

例:
https://github.com/sixthsense/sixthsense/pull/16/files
https://github.com/sixthsense/sixthsense/pull/16/files?w=

ディレクトリ構成をグループ構成どおりに移動

悩み

ディレクトリ構成と実際の構成を合わせるのって面倒ですよね。

ファイルを追加する時に、グループ構成をXcode側で指定(New Groupとか)し、ファイルを追加すると思います。
その際にいざ、ファイルと追加(New Fileとか)すると、またFinder側でディレクトリを作らないといけません。

でも、だからってカレントに全て置いちゃうとGitHubで見た時にめちゃくちゃ見づらい!

解決方法

ディレクトリ構成をグループ構成を同期させるツール「Synx」を利用する

利用方法は以下のページに記載してあります!
公式:Synx(GitHub)
個人:Xcodeでディレクトリ構成をグループ構成に合わせる

注意

WARNING: Make sure that your project is backed up through source control before doing anything

公式ページに記載してある通り、バックアップはしっかりと取っておきましょう!

コードの規約が守られていない

原因

複数言語を同時に開発して、ごっちゃになったり
人によってコーディングスタイルが異なったりする(きっと合わせた方がいいが...)ので、
そうゆう悩みは静的解析ツールを導入して、ストレスフリーな開発をしましょう!

解決方法

静的解析ツール(SwiftLint)を導入する
導入方法は次のページに記載してあります!
SwiftLint導入

ブランチを整理する

悩み

ローカル/リモートブランチは、マージした後に毎回削除する癖があるといいのですが、
放っておくとブランチがいっぱいになって見辛くなります...

解決方法

ブランチの削除方法は以下のページに記載してあります!
Gitでリモートのマージ済みのブランチを一括削除する
Git でマージ済みのブランチを一括削除する

おわりに & 感想

コーディング規約はもちろん、
空白やタブの混在や、ディレクトリ構成も意識しておけば、
更に他者が混乱せずに済むと思います。

今後も何かいい方法を知りましたら、追記していきます。
皆さまも、「このツールを使うとプロジェクトがスッキリするよ!」みたいなTipsがありましたら、コメントにてご教授くださいm(_ _)m