今年の7月に加入して、3名の方をメンタリングしました。
これまでに感じたことを書きます。

入門書の壁

かつてiOSアプリを始めたときもそうなんですが、入門書に書かれているような個別のUI部品の使い方を学んで、なんとなくそれなりのアプリをつくるところまでは行くのですが、「本当にこの作りでいいのか?」ということが壁になることが多いようです。
特に、他のジャンルのプログラミングを経験したことがある人だと、いわゆるMVCでいうところのモデルとビューが綺麗に分けることができないのが気持ち悪いし、初心者から見ても保守性が悪そうな印象です。

Ruby On RailsをはじめとするWebアプリケーションのフレームワークだと、文字どおり「枠組み」がカチッと決まっていて、やりたいことにだけフォーカスしてコーディングすれば作りたいものができる、道筋が付いていますよね。

この辺のモヤモヤ感が初心者からプロへと成長するまでの一つの大きなギャップとして存在するのがiOSアプリの特徴なのではないかと実感しました。

フレームワークの導入

こうしたギャップを打ち破るためにはどうしたらよいのでしょうか。

かつてはObjective-Cプログラミングの泰斗である木下誠氏が「iOS開発におけるパターンによるオートマティズム」という、まさにこのあたりをフォローする名著があって、私は大いに参考にさせていただいたのですが、変化の多いiOS開発の世界では初心者が読んですぐ使える内容ではなくなってしまいました。

一方で、現在はWebフロントエンドや他のGUIプラットフォームなどの影響を受け、MVVM、Redux、VIPERなどのフレームワークが導入されるようになってきました。こうしたフレームワークを適切に使えば、保守性と安心感が得られるのですが、どのフレームワークを使うかというのが今度は悩みどころになるのと、ドメインに対して実際に使用したコード例がたりないのがネックではないかと思います。

今後のメンタリングには、こうしたサンプルプログラムとそれらを丁寧に解説したコンテンツが必要ではないかと痛感しています。