iOSDC Japan 2019
レギュラートーク(30分)

URLSession Essentials

yutailang0119 Yutaro Muta yutailang0119
6

我々が普段作り、普段使用しているアプリでは、アプリケーション外とのネットワーク通信を行うことが要件の一つであるものが大多数でしょう。多くの場合、その通信のためにサードパーティライブラリが導入されますが、果たしてそのライブラリは本当に必要でしょうか?
iOS上でネットワーク通信をするために、一から煩雑な実装を用意する必要があったのは、もはや過去の話。iOSを始めとするAppleプラットフォームには、URLSessionという素晴らしく強力なFoundationクラスが用意されています。 (サードパーティライブラリも、このURLSessionをベースとするものがほとんどですが。)
URLSessionはベーシックなアプリを作るには十分な機能を持っていますし、多くの場面での応用的な要件もクリアできる非常に優秀なクラスです。あえてURLSessionから実装することは、車輪の再発明だと言われるかもしれません。しかし、サードパーティライブラリを導入、アップデートに追従することと車輪の再発明は時にトレードオフになると考えます。URLSessionの本質を理解できれば、アプリケーション毎の要件にあった最小のテンプレートを導出することができるようになり、サードパーティライブラリを導入するべきかの見極めも可能になるでしょう。
このトークでは、以下のトピックで進め、URLSessionの大枠を理解し、要件にあった最小実装を考えていきます。

  • URLSessionでできること
        - HTTPを始めとした各種プロトコルについて
  • 前任といえるURLConnectionとの比較
  • 要件に合った最小テンプレートを考える
  • サードパーティライブラリが必要になる場面を見極める
  • まとめ