Swift5.9ではSwift Macrosが導入され、マクロによるコード生成が可能になりました。
また、マクロの実装時に用いるSwiftSyntaxは、それ単体でコード生成の仕組みを提供しており、Build Tool Pluginと組み合わせればビルド毎にマクロよりも自由度の高いコード生成を行うことも可能です。
私が開発したSword (https://github.com/rockname/sword) というDIコンテナのライブラリでは、この両者のコード生成の仕組みを併用しています。
本トークではSwordの開発から得られた知見をもとに、Swift MacrosおよびSwiftSyntaxにおけるコード生成にはそれぞれどのような特徴があるのか具体的なコードを交えながら説明し、それぞれが活きる利用パターンについて体系的にお話しします。
本トークを通じて聴講者のみなさまが、コード生成によりどのような課題を解決できるのかより鮮明にイメージできるようになり、プロダクトやライブラリの開発へすぐに活かすことができるようになることを目指します。