【iOSDC Japan 2023 レポート】「Mastering SwiftSyntax」を聞いてきた。
はじめに
年に一度の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
- 「タクシーアプリの多言語対応・ローカライズにおける課題と解決策」を聞いてきた。
- 「Appleにおけるプライバシーの全容を把握する」を聞いてきた。
- 「SwiftUIの進化についていくためにやったこと」を聞いてきた。
- 「SharePlayの歴史と進化 - そしてvisionOSへ」を聞いてきた。
- 「UIKit ベースの Custom UIContentConfiguration API を用いた複雑なカスタムセルの作り方」を聞いてきた。