普段なんとなく書いているimportですがサブモジュールや特定の要素を明示的に指定することができます。このセッションではこれらのimportの仕様を振り返り、またバイナリサイズやパフォーマンスに与える影響を考えていきます。

今回ははじめての英語でのプレゼンテーションです
Importについて

何気なく書いていますがいくつかのオプションをご存知ですか

それぞれ説明します

Attributeは書いてもいいし書かなくても良い

Testableを使うとInternalにもアクセスできる

Exportはシンボルを出力する。非推奨、開発時の利用に留める

Submoduleの実装をインポートできる

SceneKitがいい例

3つ目、Kindを指定すると指定した要素を取り込む。

Userというクラスだけ

これらが指定できる

注意は、クラスやストラクトは実装したメソッドやプロパティも含む。
2つ目は、オーバーロード関数に関する注意点。個別にインポートできない
異なるモジュールで同名関数を使っているときに必要になる

モジュールを両方インポートするとエラーが起きる。

Kindを使ったInportは優先的に見つける。
使い所が難しいですよね
使いやすい例は?

ビルド時間計測

結果は変わらず

ビルド時間もバイナリサイズも変わらない

バイナリファイルのMD5は一緒。Swiftコンパイラが最適化を行うので結果は同じ。
名前空間の問題がなければ、詳細に記述する必要はない。

つまり、これまで通りコードを書きましょう。
