React Native と事業速度について React Native Matsuri で喋りました

React Native Matsuri で喋った内容の紹介と補足です
2021.10.11

10/02 に開催された React Native Matsuri で登壇してきました。当日のセッションは動画で公開されています。私は 1:49:41 から喋っています。

喋ったときの資料を主張をまとめるために調査した内容とともに公開しています。

当日は 30 分だったので、主張のみを伝えるので精一杯でした。この記事では削ぎ落とした内容も含めて、資料を振り返ってみます。

なぜ英語の資料にしたのか

React Native Matsuri は React Native をテーマとした、はじめての日本初の大規模カンファレンスです。日本で開催されているカンファレンスならば資料も日本語で書くべきだと思ったのですが、日本の React Native コミュニティがどういったことを考えているのか発信するセッションがひとつくらいあってもいいだろう、ということで英語で書きました。

メタ分析の対象企業

メタ分析の対象とした企業のうち、日本の企業は Quipper さんの 1 社のみですが、これは意図したものではなく、次の観点でリサーチした結果です。

  • 自社の主力プロダクトに React Native を採用している
  • 開発だけでなく運用まで経験している
  • 採用してよかったこと、悪かったことが両方記載されている

日本国内における事例としては、 React Native Matsuri を主催された React Native Japan のみなさんが執筆された「React Native に支えられる企業」という本が、最新のものだと思います。

また、日本語や日本の環境におけるでメリット・デメリットを聞きたい場合、この本の執筆者の方々に相談するのが良いと思います。

プラットフォーム間のコード共有率が高いのは結果

React Native の理念は "Learn once, Write anywhere" です。各企業がどこまでこの理念に沿った使い方をしていたのかまでは読み取れませんでしたが、コード共有を目的として採用を検討すると、うまくいかないこともあり期待はずれと感じることもあるでしょう。あくまでも同一スキルセットでマルチプラットフォーム対応をするためのツールとして捉えると良いでしょう。

エンジニアの流動性が高まるのは本当

クラスメソッドでは、 iOS エンジニアから Web フロントエンドエンジニアへの転向をされた方が複数名いらっしゃいます。その際、 React Native を経由して React や JavaScript に慣れてもらえたことで、 1 ヶ月弱で実案件で活躍していただけるようになりました。

React Native のトレーニング

採用する以上、既存エンジニアへのフォローアップは必須です。 React の概念や React Native コンポーネントへの習熟など基礎的なところから、デファクトスタンダードとなっているライブラリーを用いた実装経験や、ネイティブコンポーネントの開発まで、抑えるべき項目は多岐にわたります。

これらを抑えるには、実際に何か作ってみるという方法が速いでしょう。 Coinbase さんで実施されたトレーニングでは、自社プロダクトのミニマムバージョンを作ってみる、という方法が取られたようです。

https://blog.coinbase.com/lessons-from-training-teams-to-use-react-native-67ec78b9ab7a

Coinbase さんではさらに、外部講師による講義と社内のボランティアによる質問への対応という体制があったようです。前者は Udemy の講義React Native Japan によるハンズオン を利用すると良いでしょう。後者は React Native Japan Discord で質問がよいと思います。

採用技術のスイッチコスト

前提とした VUCA な世界、 Chaotic / Complex な開発領域においては、プロダクトがどのフェイズになっても React Native の開発効率と開発者の流動性の高さは非常に頼もしい武器となります。

ただし、どの技術を採用するのかは最終的に、決定権者が置かれる環境が影響します。

  • 企業体力
  • 経営陣の意向
  • 投資者の意向
  • チームメンバーの意向
  • 決定権者の好み

技術的なメリットとデメリットの比較のみでは済まない、ということです。

さらに、どういった決定であっても安くないコストがかかるということも知っておいたほうがよいでしょう。

クラスメソッドでは

React を用いたお仕事はたくさん、 React Native for Web を用いたお仕事もちょっとあります。 React Native を用いたお仕事はいまのところないのですが、お客様やユーザーにとって最善の選択肢となったときに躊躇なく選択できる環境です。

幅広いプラットフォームで作っていきたい方のご応募をお待ちしています。