レポート

ヤフーvsクラスメソッド「iOS 炎の7番勝負」イベントレポート【前編】

この記事を読むのに必要な時間:およそ 5 分

第3回戦 テーマ:デザインパターン

5分でデザインパターンを語る。このテーマはまさに鬼門といえるでしょう。参加者の注目も自ずと集まります。

  • 先攻:ヤフー 西さん
  • 題名:あのパターンと仲良く付き合う

西さんはヤフオク!アプリの担当で,ヤフー社内の黒帯認定制度(特定の分野に突出したスキルを持つ人を認定する制度)で認定された「iOS黒帯」の保持者です。

ヤフー 西さん

ヤフー 西さん

デザインパターンと聞いてGang of Fourのデザインパターンを思い浮かべる方が多いと思いますが,その中でも最もなじみの深いものとして「Singleton」を題材にして発表されました。

依存性が高くなることがSingletonパターンのデメリットとして挙げられますが,Singletonパターンが悪いのではなく⁠静的に呼び出している⁠ことが問題。とのことで,⁠依存性の注入」というアプローチで静的な呼び出しを解消する方法を紹介されました。Xcodeにも依存性の注入という概念がりますが,Singletonに対して注入するインターフェイスは見受けられないので,Objective-C向けの依存性注入フレームワーク「TYPHOON」を利用してSingletonのデメリットを解消する方法を解説されました。

【発表資料】あのパターンと仲良く付き合う(ヤフー:西)

  • 後攻:クラスメソッド 掛川さん
  • 題名:iOSアプリのメンテナンス性を高めるための基本的な考え方

iOSエンジニアとしてさまざまな受託開発に携わっている方です。⁠ViewControllerから本来記述すべきではない処理を切り出す」ということについてお話されました。

クラスメソッド 掛川さん

クラスメソッド 掛川さん

なぜ,ViewControllerから本来記述すべきではない処理を切り出すのか? 大量の処理を抱え込んでFatになってしまったViewControllerのメンテナンスは大変な作業であるため。具体的な問題点としては責務が多すぎる,大量のイベントハンドリング,ロジックの再利用が難しいといったことが挙げられました。

ViewControllerから切り出すべきであるのは,情報の表示に関連しない機能です。では,ViewControllerにはどのような処理を書くべきなのでしょうか?

ViewControllerの役割について Gang of Fourのデザインパターンの一つである Mediator パターンの視点から解説されました。ViewControllerは自身が参照するオブジェクトの間の仲介役を主な役割とし,ViewController が仲介するオブジェクトは ViewController 経由で連携し,互いの存在について直接意識しないといった内容でした。

【発表資料】iOS アプリのメンテナンス性を高めるための基本的な考え方(クラスメソッド:掛川)

第3回戦 結果発表

得票数は次の通りとなりました。

チームヤフークラスメソッド
登壇者西掛川
得票数764615568

黒帯対決!? なお二人

黒帯対決! なお二人

デザインパターンをテーマに戦った3回戦はクラスメソッドの掛川さんに軍配が上がりました。難しいテーマであったとは思いますが両者共に非常にわかりやすい発表でした。クラスメソッドは2連勝です。

著者プロフィール

横山雄大(よこやまゆうだい)

クラスメソッド株式会社 アプリケーションエンジニア

建築出身の右脳コーディングプログラマ。UI/UXデザインをしている時が幸せ。ストレスフリーなアプリケーションデザインがモットー。