React Nativeで13年続いたネイティブアプリを移行する
(ridicorp.com)RIDIブックスがネイティブアプリからReact Nativeへ移行する過程で経験したことについての話
- React Nativeを選んだ理由
-
これまではWebでコンテンツの探索と決済を行い、アプリはビューアとして使っていたが、アプリにも探索・決済機能を導入することを決定。変化への迅速な対応と、与えられた期間内で目標を達成するため、クロスプラットフォーム開発が可能な技術の導入を決めた
-
Flutter / React Nativeで悩んだが、React Nativeのほうがコミュニティがやや安定し、活発だったためReact Nativeに決定
- ネイティブ基盤 vs React Native基盤
-
ネイティブアプリの上にReact Nativeを載せるか、逆にReact Nativeの上にネイティブを載せるかを検討
-
ネイティブの上にReact Nativeを載せると、画面ごとにendpointが変わり、アプリのライフサイクル管理が複雑になる
-
React Nativeの上にネイティブを載せる場合、既存のネイティブコードをReact Nativeと互換性があるように一度修正する必要がある。将来的にはReact Nativeで完全に書き直す必要がある
-
どうせ大半の機能をReact Nativeへ移していく予定だったため、React Nativeの上にネイティブを載せる方向に決定
- ネイティブ画面の再利用
- 与えられた期間内で変化に素早く対応するため、新しい画面はReact Nativeで作成し、既存画面はネイティブ画面を維持することに決定(ネイティブ画面は段階的にReact Nativeへ移行)
- ネイティブコードの再利用
-
RIDIブックスが13年間保守しながら積み上げてきたネイティブのエッセンスをReact Nativeに活かせるか? 既存のネイティブアプリではSwift、Kotlinを使っていたが、これをそのままReact Nativeで使えるかを検証
-
ブリッジを作ることで従来方式のまま利用可能
- 適用過程での課題
-
バンドルサイズとメモリ使用量が増加
-
バンドルサイズは想定内だったが、メモリは深刻だった。最適化にかなり気を配る必要があった。
-
サードパーティライブラリを信頼しづらい
-
ネイティブとフロントの両方を軽視できない。ネイティブ開発者はフロント開発を、フロント開発者はネイティブ開発を学ぶ必要がある。相互の交流が成功の鍵。
- React Nativeの良さ
-
高い生産性
-
協業しやすいプラットフォーム
React Nativeのおかげで与えられた期間内にプロダクトロードマップを達成でき、変化に素早く対応できる環境と生産性を得た。今後は本格的にネイティブ領域をReact Nativeへ置き換えていく予定。ただし、ビューアは13年間積み上げてきたノウハウがあるため、これを維持しながら最良のユーザー体験を提供していく。
11件のコメント
Googleトレンドでキーワード検索を一度してみたことがあるか分かりませんが、RNエコシステムはほとんど死にかけています。それに対してFlutterは爆発的に成長中です。ちなみに私はネイティブ開発者です。
ユーザーの立場からすると、デスクトップアプリは以前のバージョンより性能が落ちたように感じます。以前はページをめくるときに遅延を感じませんでしたが、最近はずっともたついています。
デスクトップ版でハイライトを少ししてくれたらいいのに……。これって著作権の問題とかでできないのかな、うーん。
モバイルアプリだけでなく、デスクトップアプリにもぜひもう少し気を配ってほしいです.. うう
長い間リディブックスのデスクトップアプリを使ってきた立場からすると、この決定は徹底してモバイルだけを念頭に置いたものではないかという残念さがあります。私だけではなく、デスクトップアプリを使っている人は十人いれば十人が継続的なバグに悩まされていて……(昔のQtベースのアプリよりもっとひどい)
周りでデスクトップアプリの問題についての不満を本当によく耳にしました..
私も直接開発する立場ではありませんが、自分が触れているコミュニティでFlutter礼賛を見て会社のアプリ開発者の方に話したところ、Reactのほうをより気に入っているようでした。裾野や採用市場などがより良いとおっしゃっていましたし。ほかの方の考えも聞いてみたいですね。
ネイティブがものすごい速度で進化しているので、RNがその速度についていけるかが鍵ですね
この質問について、Flutterは比較的どうでしょうか?
同様にAndroidは大丈夫そうですが、iOSに追随できるかは分かりませんね
統合によって生じるエントロピーのコストを見過ごしてはいけないと思います。
React Nativeで2〜3年前に開発してローンチして…
個人的には長所より短所のほうが多いと思っていて…
https://m.blog.naver.com/PostView.naver/…
あまり関心を持たなくなっていたのですが…人気は相変わらずですね。