smellman's Broken Diary

クソみたいなもんです

「React Native+Expoではじめるスマホアプリ開発 ~JavaScriptによるアプリ構築の実際~」という本が出版されます

このたび、「React Native+Expoではじめるスマホアプリ開発 ~JavaScriptによるアプリ構築の実際~」という本をマイナビ出版から出版することになりました。

React Native+Expoではじめるスマホアプリ開発 ~JavaScriptによるアプリ構築の実際~

React Native+Expoではじめるスマホアプリ開発 ~JavaScriptによるアプリ構築の実際~

いままで2冊ほどFirefoxに関する本を共著でオライリー・ジャパンさんから出版させていただいてますが、今回は初の単著となります。

単著です...まじで大変でした。

事の発端は今年のOSC2018 Tokyo/Spring にてOpenStreetMapのブースで出店していたのですが、そこにひさびさにマイナビ出版の西田さんと会いました。
西田さんとは長い付き合いで、もともとOpenOffice.orgのコミュニティのつながりで仲良くなり、一緒にちょっとした悪さをしたりする友達でもありました。

さて、西田さんはしばらく書籍ではなく雑誌の担当をしていたんですが、最近書籍担当に戻ったということで、会ってそうそう「組長なんかネタない?」と聞かれました。

僕の専門が地図なので、地図のプログラミングとかどうかなーと最初話をしたんだけど、それだとちょっと弱いかなーっていうので、二年ほど仕事でやっているReact Nativeならどうかと話をしたところ、「それだ!」ってなってトントン拍子に書籍に出す話が進んでいきました。

そして、いきなり「8月に出版するので」となってマジカ!?ってなりながら初めていきましたl.

まずは目次考えたりしたり、当時仕事でやっていたExpoならどうかとか考えてたんだけど、いきなりExpoがiOSQRコード共有を辞めるっていう思いっきり出鼻をくじかれることになりながらも、なんとか頑張って4月から執筆を始められるようにして、とにかく書かないとという感じで書き始めていきました。

執筆にあたって、とりあえず集中できる環境がほしいというのがあり、平日の帰りに近所のルノアールによって執筆をしたり、休日は午前中に近所のルノアールに行ってから午後に新宿御苑を経由して喫茶店をはしごしながら書いていったりという感じで業務時間以外の時間にほぼ書き上げるという感じでやっていました。

ただ、途中で転機が訪れます。まぁ、軽いデスマ状態になってしまい、平日ボロボロになりながらもちょっとだけルノアール寄って書いたり、合間合間を見つけてちょっとずつ進めていくっていう感じでやっていきました。

それでもまぁ、途中サンプルプログラムの作成でドハマリしてまるごと3週間原稿が書けなかったりとかしていて、かなり焦りましたが、まぁなんとかなっちゃいました。
ちなみに、ドハマリした部分は内緒にしますので、ぜひ見つけてみてください。何も出ませんけど!

ゲラが上がってきてからもデスマの余韻がありつつもなんとか土日が使えたので頑張って仕上げました。

まぁ、その分いろいろ失敗してしまったところがあり、土日にも体調崩すことがあって、特に僕が理事をやっている日本UNIXユーザ会の総会及び併設勉強会なんかは起きたらすでに終わっている時間だったなんていう大失敗がありました。本当に申し訳ないです。

苦労話はこの辺にして、本書を軽く紹介しておきます。

本書はReact Native及びExpoを使ってスマートフォン開発を行うためのノウハウを書いた本です。

自分が苦手とするデザインについてもreact-native-elementを使ってそれなりに格好がつくデザインができるようになどいろいろ配慮しました。

また、自分が地図のエンジニアということで、地図を使ったサンプルが3つもあるのが特徴です。単純にみんなが使うであろうreact-native-maps以外にも選択肢があるよということでMapbox GL Nativeを使ったサンプルの乗っけたのは今後地図をやっていく人にとっては面白い観点かと思います。

ネットワークプログラミングの部分もサンプルがOverpass APIというOpenStreetMapのデータを取るAPIを使っていたり、その中でOpenStreetMapのデータ構造について解説したりと、かなり癖がある本になっています。

その代わり、React NavigationやReduxに関してはあまり難しいところまで書かないように注意をしました。ここらへんはどこまで書くかは難しいところですが、抑えておきたいところは書いたと思うので、あとは読者のみなさんがどう拡張していくかを考えていただければと思います。

WebViewのプログラミングについては駅すぱあと路線図APIという僕が仕事で関わった代表作といえるAPIを活用したサンプルを入れました。たくさんの人にぜひ触れてほしいAPIなので、読者の皆さんにはぜひチャレンジしてほしいと思います。基本となるReact Native側とWebViewとのデータのやり取りについてはばっちり理解できると思います。

付録のApple TVのプログラミングについてはかなり悪ノリで、ある日突然Apple TVほしい!ってなって、React Nativeでアプリが作れるのを知っていたので、いきなり買いに行ってしまいました。でも、おかげで奇妙な環境の話ができたのは個人的には満足しています。

最後に、いちばん大変だったのはサンプルプログラムをgithubにあげることでした。今回、全てのソースコードにgitのtagを打っていて、tagをたどればそのプログラムがまるごとコピーできるようにはなっています。一箇所だけコメント間違えたままアップしちゃったところはありますが、まぁ問題ないはずです。
特に原稿との整合性を取るためにtagを打つタイミングはかなり困りました。サンプルプログラムを書いて検証しながら本文を書いて進めていくという形なので、本文の先の方でおかしな点があれば一気に戻らないといけなくなるので、何度もtagを消して調整して戻してとか、最悪プログラムの最初から全部やり直してtagを打っていくとかやっていたので、心が折れそうになりました。
まぁ、これで読者がソースを読むときに省略された部分なんかも全部githubで読めるのでだいぶ理解の助けにはなるかなーと思っています。

というわけで、4月から本格的にスタートして8月にゲラチェックして月末には出るっていうすげースケジュールで出版となります。

あと、今週末のOpen Developer Conference (ODC) と ODC 内で開催されるLLイベントでは見本誌を出しますので、気になる方は会場でもチェックをしてください。LLイベントではプレゼントにも提供されるそうです。

僕はすっかり燃え尽きましたが、ODCには顔をだす予定です。二日目のLLイベントの方は前日の飲み会次第で顔を出すかなという感じです。

さて、あとは書店に出すポップを考えないと...