
2020/09/21 13:20〜
Track A
レギュラートーク(20分)
大解剖!UIColorファミリー iOSDC Japan 2020

皆さんお馴染みUIColorは色データを記憶しているクラスですね。
色の名前やコンポーネント値を決定してUIViewに与えるだけの超単純なヤツ……
ではありません!UIColorがサブクラスを大量に持っているって知っていましたか?その数なんと18個(私調べ)!稀に見る大家族です。しかし我々がサブクラスを意識することはありません。UIColorのサブクラスは全てprivateで、表に出てくることはありません。
それにしても、18個もprivateなサブクラスを持つなんて、UIColorはどんな仕組みになっているのでしょうか?そもそもpublicなイニシャライザは10個だけ、メソッドも8個しかないのに何がどうなってるの??
本セッションでは、UIColorの構成を考察したり、ドキュメントにない細かい仕様を確認したりして、UIColorともっと仲良くなります。
【対象】
- UIColorをご愛用の皆様
- UIColorは色空間とコンポーネント値を保持してるだけの単純なヤツと思っている皆様
- dynamic colorを酷使する予定の皆様
【トーク内容】
- UIColorの全体像ってどうなってるの?UIColorのヘッダを覗き見しちゃおう!
- そんなにサブクラスがあって何かメリットがあるの?
- サブクラスはそれぞれ何をしてるんだろう?
- dynamic colorの仕組みってどのように実現しているのだろう?サブクラスを自作して内部実装と仕様を考察してみよう!
- ↑dynamicなサブクラスの自作が実質不可能になっているという話も。
注:本プロポーザル中の数字はiOS13.5時点のものです。iOS14でイニシャライザが1つ増えそうだということは、つまり?