blog.koba04.comkoba04's twitter accountkoba04's GitHub account

React Links vol.1 4/6〜4/14

2016/04/14 @koba04

これはReactに関する記事や気になるissueなどのリンクを紹介する記事です。

今週はF8があったのでReact Native関連の記事が多くありました。

React v15

React v15がリリースされました。バグがあったのですぐに15.0.1がリリースされています。インストールする際には15.0.1を使用してください。

細かいfeatureについてはブログ書いたのでそちらをみてください

React Native: A year in review

React Nativeが2013年の夏に社内の(?)hackathonで誕生してから、30,000以上のstarをgithubで得るようになるまでのStoryが書かれています。 "The React Native team has grown from around 10 to around 20 engineers in the past year"や"we are 1 percent finished. "とあるように、今後も力を入れていくことがわかります。 Facebookのエンジニア以外からのcommitも30%くらいあって、Facebook以外でも使われていることがわかります。

また、facebookがreact-nativeのリポジトリをどのように管理しているのかや、たくさんのissueやPRを処理するために作ったmention-botなどについても書かれていて、巨大なOSSをgithubでどう管理するかという点でも面白いです。

https://github.com/facebook/mention-bot

Building the F8 2016 App

ReactNativeを使ってF8のiOSとAndroidのアプリを作った際のことを、チュートリアルとして紹介しています。 どのような構成にするのかを検討して、マルチプラットフォーム対応をどうするか、データ管理をどうするか、テストをどうするかなどが書かれていてとても参考になります。

React使っている人は一度見てみるといいんじゃないかと思います。

ReactNative + Flow + Redux + Jestな構成でサーバーサイドにはOSSのParse Serverを使っているようです。 エディターはNuclideだそうです。

アプリのソースコードもgithubで公開されています。

React Native on the Universal Windows Platform

MicroSoftがUniversal Windows Platform (UWP)対応をReactNativeに追加することが書かれています。 これにより、WindowsのPCがモバイルだけでなく、Xbox OneやHoloLensのためのアプリをReactNativeで作れるようになります。 記事では、F8のアプリをWindows 10 mobileとDesktop向けに作ったことが紹介されています。

JavaScriptのランタイムにはChakraが使われているみたいです。

また、VSCodeのReactNative拡張やReactNativeを使ったWindowsアプリに対するCodePush対応などを行っているようです。

現在はforkしたrepositoryになっていますが、将来的にはReactNative本体と同期が取れるようにうまくやっていくようです。

https://github.com/ReactWindows/react-native

core note 4/7

Reactのcoreチームのmeeting noteが公開されています。 以前はあったものの途中で削除されたBrowser Testingについて言及されているのは注目です。

その他では、ReactDOM.render() return value being ~~deprecated~~ legacy (#6400) も注目です。 内部的なアルゴリズムの見直しをするために、ReactDOM.renderが将来的に戻り値を返さなくなります。 戻り値を使いたい場合は、Refsを指定して取得することになりそうです。

また、Sebastian is moving some files from React Native to React (#6338)としてReactNativeのrenderer周りをreactのrepositoryに持ってきて、react-native-rendererとして別パッケージにすることも予定されています。 さらにreact-domからreact-dom-rendererも切り離すことを検討されています。

これによってカスタムrendererを作る時のI/Fが整備されて、わかりやすくなるといいなと思います。 Windows対応もあったりでこの辺りを整理する優先度は高そうです。

Improve React performance with Babel

productionビルドやBabelの最適化を使った場合のパフォーマンスについてのエントリーです。当たり前ですが、developmentビルドとproductionビルドのパフォーマンスの違いが目立っています。 Babelを使った最適化の場合でも数%の向上が見られますが、アプリケーションによるので利用する際は計測してみて導入することをおすすめします。

unofficial React Router docs

knowbodyさんによる非公式なReact Routerのドキュメントです。WIPですが、公式を読んでよくわからなかった人は確認してみるといいかもしれません。

React Router is dead. Long live rrtr.

下のエントリーは現在は削除されています。

React Routerでここ数ヶ月中心的にcontributeしていたtaionさんがリリースのサイクルの遅さやプロセスに不満を抱いてforkしてrrtrを作ったことを表明したエントリーです。

それに対して、React Routerのオーナーであるryanflorenceさんもgistでリアクションしています。

で下の通り、結局丸く収まりました。

結果的に、PRをmergeするプロセスや定期的なリリースなど、プロジェクトの運営方針が行われました。

ちなみにtaionさんはhistoryと組み合わせてscroll位置の復元などをサポートするscroll-behaviorというライブラリーも公開しています。

crysislinux/chrome-react-perf

Perfによる計測をChrome Developer Toolsで行うことができるライブラリーです。 カジュアルに計測が出来そうなのでよさそうです。