ナカザンドットネット

Android Developer's memo

#技術書典 #技術書典4 で「Cheap Dive into React Native」を頒布します

blog.nkzn.info

というわけで、2月に予告していたReact Nativeの本ができました。

タイトルは「Cheap Dive into React Native」です。Deep Diveと名付けるのはちょっと面の皮が薄くて無理だったので、ちょっとトーンダウンしてみました。

f:id:Nkzn:20180418152917j:plain

techbookfest.org

配置

き02にいます。XamaritansPEAKSに挟まれてます。

f:id:Nkzn:20180420155037p:plain

配布形態

あれ これ
サイズ B5
ページ数 88ページ
頒布価格 1000円(おつりオペレーションを極限まで軽くしたかった)

表紙について

妻と「オライリーベースで身も蓋もない感じにしよう」と相談しているうちにこうなりました。

どこからどうみてもなかざん本です。

みんな見つけてくれよな!

モチベーション

DroidKaigi 2018ではReact NativeのAndroid向けの内部実装を調べる機会をもらいまして、かなり深いところまで読ませてもらいました。しかし、カンファレンスという枠組みでの50分という限られた時間の中では、調べたことすべてを話すことはできませんでした。

せっかく調べたので、覚えているうちに全部アウトプットしたい!というのが最初のモチベーションです。

また、ここ1年くらいで実案件にReact Nativeを使う機会が多くなってきました。弊社のチーム開発に適した形で運用していく中で、やはり様々な知見が溜まってきています。こういうのはときどきアウトプットしていかないとお腹を壊すので、いい機会として使わせてもらいました。

内容

記事の内容に合わせて、本の中身や思い出話をお話していきます。

  • 技術書典のiOS版後払いアプリ開発を支えたcreate-react-native-app
  • React Native で Android と Web の同時開発にチャレンジした話
  • WebマークアップエンジニアがRNやってみた(寄稿)
  • ReactAndroid Internals

技術書典のiOS版後払いアプリ開発を支えたcreate-react-native-app

blog.techbookfest.org

技術書典の公式後払いアプリのiOS版をcreate-react-native-appで作りました。私が!作りました!

ejectしない縛りの中で得られた、CRNA/Expoの知見を大放出します。CRNAでプロダクションリリースまで持っていった事例はあまりないはずなのでいい経験になりました。

備忘録として、ここ3週間の出来事を書いてみましょう。

日付 出来事
3/13 わかめさんから無茶振りをもらって面白そうやなと思い快諾
3/27 本業のデスマにより原稿もアプリも白紙のままここまで到達(開発開始)
4/2 リリースに向けた証明書周りの準備を開始(主に達人出版会さんに色々お願いするやつ)
4/4 なんとなく完成したのでTestFlight審査に提出
FGO第二部開幕
4/5 本審査提出
4/7 1度目のリジェクト(カメラパーミッションの指摘。本に書きました)
4/8 FGO第二部第一章クリア(感想は本のあとがきに)
4/9 そろそろフル可処分タイムで作業しなくてもいい気がしてきたので自分の本の執筆を開始
4/10 2度目のリジェクト(サインアップへの動線の指摘。本に書きました)
4/11 審査通った
4/15 パブリックリリース&公式ブログ告知&ゼロデイ障害対応(ごめん)
4/17 本書き終わった
4/18 入☆稿

……うん、よくこの状況で90ページも書いた。偉いぞ俺。*1

4/4〜8の可処分時間の使い方については思うところがないわけでもありませんが、私もFをGOしたかったし、許してくれという気持ちでいっぱいです。*2

謝辞

とはいえ、この短期間でアプリを作れたのは、僕の功績というのはかなり少なめです。

僕が手を付ける前にデータモデルの設計と通信周りのベース開発を7割くらい済ませていてくれた@さんと、素敵なAndroidアプリ版を真似させてくれた@の功績がほとんどだと思っています。自分一人でゼロから作っていたら、こんな時間では到底作れなかったと思います。ありがとうございました。

React Native で Android と Web の同時開発にチャレンジした話

React Native for WebやStorybookを使って、ネイティブとWebの同時開発にチャレンジした事例を紹介します。

qiita.com

こいつをプロダクションで使うために設計レベルで実用性を高めた話です。記事の中身は思想の話が多めになってしまったので、Qiitaと併せて読むと実践的になりそう。

WebマークアップエンジニアがRNやってみた

同僚のWebマークアップエンジニアをReact Nativeのプロジェクトに巻き込んだら結構良い感じだったので、エッセイを書いてもらいました。 RNの裾野の広がりを感じられるいい記事です。

ReactAndroid Internals

React NativeのAndroid向け実装について掘り下げた記事としては、おそらく現時点の日本で一番深くまで潜ったものになっていると思います。Androidエンジニアがこれを読むとReactAndroidがちょっとだけ読めるようになるかもしれません。

  • JavaScriptをどうやって動かしているのか
  • JavaとJavaScriptはどうやって通信しているのか
  • ReactからはReact DOMとReact Nativeがどのように見えているのか
  • どこのレイヤーの処理がどこのスレッドで動いているのか
  • requireされた画像リソースはAndroidアプリのどこに配置されるのか

こんな感じのことを書きなぐった40P超の大作です。

DroidKaigiのディレクターズ・カット版と言ったな。あれは嘘だ。

半分くらい書き直したぜ! DroidKaigiで興味を持った人が更に楽しめる内容になっていると思います。

電書版について

当日までに間に合えば、紙版のおまけに電書版も付けられればと思っています。

また、後日Boothで電書版のダウンロード販売も始めたいので、技術書典に来れなかった方はそちらをお待ち下さい。

というわけで

さあ、お祭りだ! 私は好きにした! 君たちも好きにしろ! みんな楽しもうな!

*1:実はCodeZineの連載も並行で書いてたのでもっと書いてる

*2:オマージュです。