2018 年 6 月の React Native 事情とポエム

## 2018 年 6 月の React Native 事情

事実と思われる情報を時系列で並べる。足りないものがあるかもしれない。

6/2 に噂を Ben Sandofsky が tweet 。

<blockquote class="twitter-tweet" data-lang="ja"><p lang="en" dir="ltr">There’s a rumor React Native was abandoned in the main Facebook app. Anyone heard similar/different?</p>&mdash; Ben Sandofsky (@sandofsky) <a href="https://twitter.com/sandofsky/status/1002637340291018754?ref_src=twsrc%5Etfw">2018年6月1日</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

このひとは Halide という iOS で提供されているカメラアプリの開発者。これは純粋に噂が真実かどうか確かめたいという発言のように見える。

https://itunes.apple.com/jp/app/halide-raw%E6%92%AE%E5%BD%B1%E3%81%8C%E3%81%A7%E3%81%8D%E3%82%8B%E6%89%8B%E5%8B%95%E3%82%AB%E3%83%A1%E3%83%A9/id885697368?mt=8
https://twitter.com/halidecamera

Halide は 99% Swift で書かれているらしい。

<blockquote class="twitter-tweet" data-lang="ja"><p lang="en" dir="ltr">Halide 99% Swift. Started on Swift 2.0. Expect a post at <a href="https://t.co/fQsYHHyHtp">https://t.co/fQsYHHyHtp</a></p>&mdash; Ben Sandofsky (@sandofsky) <a href="https://twitter.com/sandofsky/status/869617212121796609?ref_src=twsrc%5Etfw">2017年5月30日</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

翌日 6/3 にこれを Sophie Alpert が否定した。 2018 年の F8 で発表した機能の実装に使われているとのこと。 Facebook の React.js マネージャーだそうだ。

<blockquote class="twitter-tweet" data-lang="ja"><p lang="en" dir="ltr">This is not true.</p>&mdash; Sophie Alpert (@sophiebits) <a href="https://twitter.com/sophiebits/status/1003090742296735744?ref_src=twsrc%5Etfw">2018年6月3日</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
<blockquote class="twitter-tweet" data-lang="ja"><p lang="en" dir="ltr">Blood Donations, Crisis Response, Privacy Shortcuts, Access Your Information, Wellness Checks are recent projects in the main app mentioned in F8 keynote that use RN. (The whole Oculus Go mobile app as well.) More to come. RN hasn’t been used yet in News Feed but that may change.</p>&mdash; Sophie Alpert (@sophiebits) <a href="https://twitter.com/sophiebits/status/1003101478427357184?ref_src=twsrc%5Etfw">2018年6月3日</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

と言っている間に Microsoft が Office 365　を react-native-windows を使って書き直したという情報が Sean Thomas Larkin から出る。 Sean は Microsoft のマネージャーで Edge と Edge Dev　Tools に携わっているらしい。 Webpack core team でもある。

<blockquote class="twitter-tweet" data-lang="ja"><p lang="en" dir="ltr">(Ive never been able to say this yet)<br>🙋Well Actually!🙋<br><br>All of Office 365 is (almost finished) being completely rewritten in this little scripting language called <a href="https://twitter.com/hashtag/JavaScript?src=hash&amp;ref_src=twsrc%5Etfw">#JavaScript</a>.<br><br>And Skype<br>And Microsoft Teams<br>And <a href="https://twitter.com/code?ref_src=twsrc%5Etfw">@Code</a><br>And all of <a href="https://twitter.com/MSEdgeDev?ref_src=twsrc%5Etfw">@MSEdgeDev</a> Debug Protocol (instead of C++)<br><br>nbd <a href="https://t.co/WFahDhap6K">https://t.co/WFahDhap6K</a></p>&mdash; Sean Thomas Larkin (@TheLarkInn) <a href="https://twitter.com/TheLarkInn/status/1006746626617008128?ref_src=twsrc%5Etfw">2018年6月13日</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

Tweet だけだと JavaScript で書き直したことしかわからないが、 Reddit で Sean が react-native-windows だと明言。

https://www.reddit.com/r/programming/comments/8qqhlz/office_365_ms_teams_skype_code_and_the_edge_debug/e0ll1dt/

その後 6/14 に Sophie Alpert が公式ブログで React Native の大幅な再設計をしていることを発表。

https://facebook.github.io/react-native/blog/2018/06/14/state-of-react-native-2018

6/21 に AirBnB が React Native をやめると宣言。その理由とどうやってやめていくか、今後のアーキテクチャーについて書いている。

https://medium.com/airbnb-engineering/react-native-at-airbnb-f95aa460be1c
https://medium.com/airbnb-engineering/react-native-at-airbnb-the-technology-dafd0b43838
https://medium.com/airbnb-engineering/building-a-cross-platform-mobile-team-3e1837b40a88
https://medium.com/airbnb-engineering/sunsetting-react-native-1868ba28e30a
https://medium.com/airbnb-engineering/whats-next-for-mobile-at-airbnb-5e71618576ab

AirBnB は react-native-map や Lottie などで React Native のエコシステムを推進していた。

https://github.com/react-community/react-native-maps
https://airbnb.design/lottie/

@hotchemi さん、 @andoshin11 さんが日本語訳してくれているものがある。訳は丁寧で正確だ。 6/21 01:50 時点で 4 つ目まで翻訳していただいている。

https://hotchemi.hateblo.jp/entry/2018/06/20/192533
http://studio-andy.hatenablog.com/entry/react-native-at-airbnb-the-technology
https://hotchemi.hateblo.jp/entry/2018/06/20/234054
http://studio-andy.hatenablog.com/entry/sunsetting-react-native

翻訳作業 repo を React Native Japan の organization に移管していただいた。

https://github.com/react-native-jp/react-native-at-airbnb-jp-translation


## ポエム

### 発言者の属性

誰かの発言はその人間の属性まで含めて理解したほうがよい。「この文章を書いた際の著者の気持ちを述べよ」。

この記事を書いている人間は元 CureApp という企業で React Native による開発を推進していた。今の CureApp アーキテクチャーがどうなってるかは知らん。現 React Native Japan の運営スタッフ。今は Farmnote という会社で Vue.js を書いた後、自分以外の技術者が React Native を触る際のサポートをしている。

### 事実とそれ以外をわける

事実は情報、それ以外はノイズ。これもノイズ。

### 目的に合致した道具を使え

今のあなたのスキルセットは関係ない。ターゲットに対して最大限の価値を提供できる道具立てを選択しろ。

### 技術選定の基準

先達が書いてくれているので参考にしながら事実を収集して自分の環境を見比べてやっていけばよい。

https://speakerdeck.com/twada/understanding-the-spiral-of-technologies
https://logmi.jp/63330

表現力は実際に使われている事例をみればいい。

https://facebook.github.io/react-native/showcase.html
https://github.com/react-native-jp/react-native-apps-jp

### お気持ち

AirBnB の記事を読んだ直後のお気持ちです。 React Native Japan の Slack team #random で発言しています。

<img width="851" alt="position.png" src="https://qiita-image-store.s3.amazonaws.com/0/27516/68c53095-78f8-d872-d9b3-1fa71f1d5057.png">

原文はこちらから。

https://slackin-guqupvlbzk.now.sh/