React Native: モダンなウェブ技術をモバイルへ
2年前にReactを発表して以来、Facebook社内外で目覚ましい成長を遂げています。現在では、強制されることはありませんが、Facebookの新しいWebプロジェクトでは何らかの形でReactを使って構築されることが多く、業界全体で広く採用されています。エンジニアは、フレームワークとの格闘に費やす時間を減らし、製品に集中する時間を増やせるため、日々Reactを選択しています。しかし、Reactを使ってしばらく構築するまで、その強力な理由を理解できませんでした。
Reactは、アプリケーションを個別のコンポーネントに分解することを強制します。各コンポーネントは単一のビューを表します。これらのコンポーネントにより、システム全体を頭に入れておく必要なく、一部を変更できるため、製品のイテレーションが容易になります。さらに重要なのは、ReactがDOMのミュータブルで命令的なAPIを宣言的なAPIでラップすることで、抽象度を高め、プログラミングモデルを簡素化することです。Reactで構築すると、コードがはるかに予測可能になることがわかりました。この予測可能性により、自信を持って迅速にイテレーションでき、結果としてアプリケーションの信頼性が大幅に向上します。さらに、Reactで構築されたアプリケーションは拡張が容易であるだけでなく、チーム自体の規模を拡張することも容易であることがわかりました。
Webの迅速なイテレーションサイクルと相まって、Facebook.comの多くのコンポーネントを含む、素晴らしい製品をReactで構築することができました。さらに、RelayのようなReact上にJavaScriptで素晴らしいフレームワークを構築しました。これにより、大規模なデータフェッチを大幅に簡素化できます。もちろん、Webは話の一部に過ぎません。Facebookには広く使われているAndroidおよびiOSアプリもあり、これらはバラバラの独自の技術スタックの上に構築されています。複数のプラットフォームの上にアプリを構築する必要があるため、エンジニアリング組織が二分されていますが、これはネイティブモバイルアプリケーション開発を困難にする要素の1つに過ぎません。
これは抜粋です。残りの記事はFacebook Codeでお読みください。