【iOSDC Japan 2023 レポート】「Mastering SwiftSyntax」を聞いてきた。

2023.09.03

はじめに

年に一度のiOSエンジニアの為のお祭り iOSDC Japan 2023に参加しています。

せっかくなので、参加したセッションのレポートを書きたいと思います。

Mastering SwiftSyntax

登壇者

概要

Swift 5.9ではマクロが導入されます。すでにSwiftUIではマクロが広く利用されています。今後はコミュニティ製や自作したマクロを使うこともあります。

マクロはSwiftSyntaxというライブラリを使った構文変換です。これまでSwiftSyntaxはツールを介した間接的な利用がほとんどでした。しかしマクロを書いたりデバッグするには直接SwiftSyntaxを使う必要があります。

SwiftSyntaxを使うコードはかなり見慣れないコードになります。コンパイラで使用されているコードで一般的な用途のコードではないからです。

この講演ではSwiftSyntaxの構文ノードの種類やAPIの使用方法を具体的な用例をもとに解説します。きっとマクロを使っていろいろなアイデアを試したくなります。SwiftSyntaxを理解してマクロはもちろん、コード生成などメタプログラミングを楽しみましょう!

引用: fortee

資料

感想

Xcode 15からは#Preview@Observableなどが導入され、マクロがより身近なものになるので理解を深める為に聞いてきました。

すごいわかりやすく構文ノードや構文木についての紐解き方も解説してくださっており、「すごい難しそう」という印象から少し簡単に見えてきて「難しそう」と見えるようになりました。

先日あったSwiftWendesdayのKuniwakさんのセッションと合わせて見ると、より友達になれそうです。

マクロと友達になるには、

  • まずはSwiftLintを解析、理解を深める
  • Swift-Macrosのマクロ集で解析、理解を深める

Swift AST Explorerを使うとコードを構文木で表してくれるので、それを読んで理解を深めるのも良さそう。

そして、岸川さんがおっしゃっていましたが、「手を動かして慣れる」しかないとのことだったので、ちょっとずつでも触っていくしかないですね。

SwiftSyntaxを理解する為に何度も何度も読み返したい。そんなセッションでした。

おわりに

マクロは友達、怖くない!

iOSDC 2023 レポート関連

Day 0

Day1