24/7 twenty-four seven

iOS/OS X application programing topics.

iOSDC 2019で「ライブラリのインポートとリンクの仕組み完全解説」という話をします

f:id:KishikawaKatsumi:20190905065623p:plain

スケジュール

概要(リンクにまつわる問題)

インポート・リンクの仕組みがよくわかっていない状態だと、エラーと自分の加えた変更が結びつかないので、よくわからないエラーが無限に起こっていると感じます(同じエラーメッセージを引き起こす原因は複数あるため)。

しかし実際はそうではないので、可能性の高い順番で確認していけば問題を解決できます。

そのための基礎として、インポート・リンクの仕組みを理解が必要になります。

モジュールのインポート・リンクがどのように解決されるのか、リンクとはいったい何をしているのかを学ぶことで、システマチックに問題を切り分け、解決できるようになります。

この話を聞いて得られること

基礎的な能力

  • ライブラリの形式に関する知識
  • インポートとリンクの知識
  • インポートとリンクにまつわるトラブル解決の能力

応用

  • ライブラリ作成における配布形態の技術判断
  • パッケージマネージャの高度な利用

話さないこと

Swiftコンパイラが具体的にバイナリをリンクする実装についてやOSが実行ファイルを読み込む方法、といった極端に低レイヤーのことは話しません。

それはシステムプログラミングの範疇です。

あくまでライブラリの利用者(応用編で少しだけ作成者についても)としてアプリケーションプログラミングの範囲で、ライブラリを利用可能にする基礎的な手順を解説します。

具体的な内容

以下に現在のスライドを少し示します。

例えば、問題解決チャートの設問に「リンクのエラー」か「インポートのエラー」か書かれていますが、この区別がつかない・自信がない人はけっこういるのではないでしょうか?

この話を聞くと、「これはインポートで起こってるエラー」「これはリンクエラー」「問題の切り分けとして〇〇をする」ということがスムーズにできるようになります。

f:id:KishikawaKatsumi:20190905074522p:plain:w300 f:id:KishikawaKatsumi:20190905074038p:plain:w300

f:id:KishikawaKatsumi:20190905074122p:plain:w300 f:id:KishikawaKatsumi:20190905074137p:plain:w300

f:id:KishikawaKatsumi:20190905074153p:plain:w300 f:id:KishikawaKatsumi:20190905074209p:plain:w300