採択 2021/09/18 10:50〜 Track C レギュラートーク(20分)

Source Editor ExtensionとSwiftSyntaxでコード自動生成ツールを作る iOSDC Japan 2021

kazuhiro494949 林和弘 kazuhiro494949

Swiftではコードの自動生成ツールでボイラープレートを避けるということがよく行われます。
そして方法には様々ありますがXcode上で実行する場合は多くがファイル作成もしくはビルド時にコード生成をします。

しかし、ユースケースによっては実装中のコードからそれに対応するコード生成を行いたいこともあるでしょう。
例えばリファクタリングのためにProtocolで依存を切り出したり、Mockクラスを作る場合などがそれにあたります。

ここではSource Editor ExtensionとSwiftSyntaxを組み合わせたコード生成ツールの開発方法について解説します。
それらを組み合わせると、実装しながら同時にXcode上でコード生成を行うツールが比較的リーズナブルに開発可能です。

また、その方法によって実際に開発したリファクタリングツールを例として紹介します。
皆さんが開発環境改善をしたいと思ったときに検討する手法の一つになるよう話ができればと思います。