backwards(これではメンテできなくて、かえって大きく後退してしまっている。practices(皆が積み上げてきたベストプラクティスを変えようとしている。)」と揶揄されたりもしましたが、最近は他のJavaScriptフレームワークにもその思想の一部が反映されるようになって、メインストリームに近づきつつあるようです。2015のキーノートスピーチで、「一度書けば、どのプラットフォームでもうまく動作する。」ではなく、「一度覚えれば、どのプラットフォーム向けにも書けるようになる。」ものであることを強調しています。同社の開発メンバの声を拾うことで、その全容を探ってみましたまずは、iOSとAndroidがターゲットプラットフォーム。JavaScriptエンジンがバックグランドで実行される。メインスレッドで実行されるネイティブサーバと、バッチ形式の非同期なメッセージプロトコルでやり取りする。)など)Reactのためにそのプロトコルを使えるプラグインという立ち位置。Reactは当初から、特定の環境のローレベルの構築ブロックをライブラリレベルで抽象化している。<NativeWhatever>をレンダリングできるようにしている。Nativeの真の価値は、学ぶのが簡単なReactを使って、エンジニアが相当な努力をせずに優れたUXのアプリをつくれるようになるということ。標準のテキストコンポーネントやクロスプラットフォーム向けのflexboxレイアウトシステムなど、クロスプラットフォームでの開発を多少手助けしてくれるツールが用意されている。Swingのようにはならない。CSSのサブセットもポーティングされている、nativeアプリをCSSでスタイリングすることも可能。Nativeをベースに開発されている。「エンジニア自らの開発のフィロソフィーや習慣を変えなくても自動的に素晴らしいモバイル体験をつくれるようになる。モバイルの開発をしていれば、UXについて気にかけるし、パフォーマンスにも注意を払うので、コードがやり取りするニュアンスを大切にしなくてはいけない。素晴らしいUXを実現している作品の背後には、必ずそこに注力する人がいる。Nativeであれば、そのレベルに至る工数を削減できると考えている。NativeはDOMをまったく利用していない。Reactは、ブラウザーにおいて想定外のプログラミングに起因するパフォーマンスの問題の多くを、うまく対処してくれる。Nativeは、ブラウザでできることを超えて次のレベルまで進んでいる。Nativeが示したのは、一般的に支持されている「バーチャルDOM」よりも、「ゼロDOM」をReactJSが志向しているということ。ネイティブviewのパフォーマンスやリソースコントロールをキープするためには、webでのよいところを捨てなくてはいけないわけではない。Nativeだと、FlexBoxでネイティブのviewをレイアウトできるし、その他のよく使っているスタイル属性も利用できる。致命的なCSSのリフローも避けられる。ライブラリのコードが同じなので、既存のReactアプリと同じイベントシステムが動作する。勝手のわかるwebスタイルとレイアウトを使って、ネイティブアプリの実装を素早くできるようになる。新しいツール群を学びなおさなくてはいけない他のアプローチと比較すると、この方が当然良いと思っている。Nativeの差別化のポイントは、クオリティの高いアプリをJavaScriptで書けるということ。ブラウザだと限界に突き当たる。プラットフォームのコンポーネント(physics/mapの特定のスクロールビューなど)にアクセスできないか、実装しているやり取りがイメージでコーディングに邪魔されてどうしようもなくなるとか。Nativeだと、以前はJavaScriptでは実装(mapなど)できなかったネイティブのプラットフォームのviewを使ってアプリをつくれる。/>や、DOMをまったく使わない<View/>ブロックなど)を使うこともできる。このおかげで、プラットフォームごとの特徴に合わせたクオリティの高いものをつくりだせる。基本的には、AndroidとiOSでなるべくコードをシェアすることはやってもらいたいものの、「一度書けば、どのプラットフォームでも動作する」ものではないことを留意してほしい。同じiOSにおいても、iPhone6+のスクリーンに対する最適化などへの考慮は重要。個別の環境に合わせた実装は常に必要になってくる。ここで約束されているネイティブらしいUXを本当にうまく実現できる手法なのか。Nativeはそれをうまく利用する。」と説明してくれています。その成否は、今後色々情報がでてくるかと思います。TopアクセスランキングBack。