Xcodeのグループとディレクトリ構成を同期させてくれるツール「Synx」
皆さんはXcodeのグループをディレクトリ構成と合わせますか?
僕は、使い捨てのプロジェクト以外は合わせるようにしています。
やっぱり、プロジェクト名のフォルダに全部突っ込まれてるよりは、ある程度分かれていたほうが見やすいですしね。
(Xcode上ではどちらでも変わらないけど、GitHub上などで見る時に効率が全然違う)
ただ、この「グループをディレクトリと同期させる作業」めんどくさいんですよね。
グループを作って、File InspectorのLocationからディレクトリ作って選択…。
数が多くなってくるとかなり手間だし、プロジェクトを作る度に毎回やらないといけません。
そんな悩みを解決してくれそうなのが、Synx。最近、GitHub上で人気のようです。
まずはインストール。SynxはRuby製のツールでgemとして提供されています。
導入は以下の1コマンドで完了です。
| 1 | $ gem install synx | 
では、早速使ってみます。
このようにせっせと「Controllers」「Models」「Views」にグループ分けしたプロジェクトがあります。
treeコマンドでディレクトリ構成を見てみます。
グループ分けの甲斐虚しく、SynxExampleフォルダに全てのファイルが並列にある状態です。
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | $ tree SynxExample/ SynxExample/ ├── SynxExample │   ├── BNAppDelegate.h │   ├── BNAppDelegate.m │   ├── BNHomeVIew.h │   ├── BNHomeVIew.m │   ├── BNHomeViewControllers.h │   ├── BNHomeViewControllers.m │   ├── BNTeam.h │   ├── BNTeam.m │   ├── BNUser.h │   ├── BNUser.m │   ├── Images.xcassets │   │   ├── AppIcon.appiconset │   │   │   └── Contents.json │   │   └── LaunchImage.launchimage │   │       └── Contents.json │   ├── SynxExample-Info.plist │   ├── SynxExample-Prefix.pch │   ├── en.lproj │   │   └── InfoPlist.strings │   └── main.m ├── SynxExample.xcodeproj └── SynxExampleTests | 
ここでsynxの出番です。この程度のファイル数であれば処理は一瞬で終わります。
| 1 | $ synx SynxExample/SynxExample.xcodeproj/ | 
再度treeコマンドで確認してみます。
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | $ tree SynxExample/ SynxExample/ ├── SynxExample │   ├── BNAppDelegate.h │   ├── BNAppDelegate.m │   ├── Controllers │   │   ├── BNHomeViewControllers.h │   │   └── BNHomeViewControllers.m │   ├── Images.xcassets │   │   ├── AppIcon.appiconset │   │   │   └── Contents.json │   │   └── LaunchImage.launchimage │   │       └── Contents.json │   ├── Models │   │   ├── BNTeam.h │   │   ├── BNTeam.m │   │   ├── BNUser.h │   │   └── BNUser.m │   ├── Supporting\ Files │   │   ├── SynxExample-Info.plist │   │   ├── SynxExample-Prefix.pch │   │   ├── en.lproj │   │   │   └── InfoPlist.strings │   │   └── main.m │   └── Views │       ├── BNHomeVIew.h │       └── BNHomeVIew.m ├── SynxExample.xcodeproj └── SynxExampleTests | 
「Controllers」「Models」「Views」それぞれのディレクトリが作成され、ファイルが格納されています。
これは便利ですね!
他にも使い方があるようですが、今回はここまで。
実開発で使ってみて便利だったところや、ハマったところなどあれば、また共有したいと思います。



 
							

最近のコメント