LoginSignup
7
6

More than 5 years have passed since last update.

Swiftのオブジェクトグラフを生成する flock を使ってみました!

Posted at

最終的にこんな画像ができます

flock.png
※公式より引用

環境 (一応)

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 で実行権限を与えてください

flock.sh
#!/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とか知らなかったので、ちょっと戸惑ったのでそういった方のためになればと思います。

7
6
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
7
6