突然こんな内容でいいのでしょうか。読書感想文です。
こんにちは、日本システム技研のおかじまと申します。
今回はdroidkaigi2018が終わった後、主催者の方が執筆されているということで勢いに任せて購入したAndroidアプリ設計パターン入門をようやく読み終えることができたのでその感想となります。
本の詳細はこちら -> https://peaks.cc/books/architecture_patterns
第1部: アプリの設計を知る
こちらではMVP、MVVMの基本的な概念から懇切丁寧な解説がされていました。
Androidアプリ開発という観点に絞らずMVP、MVVMといった概念から説明〜実際にMVP、MVVMに則って作られた同様のアプリケーションのサンプルとともに解説といった非常にわかりやすい内容でした。
第2部: 生きた設計を知る
第2部ではまずメルカリのアプリを4年間開発していく中で起きた問題、それらの問題がある状態から改善するために行った施策といった内容でした。
過去に大きめのAndroidアプリのメンテナンスをした際まさしく同じような問題が発生したことがあり、場当たり的な修正を行ったということがあり胸が痛む部分はありましたが、発生した問題、改善のために行った施策、取り入れたライブラリ等詳細にあるため新規プロジェクトの際でも大いに参考になる内容だと感じました。
続いてOSSでのアプリ開発での設計についてのお話。droidkaigiでは毎年公式アプリがOSSとして作成されており(2018もそうでした)、その設計について詳細に書かれていました。
OSSなので当然ですがソースコード付きなので非常にわかりやすい内容でした。
https://github.com/DroidKaigi/conference-app-2017
https://github.com/DroidKaigi/conference-app-2018
こうして見るとどちらもREADMEで設計について詳細に書かれていますね…
続いてFluxのお話。こちらはReactNativeでReduxについて勉強していたので個人的には入りやすい内容でした。またしても概念〜サンプルを用いた解説とありがたい構成。メリットデメリットについてまとめがあるのもありがたいですね。
第3部: 設計を考える
最後の第3部ではAndroid Architecture Componentsについてのお話。
Android Architecture Componentsの詳細とそれを用いた設計についての内容です。
最後に
具体的に突っ込んだ中身にはなるべく触れずにきましたが、設計について概要からサンプルを用いた解説、実際の大規模開発の現場での設計に関して辛かった話やそれに対する改善策など、非常にわかりやすい&参考になる内容となっていました。一人で簡単なAndroidアプリを作れるようになったくらいの人が設計について勉強をする上でベストな本となっているのではないでしょうか。
過去の設計をあまり考慮できていないコードが負債になる場面が発生し、今までのMVPの真似事のようなモノではなくちゃんとした設計について腰を据えて学ぶ必要性をひしひしと感じていた今日この頃だった自分としては本当にありがたい一冊でした。
Kotlinの正式採用やReactNativeなど言語が変われば新たな設計の考え方も出てくるかと思いますが、これを機に新たなもののキャッチアップにも気を使っていきたいですね。(もう少し早くこの本を知りたかった…)
ということで、Androidアプリ設計パターン入門がオススメですという話でした!