選択したシェイプのポイントをグリッドに吸い付かせるプラグイン StickyGrid を作りました。

Vector ツールで軽くスケッチしてからこのプラグインを適用することで、簡単に幾何学的なオブジェクトを作ることが出来る。

インストール

リリースページから zip アーカイブをダウンロードし、StickyGrid.sketchplugin をダブルクリックしてインストールする。

もし、よりCLI-wayがお好みであれば、以下のコマンドでもインストールすることが出来る。

cd $HOME/Library/Application Support/com.bohemiancoding.sketch3/Plugins
git clone https://github.com/uetchy/Sketch-StickyGrid.git

使い方

吸い付かせたいシェイプを 1 つ、または複数選択して ctrl + + G を押すと、パスがグリッドの交差点に吸い付く。

ショートカット以外にも、メニューからPlugins > Sketch-StickyGrid > Snap to Gridを選んでも良い。

シェイプはもちろん、グルーピングされたシェイプも、逆にシェイプポイントだけでも吸い付く。

プラグインの開発にあたって

プラグインのデバッグ

デバッギングにはSketch-DevToolsを使っていましたが、最新版の Sketch では使えなくなってしまった。

その代わりに Mac 標準アプリの Console.app を使う方法が公式デベロッパーサイトの記事 Debugging - Sketch Developer で紹介されている。

スクリプト内でlog関数を呼び出すと、Console.app にログが出力される。

log(context.document.gridSize)

ドキュメントの情報源

ドキュメントは公式デベロッパーサイト Sketch Developer があるものの、パス編集に関するドキュメントは全くなかった。

そこで、class-dump を使って Sketch.app のヘッダーファイルを抽出し、ひたすら 目 grep をしてシェイプ操作とグリッドに関する API を探し出し、プラグインの実装に役立てた。

また、先人によって公開されている数多の Sketch プラグインのソースを見ることも、開発の助けになった。

結論

苦行僧じみた Sketch プラグインの開発には class-dumpConsole.app が必携。