~黒魔術がObjecitve-C Runtime APIだけだといつから錯覚していた?~
iOSで黒魔術といえばObjecitve-C Runtime APIが注目されがちですが、
当然それ以外にも色々な黒魔術が存在します。
ダックタイピングはオブジェクトの型を見るのではなく、オブジェクトそのものがメソッドを持つかどうかという考え方に基づいた手法です。
RubyやPythonではポリモーフィズムを実現する手段として使われている一方、iOS(特にSwift)ではあまり馴染みのない考え方だと思います。
しかし、実はObjective-Cでこのダックタイピングの考え方に基づいた設計/実装が行われています。
本セッションでは、そのダックタイピングの考え方が使われている例に触れつつ、
Obj-Cの特徴であるid型と組み合わせてUserDefaultsをテスト用のオブジェクトに差し替えた話をします。
(UserDefaultsをprotocolでラップする話ではありません)