普段なんとなく書いているimportですがサブモジュールや特定の要素を明示的に指定することができます。このセッションではこれらのimportの仕様を振り返り、またバイナリサイズやパフォーマンスに与える影響を考えていきます。
今回ははじめての英語でのプレゼンテーションです
Importについて
何気なく書いていますがいくつかのオプションをご存知ですか
それぞれ説明します
Attributeは書いてもいいし書かなくても良い
Testableを使うとInternalにもアクセスできる
Exportはシンボルを出力する。非推奨、開発時の利用に留める
Submoduleの実装をインポートできる
SceneKitがいい例
3つ目、Kindを指定すると指定した要素を取り込む。
Userというクラスだけ
これらが指定できる
注意は、クラスやストラクトは実装したメソッドやプロパティも含む。
2つ目は、オーバーロード関数に関する注意点。個別にインポートできない
異なるモジュールで同名関数を使っているときに必要になる
モジュールを両方インポートするとエラーが起きる。
Kindを使ったInportは優先的に見つける。
使い所が難しいですよね
使いやすい例は?
ビルド時間計測
結果は変わらず
ビルド時間もバイナリサイズも変わらない
バイナリファイルのMD5は一緒。Swiftコンパイラが最適化を行うので結果は同じ。
名前空間の問題がなければ、詳細に記述する必要はない。
つまり、これまで通りコードを書きましょう。