HUNTER×HUNTERに学ぶRxSwiftのViewModel設計パターン by y.imajo

iOSDC Japan 2019
LT(5分)

HUNTER×HUNTERに学ぶRxSwiftのViewModel設計パターン

yimajo y.imajo yimajo
1

週刊少年ジャンプで不定期連載中の少年漫画『HUNTER×HUNTER』には、
登場人物たちの戦いを戦略的に進める「念能力」という特殊能力の概念があります。
この念能力の使用には強い条件である「制約」とそれを遵守する「誓約」という2つの概念によって、
物語の登場人物たちが強い制限に従うリスクを持ち、
そのリターンとして能力が向上し物語を大きく転換させるという図式がこの作品を奥深くさせている1つの要因ともなっています。

我々がアプリケーションを作成するプログラミングをしていく上で、
一人でコードを書き続けるのならば設計やコーディングスタイルは自由で良いのでしょうが、
多くの場合は複数人で同意した設計をもってコードを築き上げていく必要があります。
もしそれができなければ、
複数人での開発作業はプログラミング手法自体の知識差や考え方の違いが大きく実装に現れ、
次のような課題が現れるはずでしょう。

  • 要求に対して正しく実装されているかどうかの相互レビューが難しい
  • メンバーが作成したコードに対して機能を追加・修正するのが難しい
  • 都度無駄な議論をレビュー時に行ってしまう

これらの課題を生み出さないための手段として、
「より良くコードを書いていくための条件」として「それを遵守させること」を設計として実現することであると筆者は考えます。

本トークでは、『HUNTER×HUNTER』の名勝負を振り返りながら、
強い制約を持たせた設計により、強い誓約を表現できるインタフェースが上記課題の解決に近づけるということを述べます。