BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Shopify社とReact Nativeの歩み:5年を駆けるレトロスペクティブ

Shopify社とReact Nativeの歩み:5年を駆けるレトロスペクティブ

原文リンク(2025-04-17)

5年にわたるReact Native開発を振り返り、Shopify社のモバイルチームが開発エクスペリエンスから得られた貴重な洞察した。開発過程における成功事例、失敗事例、今後の展望に焦点を当てた内容である。

Spotify社のMustafa Ali氏は、自社エンジニアのReact Nativeの実用エクスペリエンスから、いくつかの知見が得られたと述べている。ユーザーにとってもっともありがたい点は、React Nativeで構築されたアプリケーションは厳格な実行処理要求にも応答が可能な点だろう。だが、成功を左右するのは適切パターン効果的な適用であり、タネや仕掛けは存在しないのだと同氏は指摘している。

わが社では自社アプリのロード画面時間を500ms以下(P75)に削減しました。ネイティブ開発と同様に、React Native開発でも適切なパターンと技術を用いたボトルネックの解消が要求されます。

開発速度を大幅に引き上げるReact Nativeの機能の1つが、ホットリロードである。従来UI変更のプレビューに数分かかっていたが、この機能で待ち時間がほぼ瞬時にまで短縮されている。

こうしたプレビュー待ち時間が時間のロスを生み、結果として開発フローが台無しになっていました。ですが、React Nativeのホットリロード機能でこの問題を完全に解消することができます。

Ali氏は、TypeScriptとの併用でReact Nativeにはさらなる利点があると語る。柔軟性と堅牢性の両方が担保されるほか、web環境・モバイル環境間でコードを共有することでレバレッジ向上が期待されている。

複数プラットフォームに跨った作業ができる開発者は、非常に価値のある存在です。アプリケーションのリリースや納品が早まることに加え、あるテクノロジーから得たアイデアを別のテクノロジーに応用し、斬新な手法を開拓していくことができるからです。

上記の部分では、Ali氏の見解は一般的に知られているReact Nativeの利点と何ら変わりがない。しかし、同氏は、React Nativeとネイティブコードを組み合わせることで得られる重要な機能の存在といった、あまり知られていない洞察も共有している。 こうした洞察は、デバイスハードウェアを使用する機能や、ホーム画面ウェジットやロック画面ウィジェットといった使用メモリに制限のある機能、実行時間の長いジョブを処理する上で、大きなポイントになる。

わが社では、React Nativeで大幅な時間の節約が可能であると発見しました。一度大方の機能構築をReact Nativeで行い、必要な箇所だけは後からネティブ開発を有効化すればいいのです。こうした理由からも、チームのなかでクラウドネイティブの専門家が欠かせない存在となっています。

React Nativeのアプリ構築利用について、Hacker Newsでも共感を示すコメントが複数寄せられており、React Nativeアプリの使用でモバイルアプリの開発が簡易化されるというよくある誤解が指摘されている。正確に述べると、「React Nativeは同じアプリコードを記述するという二度手間を省略してくれるだけのツール」であり、ネイティブ構築の仕組みを理解する段階を省略させてくれるショートカットツールではないということである。

一方で、Ali氏はReact Nativeには看過しがたい欠点が複数あると指摘している。第一に、React Nativeを使用したデバッグは、XcodeツールやAndroid Studioツールを使用した場合より煩雑になり、ストリーム処理がしづらくなる傾向がある。しかし、さらなる懸念点は、React Nativeのアップデートのたびに大きな労力がかかることがしばしばある点だ。場合によっては、コードベースの再構築まで必要になることがある。

こうした影響の緩和に向けて、わが社では、開発者チームをReact Nativeの問題対応にあたる数名と機能開発にあたるその他全員の二手に分け、交互に役割を入れ替える対応を取り入れています。

React Nativeを基盤とするプロジェクトのもう一つの弱点に、サードパーティーライブラリへの依存度の高さが挙げられる。こうしたライブラリは幅広い利用が可能であるものの、継続的にメンテナンスを実施する負担やサプライチェーン攻撃に見舞われるリスクが伴っている。

Shopify社による上記のエクスペリエンス公表では、React Nativeの有用性が語られていたものの、Hacker Newsのコメントでは、同社アプリのいくつかの機能においてスペックの低さを感じるとの趣旨のコメントが寄せられている。ある投稿者は、React Nativeは「イテレーション処理で著しい有効性を発揮するが、従来ツール使用時に比べて残りの20%にあたる最終作業が煩雑化してしまっている」とコメントしている。また別の投稿者からは、Flutterの卓越したツールパフォーマンス面を強調しているものの、Flutterアプリとネイティブコンポーネントの間に依存関係がないため、「デザインの差異が気になる」との声も上がっている。

Ali氏によると、Shopify社のReact Nativeへの取り組みは今後も拡大予定であり、さらなるコード貢献やオープンソースプロジェクトのスポンサーシップの追加、くわえて企業全体でのReact Nativeサポート拡充に向けたいっそうの取り組みが計画されているという。

作者について

この記事に星をつける

おすすめ度
スタイル

特集コンテンツ一覧

BT