見出し画像

Swift macrosに関して全く分からないから少し分かったになる参考一覧

前置き

Swift macrosがSwift5.9から導入されましたが、Swiftでmacroってあまり聞き慣れないのでキャッチアップすると同時に参考になる記事や動画などをまとめて整理してみました。

macroって何?

macroは、繰り返し使用するような処理や、複数の手順をあらかじめまとめて定義しておくことで、必要に応じて呼び出し、実行できる機能を主に指します。macroを使用することで、コードの一部をコンパイル時に別のコードに自動的に変換できます。
この自動的な変換は、プログラムが実行される前のコンパイル段階で行われます。そのため、Excelのmacroのように、任意のmacroを定義することで、ボイラープレート(何度も繰り返し使用されるコードの部分)を減らすことができます。

Swift macros

Swiftにおけるmacroも上記と同じように任意のmacroを作成したり、使用したりする事ができます。
またmacroを使用すると、コンパイル時にソースコードが変換されるため、手動で繰り返しコードを作成する必要がなくなります。
尚コンパイル中に任意のmacroを展開し、ビルドします。

動画

とりあえずSwift macrosってなに?むずかしそう。でも知りたい。
と言う人は以下の動画を見る事をおすすめします。これで大体の概要は掴めると思います。
特にPower Assertの部分に関しては具体的なユースケースも想像しやすく非常に理解しやすい部分でした。
try! Swift Tokyo meetup - Swift Expression Macros: 実践Swift Macro入門

続いてWWDC23で紹介されている動画です。
What’s new in Swiftに関しては9:34〜がmacrosの話となります。
個人的にはSwiftUIで@ObservableObjectや@Publishedに加え、@StateObjectや@ObservedObjectがSwift macrosによって@Observableをclass定義前に記述するだけで良くなったという説明の部分が非常に分かりやすかったです。

またSwift macrosの作成や拡張については以下の動画で語られていますので上記を見た上で以下見ることをおすすめします。

動画に関しては以上です。
だいたいこれで網羅できるかと思います。
(その他おすすめございましたらコメントやTwitterにて教えて頂けると幸いです)

ドキュメント

現状公式のものと日本語翻訳されているものが役に立つかと思います。
2種類のmacrosに関する説明や宣言、展開、実装についてまとめられています。

日本語翻訳されたもの

またhacking with swiftでも紹介されていますのでリンク先貼っておきます。

https://www.hackingwithswift.com/articles/258/whats-new-in-swift-5-9#:~:text=about%20to%20disappear%E2%80%A6-,Macros,-SE%2D0382%2C

以上Swift macrosに関して全く分からないから少し分かったになる参考一覧でした。
とりあえずピックアップした動画とドキュメントを見ればSwift macrosについて全く分からないからSwift macrosとは何なのか?何ができるのか?どのように使用するのかぐらいはイメージが付くかなと思いますので、是非キャッチアップする際のお役に立てばと思います。
またもっとおすすめの動画や記事などございましたら教えて頂けると幸いです。

いいねと思えたらよろしくお願いします😋