Facebookは自社のエンジニアチームが同じコードでiOS、Android、ウェブのインターフェイスを製作できるようにするため、React JavaScript ライブラリを構築した。Facebookは、開発において強力な効果を発揮するそのツールを誰もが利用できるようオープンソースにした。今回の React Native For AndroidはReact三部作の最終章を飾るものだ。
FacebookはReactを2013年にオープンソースにし、今年の初めに開催したF8 カンファレンスで React Nativeを公開した。Android版の公開で、Reactを使ったことのあるエンジニアは、全ての主要プラットフォームでの開発ができるようになった。スタートアップから大手テクノロジー企業まで、これまでより少ないエンジニアの数で仕事をこなすことができるようになる。また、それぞれ異なるコードを用いるiOSとAndroidの開発に専門の開発者を採用する負担も軽減できる。それは結果的に新しい機能の開発を速く行い、iOS版のリリースからAndroid版を製作するまでにかかる時間を短縮することにつながるだろう。
Facebookは本日、@ScaleカンファレンスでReact Native For AndroidのオープンソースをGitHubに公開したことを発表した。@Scaleカンファレンスでは、Facebook、Twitter、Google、Box、Pinterest、Microsoftといった企業の役員や開発者、総勢1800名が集まり、開発やインフラ環境を整えるために何ができるかについて共に検討する。参加企業はこれまでに累計で4500のオープンソースプロジェクトに貢献してきた。
何故FacebookがReactのような強力なテクノロジーを公開するのか疑問に思うかもしれない。非公開にしておくことで、競合である他のソーシャル企業より、開発において優位な立場を維持できるだろう。FacebookのエンジニアマネージャーであるTom Occhinoは、3つの理由を私に説明した。
つまり、Facebookはオープンソースにすることで、失うものより得るものの方が多いということだ。また、これはFacebookが彼らの世界をつなぐという理念に沿う、利他的な取り組みでもある。「Facebookだけで全てのソフトウェアを構築することはできません」とOcchinoは言う。「私たちができることは、開発者のミッションを進めるためのツールを提供することです」。
クロスプラットフォーム開発の最終目標は「一回学習すれば、何のコードでも書ける」ことだが、ウェブ、iOS、Androidの基本構造の違いがそれを阻んでいた。しかし、Reactは要素を概念化した3つのプラットフォームにまたがるレイヤーを置くことで、Reactを学べば、どのプラットフォームでもアプリを書けるようになる。
例えば、今年の初めにFacebookはAds ManagerのiOSとAndroidのネイティブアプリを開発した。Reactを使用したおかげで、予定していた期間の半分で開発することができたという。当初の予定は18ヶ月間だったが、FacebookはiOSアプリを5ヶ月、それを元にAndroid版を3ヶ月で製作した。
このテクノロジーによりFacebookはウェブだけのプラットフォームの時代に培った、常にコードを書いてアプリに適応し、新しい機能を検証するMove Fast(速く動け)の理念を取り戻している。モバイル時代に適応した際、Facebookはエンジニアチームにウェブ、iOS、Androidの各専門家を入れて、分けなければならなかった。
FacebookのエンジニアマネージャーであるOlivia Bishopは、Reactなしでは「素早く機能改善するのは難しいのです。変更を行うたびにリコンパイルして、検証するデバイスに入れなければならないのですから」と話した。Reactではコードを再利用することができるので、開発時間の短縮につながる。
React Nativeを使い慣れるほど、コミュニティーはリーン・スタートアップの方法論をより簡単に実行できるようになるだろう。クロスプラットフォーム対応を諦めたり、新しいOSを検証することを躊躇ったりすることなく、全ての開発者は上手くいくものを素早く検証することができるようになる。また、Reactに何か問題あることを発見した場合は、Facebookのためにそれを修正することもできる。
「オープンソース化は、進化や風化といった長期間のプロセスに似ています。年月が経ってもソフトウェアが適切なものであることを保証し、オープンソースへの投資は報われるでしょう」とFacebookのエンジニアディレクターのAdam Woffは結論付けた。ソフトウェアを企業内に留めておくことは、危険な停滞を招くという。「時間が経過すると、それは資産であるソフトウェアスタックを破壊し、企業を傷つけます」。
[原文へ]