Androidアプリ設計の技術書をクラウドファンディングで執筆しました
本を書きました
2017年7月に投稿したブログポストの続きです。Androidアプリの設計パターンを紹介しようとおもって書き始めた技術書のクラウドファンディングです。本日2018年1月31日に一般販売が始まりました!
本の内容
本書はアプリの設計を知り、考えるための議論に使える本として執筆しました。書きたいことを表現するためになんども書き直し、完成まで死ぬほど時間がかかった技術書です(2017年10月~12月の余暇のほとんどを費やした)。
ちなみに私以外の執筆者の感想はこちらから読めます。あわせてどうぞ。
実際、この本をよんで設計が出来るようになるかというと胸を張って「間違いなくはじめの一歩を踏み出せる」一冊と答えます。実際には読んでもあなたのアプリは完成しないかもしれないし、失敗するかもしれません。でも右も左も分からないということはなくなります。もちろん大成功するかもしれませんがそれはきっとあなたの力です。
本書ではアーキテクチャを学び、議論する前提を組み立てることを大事にしていて、結局のところ、設計とは何かを大いに考えさせる技術書になりました。「設計を完全に理解しているか」と問いかけられると誰もが不安を覚えると思います。特定の分野に限って考えても、とてもとても難しいことです。
アプリの設計には開発者の理念や思想が反映されているべきで、それらはアプリの要件や開発チームの練度・性質で千差万別の形があります。方法論だけをみて設計の評価は出来ないし、実装だけをみて評価することもまた出来ません。
このような事情に悩んだ結果、本書では実際の開発事例をみながら議論をすすめる構成にしています。実際にあったことを丁寧に解説し、手法と実装の両面からアプリ設計、アーキテクチャを追体験できます。
第1部ではGoogleのアーキテクチャサンプルリポジトリをベースに現代のAndroidアプリの設計手法の基礎を学べます。MVPやMVVMが登場した背景からモバイル分野での適用を知れます。ライフサイクルなどモバイル特有の事情についても触れています。
第2部では、サイバーエージェント、メルカリ、そしてOSSとしてのDroidKaigi 2017のカンファレンスアプリを取り上げ、いろんな設計を成り立ちから紹介しています。なぜ選んだのか、どうしてこうなったのか、というコードからは分からない部分と実際やってみてどうだったか、という評価まで含めて解説しています。本の内容として失敗したことを書くのは抵抗がありましたが、良いところも悪いところも包み隠さず知ることが一番だと思い「ここは失敗だった」「当時は乗り気じゃなかったが、振り返ってみると良策だった」など忌憚のない意見を書いてもらっています。MVPやMVVM、Flux、そしてReact Nativeと幅広く事例を集められたと自負しています。
第3部は未来の話です。Android Architecture Componentsを取り上げ、どのように使うべきか議論を進めています。
Androidアプリの設計は、まだまだ道半ばでようやく基礎が整ったに過ぎません。2018年をみても設計手法にアップデートがあるはずです。たとえばDroidKaigi 2018のリポジトリには今すぐ使えるKotlinのアプリ開発の知見が集まっています。本書はそのようなこれからの設計を議論する基礎になれば、という思いを込めて作りました。ぜひ手にとって見てください。
色々な意見をお待ちしています。「いやー、これはきつい」「ここの章は参考になるな」「この視点はなかった」など何気ない一言がきっかけで良い設計に変わるかも。
クラウドファンディングでよかったこと・わるかったこと
まず出資者のみなさんの応援があったことで制作の原資を獲得できました。ありがとうございました。当初見込んでいた良いところはたくさん提供できる(今回、個人ではほぼありえない数千冊部以上を印刷できました)ことで文句なしのメリットNo.1です。
意識してない中で嬉しかったところは、執筆の最中にも応援してもらったことがめちゃくちゃ励みになりました。通常、執筆というのは自分との闘いで書籍が販売されるまでは孤独なものです。今回は書いてることがみんな知ってたのでいろいろな人から「がんばってください」「期待してます」「無理しないで」と声をかけてもらえ、モチベーションに繋がりました。
またα版やβ版というかたちで意見を交わせたのもよかったです。自分がここはどうだろうな?と悩んだ部分は読者からの的確な指摘があって、やっぱり気持ちが伝わるんだなということを再確認できました(見直しつつ妥協なく書きました)。プロの編集者の方に校正してもらいながら、クオリティを上げられた点もよかったです。
他方でクラウドファンディング達成後の書籍販売ルートは基本的に口コミと手売りに頼ることになります。PEAKSはポッとでてきた出版社にすぎず、取次経由でたくさんの書店にならべることはできません。発売日に全国の書店に並ぶことはやっぱりスゴいことなんです。
ですので、この本をよんで良い本だと感じたら是非、隣の開発者に教えてあげてください。著者一同よろこびます。クラウドファンディング、同人誌のような著者と読者が近い形態はフィードバックを得やすく、とても好きな雰囲気を感じてます。
さいごに
実はクラウドファンディングであるメリットを最大限活かして本の表紙や紙質、フォントサイズやレイアウト、細かい点までmhidaka(私です)がアレコレと口をだしました(PEAKSの方々に大変迷惑をかけながら!レイアウトチェックや紙の指定のために事務所までお邪魔しました)。更に電子書籍も2種類用意してもらい、片方はPDFのしおりやコピペが完璧にできるもの、もう片方は書籍そのままに美しいクオリティのもの、と2本立てです。これも執念というか趣味の領域ですね。どちらも欲しい人が居そうなので両方つくって提供しちゃうか、という感じです。
ただいまリフロー版(EPUB)も試しているのでKindleとかで固定レイアウト以外でよみたいよ、という人がいたらお問い合わせください。
ここから番宣です。一般販売記念キャンペーンで最初のロットは割引価格の2800円で提供中です。また本書の出資者が紹介した場合、紹介プログラムにより販売価格の30%が出資者に還元されます。全国津々浦々の書店に置けないのでチャレンジしてみましょう、となった新しい取り組みです。なんか面白そうなので一肌脱ぐぜ!という方はぜひ試してみて下さい。
謝辞
まずはじめに、クラウドファンディングの出資者のみなさん。出資ありがとうございます。なによりの励みとなりました。
そして、サイバーエージェントの社員のみなさん、メルカリの社員のみなさん、DroidKaigi OSSアプリのコントリビュータのみなさん、みなさんの知見が書籍になりました。ありがとうございます。
PEAKS出版のみなさん。本書を制作するにあたり力強いサポートをいただきました。ありがとうございます。
著者の小西裕介さん、藤原聖さん、吉岡 毅さん、今井 智章さん。このような荒唐無稽な執筆を快諾いただき、ありがとうございます。いつも無茶をいう私を笑顔で受け入れてくれ、開発に関する知見を惜しみなく提供くださいました。
八木さん、今回は忙しくてだめだったけどまた一緒に書こうね。
TechBoosterに寄稿いただいてる著者のみなさん。みてる?がんばったよ!冬コミとか技術書典とかあまり動けなくてごめんね。いい本が出来たよ!また一緒にいい本つくろうな(Androidモダンプログラミング ~Kotlin&Gradle実践入門~の電子版やらなきゃ…)。
本音
頼む!ひつじのリンクからたくさん売れてくれ!!!