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