概要
本書の本質的な部分を説明する前に、「iOSエンジニアとして設計するということ」の意義を簡単にまとめてくれている。昨今、iOSの開発環境が進化し、アプリ自身も成長している中で、膨大なコードをどのように書くのかを考えた上で開発しなければ、複雑にコードが絡み合い非効率になる。
そのため、そもそもなぜ設計を学ぶ必要があるかを説明してくれていた。
まとめ
アプリの持つ複雑な問題を「関心の分離」によって小さな問題へと切り分けるといる、そのことを設計するという行為で、そのための武器がパターンである。
学び
・iOSアプリの開発事情「アプリでできることが増えた」「頻繁・継続的なリリース」「アプリの大規模化」「プロジェクトの長期化」「チーム開発での分業化」が挙げられる。
・関心の分離とは、アプリ開発における解決するべき問題(実装したいこと)をできる限り小さな単位で分けてコードを管理すること
・設計パターンは、複雑な問題をより簡単な問題群として切り分けるために活用できるもので、再現性のある問題に対する共通の解決策のこと
・パターンを知るメリットは、「問題を定型化して捉えられる」「解決策を客観的に比較できる」「メンバーの共通言語となる」
・アーキテクチャは、「アプリを動かす」という複雑な問題領域を大まかに複数の層へ切り分けるときに活用するもの
感想
リーダブルコード→Swift実践入門文法書→iOSアプリ設計パターン入門の順で読破してまして、アーキテクチャについて本格的に学ぼうと考えてます!
Rubyの勉強時には、MVCを学習していて今の会社に入るまではMVC以外のアーキテクチャは恥ずかしながら全く知らなかったです。
なので、Swiftで書くようになってからは会社でMVPを使った開発をしているので、より深くアーキテクチャを学べば実装も効率良くなるかな〜なんて考えてます(笑)