24/7 twenty-four seven

iOS/OS X application programing topics.

iOSDC 2023 Mastering SwiftSyntax

先日のiOSDC 2023にて「Mastering SwiftSyntax」という発表をしました。

fortee.jp

スライド: speakerdeck.com

台本とアニメーション付きのスライド: www.icloud.com

サンプルコード: github.com

マクロではなくSwiftSyntaxの解説なのでマクロの話を詳しくしなかったことは想定通りですが、改めてプロポーザルを読んでみるとマクロという単語をたくさん使ってるので、これはちょっとマクロの話だと期待した方もいたのかなと後で反省しました。

意図としてはマクロの数パターンについてチュートリアルのような説明をしてもそのパターン以外に使えるようになるかというと難しいので、基礎的な知識をできるだけ網羅的体系的に伝えることにしました。

だいぶ詰め込むことになったのと論理構成の都合で体系的に伝えることはそこまでできなかったのですが、必要なことはすべてスライドか話した内容に含まれているので、Keynoteを発表者ノートとアニメーションを有効にして復習してみてください。

SwiftSyntaxは自動生成されたコードが大部分を占めていて、構文木だけでなくParserも含み、Parserのコードはパフォーマンスを優先するためにマニュアルのメモリ管理など読みやすいコードとはいえません。

しかし発表にある通りSwiftSyntaxを使う上ではその部分を気にすることはなく、一定のパターンに従った定型的なプログラミングになります。

少し書いてみるとすぐに慣れると思うので、マクロを作ってみたりSwiftLintのルールを修正してみたりして練習してください。

発表で使ったもの

今回スライドに使うフォントをヒラギノUDにしてみました。ちょっとみやすくなった気がします。

8BitDo Microというカードサイズのすごい小さいゲームコントローラ。かわいい。キー設定のアプリがiPad用だけどMacでも普通に動くのでこれをKeynoteのスライドが移動できるキーに設定してリモコンとして使った。台にMacを置くとちょっと低いけどこれで操作することで前を向いて喋ることができます。

www.8bitdo.com

一部の人にウケてた「9:41」のTシャツ。MacやApple製品っぽいモチーフのアパレルなどを作ってるところで、他の製品はライセンス的に怪しいけれども「9:41」のTシャツは人前で着ても問題ない。ただの時刻だから。これが何か特別な数字に見えるひとは・・・。

9:41 T-shirt Blackthrowboy.com