tomoima525's blog

Androidとか技術とかその他気になったことを書いているブログ。世界の秘密はカレーの中にある!サンフランシスコから発信中。

「Android アプリ設計パターン入門」でReactNativeハイブリッドアプリやMVVMアプリ設計について執筆しました

f:id:tomoima525:20180131080733j:plain:w400

本を書きました!

ひょんな経緯から、クラウドファンディングによるAndroid設計本「Android アプリ設計パターン入門」の執筆に携わりました。 自分が担当した章は「7章 チームとアーキテクチャ」になります。クラウドファンディングの本で手にとっていただくのはなかなか難しい部分もあると思うので、どんなことをこの本に詰め込んだか書きます。

Android アプリ設計パターン入門

Android アプリ設計パターン入門

  • 著者:日高 正博,小西裕介,藤原聖,吉岡 毅,今井 智章,
  • 製本版,電子版
  • PEAKSで購入する

チームの目的を達成するための設計ノウハウについて酸いも甘いも書きました

Androidの設計はここ最近で一つのフェーズに到達したと感じています。MVP、MVVM、ArchitectureComponentsなどさまざまなものが登場しています。
けど、数多ある設計から一つを選び取るのってとても難しいことだと思いませんか? 色んな人が色んな設計を推すけど、結局何が最適かわからないことありませんか?

設計とはチームでプロダクトを作るためのルール作りだと自分は考えています。チームの目的やプロダクトの要件によって、そのルールは変化します。では何を足がかりにそのルール作りの議論を進めればよいのでしょうか。

前回のブログでも触れたのですが、昨年会社のアプリケーションをフルスクラッチで刷新しました。そこで設計に関する喧々諤々の議論があり、今のプロダクトが生まれました。
自分の担当した「チームとアーキテクチャ」では、自分のチームが設計を決めるにあたってどういう目的を設定し、それを元にどうして設計していったのかについて具体的に書いています。
またアーキテクチャが決まったことにより、チームにどのような変化があったのかについても触れています。

具体的な設計についてはMVVM+レイヤードアーキテクチャとReact Nativeのハイブリッドアプリケーションについて解説しています。 特にReact Nativeについては以前ブログでも"React Nativeハイブリッドアプリことはじめ"と題して書いたのですが、本書では実際のプロダクトで実装するような、もっと実践的な内容を書いています。

実際のところ、3ヶ月程度でアプリを書き直したので、プロジェクトはジェットコースターでした。本書では現場でどんな危うい出来事があったとか、どう判断し切り込んでいったか、みたいな生々しい話も触れています。
あとはすごい細かいこぼれ話、たとえばアプリのパッケージ名がramenなんですが、そうなった経緯とか。ここでつらつら書いても良いのですが、編集の @mhidakaさんや@7ganoさんに怒られちゃうかもなので、気になった方はぜひ本書を読んでみて下さい!

各章知見と面白みが深い

執筆者の一人になったおかげで、他の執筆陣の内容も先んじて拝読することが出来ました。これは完全に一読者としての感想なんですが、相当ためになるし、おもしろいです。

@mhidakaさんの各アーキテクチャを解説している1-3章は、日本でここまでわかりやすく整理した本はないんじゃないかってくらい詳細に書かれています。

@konifarさんのDroidKaigiアプリの解説(5章)を読んでから実際のコードを読むと、あああーこんな配慮がなされているのか、みたいな感動がありました。

@satorufujiwaraさんの説明する6章のFluxアーキテクチャ、8章のAndroid Architecture ComponentsはCyberAgentの様々なプロダクトで実績を重ねてきた感があって、この設計アセットで商売できるんじゃないかと思いました。(小並感)

そして同僚である@tsuyogoroさんの大規模アプリの差分設計の話(4章)、これは自分も途中まで噛んでいたことなので、うわーこんなことあったよね、と思いつつも小説を読んでいるかのような面白さがありました。

対象読者

本全体の対象読者としては、特に以下の人にお勧めしたいです。

  • Android開発の基本について理解し、Androidの設計について考えだした人
  • Androidのプロジェクトを立ち上げる事になった人、既存のコードベースの設計を見直したい人

個人的には、自分のパートは特に学生さんに読んでもらいたいなと思っていたりします。というのも、自分の章は、実際のプロジェクトでどんな課題があり、どう取り組んだとか赤裸々に書いてます。実際にチームとして働いた時にこんな感じなのか、という雰囲気が多少なりとも伝わるんじゃないかと思っています。あー、なんか泥臭いことやってんだなーという感じで読み物として楽しんでもらえるとうれしいです。

また設計については何十年も議論され続けていることからもわかるように、設計におけるつまずきや議論は普遍的なものだと考えています。なのでアーキテクチャのトレンドに変化があったとしても、ここに書かれている課題、方法論や議論はこれから先も活かすことができるんじゃないでしょうか。

執筆裏話

執筆のお話をいただいた経緯についても書いておきます。実はこの本、自分もファンディングしていました。
そして11月頃に"都合により「チームとアーキテクチャ」の章がなくなります"というPEAKSからのメールが届きます。
@mhidakaさんに「これってうちのチームの取り組みやアーキテクチャについて書けるんじゃないですかね」と話しかけてみたところ、じゃ、書いてみます?という感じでトントン拍子で決まりました。年末年始はこの執筆にかかりきりでしたが、無事出版にこぎつけられて本当に良かったと思っています。

最終的に文章をきゅっとまとめてくださった編集の@mhidakaさんや@7ganoさん、本当にありがとうございます。

本へのリンクは

Android アプリ設計パターン入門

Android アプリ設計パターン入門

  • 著者:日高 正博,小西裕介,藤原聖,吉岡 毅,今井 智章,
  • 製本版,電子版
  • PEAKSで購入する

となります。なお、こちらの書籍は出資者がご紹介くださった場合は販売価格の30%が出資者に還元されるとのことです。いいな、と思ったらブログを書いていただけると最高かと思います!