Ownership(所有権)は今年後半に登場予定のSwift5で追加される機能です。ABI安定化に向けても重要な機能ですが、Ownershipを使いこなすことでメモリコピーを減らすことができ、プログラムのパフォーマンスを向上させることができると期待されます。本セッションでは、昨年公開されたマニフェスト(OwnershipManifesto)に記載された内容を元に、Ownershipの概要をご紹介します。
Swift5のOwnershipに備える

名刺管理アプリを開発しています

Ownershipを調べた気づきを3つ紹介します。

OwnershipはSwiftに実装予定です。
Ownershipはより高度なメモリ管理ができます

自動でメモリ管理している分、コントロールが効かない部分がある。
音声の扱いなどでパフォーマンスチューニングがしやすくなる

shared のイメージです。
引数に shared キーワードが付いていることがわかります。
従来ならCGPointなのでコピーされますが

sharedはコピーする上に、read onlyになります。
コピーできない型のコピーを禁止する。

Atomic Booleanのような事もできる。
学習コストはある。

Rustでも議論されている

Swiftでは一部がオプトイン機能である。
使うほどでもなければ使わずにコードを書くことができる。
Rustは標準言語仕様として組み込まれている。
このあたりはOwnership ManufestでRustと比較して述べられており、意識しなくても使えるようにすることを気遣っているようだった



Ownershipを楽しみに待ちましょう
