最終的にこんな画像ができます
環境 (一応)
flock 0.1.0
Xcode 8.3.2
Swift 3.1
flock
Swift で定義されたオブジェクト間の依存関係を可視化する flock というツールを作った。これによって、 Swift で書かれたコードベース全体を把握しやすくなったり、リファクタリング時に影響範囲を把握しやすくなる。
使ってみた
インストール
Homebrew使用
brew tap naoty/misc
brew install flock
実行
[SampleDir]には自分のプロジェクトのディレクトリ名を設定
flock [SampleDir]
ただ、プロジェクトディレクトリを指定するとライブラリとかの依存関係図もできてしまうので、
自分の書いた部分だけしたい場合はもう1階層深いディレクトリを指定すると良いと思います。
結果
コマンドラインに下記の文字列が出力されます
digraph flock {
"Edge" -> "Node";
"HelpCommand" -> "Command";
"MainCommand" -> "Command";
"VersionCommand" -> "Command";
}
flockがしてくれるのはここまでで、ここからは自分でdotファイルを作成して画像を作成する必要があります!
出力結果から画像を作成する
dotファイルから画像を作成するためにGraphviz
を使用します
下記コマンドでGraphviz
をインストールしてください
brew install graphviz
下記のテキストをコピーして、flock.shを作成します
chmod で実行権限を与えてください
#!/bin/sh
flock $1 > $1.dot && dot -K dot -T png $1.dot -o $1.png && open $1.png
そして、引数にオブジェクトグラフを作成したいディレクトリ名を指定します。
./flock.sh [SampleDir]
そうすると、 [SampleDir].dot ファイルと [SampleDir].png ファイルができて、最終的にpngを表示してくれます。
おまけ
実際に使うときは下記の方が使いやすいと思います
#!/bin/sh
DIR_NAME=SampleDir
flock $DIR_NAME > $DIR_NAME.dot && dot -K dot -T png $DIR_NAME.dot -o $DIR_NAME.png && open $DIR_NAME.png
最後に
僕みたいな初心者はdotファイルとかGraphvizとか知らなかったので、ちょっと戸惑ったのでそういった方のためになればと思います。