Shopify、React Nativeをやめネイティブへ回帰 海外で議論に
姉妹サイトの新着
ECプラットフォームのShopifyが公式ブログで、自社アプリ「Shop」の開発基盤をReact Nativeからネイティブ(Swift/Kotlin)へ戻したと発表した。この件がHacker Newsで取り上げられ、多くのエンジニアが反応した。焦点になったのは、コーディングエージェント(LLM)の普及によって、iOSとAndroidそれぞれのネイティブコードを別々に書いて保守するコストが下がったのではないか、という見方だ。一方で、大規模な書き直しには失敗のリスクもつきものだとして、過去にDiggが行った刷新を引き合いに、成功と結論づけるのはまだ早いという慎重な声も上がった。Kotlin MultiplatformやRust製の共通コアをネイティブ双方から呼び出す構成など、代替のアプローチも話題になった。
Shopifyが、React Nativeからネイティブへと回帰する
出典: shopify.engineering / 元記事はこちら
それは文化の違いの方が大きいと思う。例えばdiffs.comはReact製だけど、体感でほぼ一瞬で動く
技術的な観点からの移行の顛末が知りたいなら、それはもう公開されている(shopify.engineering/shop-app-migration)。内容はかなりしっかりしているから、半年やそこらで状況が変わるとは思えない
たいていのアプリは大したことをしていない
単なる流行とは思わない。React Nativeは昔からパフォーマンスとUXに多少のペナルティがあったが、それでも開発速度が上がる方が割に合うと多くの人が判断していた。LLMがそのトレードオフを変えた以上、各社が過去の判断を見直さないのはむしろ怠慢だろう
レコードみたいにぐるぐる回されてる気分だよ
つまり3つの言語でコードをレビューして保守しろってこと? トークンの完全な無駄遣いに聞こえるし、最悪の場合は技術的負債を3倍の速さで積み上げるだけだ
この手の評価もまだ早計だと思う。新しいアプリが実際に展開されてユーザーが満足するまで待った方がいい。おそらくうまくいくとは思うが、これだけの大規模な書き直しは脱線するリスクも十分あるから、まだ声高に成功だと言うのは早い。Diggのエンジニアたちも、自分たちの書き直しには誇りを持っていたはずだ
何かをするにもリスクはあるし、何もしないことにもリスクはある。少し話がそれるけど、組織というものは必要以上に「何かをする」方に偏りがちだという印象がある
それでもAIはソフトウェアエンジニアの仕事を奪っていないと言う人がいるんだよな…
これはAI以前だったらまずやらなかったタイプのプロジェクトだろう
これはものすごく退屈な作業だ。目新しさは何もなく、全部書き直してもまた1年後に書き直される運命。LLM向きの仕事であって、人間がやるべきことじゃない
一晩で移植できた。ただ、ゼロから作るとなるとかなり手取り足取りやらないと無理だと思う
他サイトの新着
自分も同じ結論に至った。エージェント型のワークフローのおかげで、2つのネイティブコードベースを同期させ続ける手間が大きく下がった
こちらも同じ結論。今好んで使っている構成は、iOSとAndroidはネイティブにして、共通のコア部分をRustで書きuniffi経由で公開するというもの
自社アプリに含まれる独自技術が、学習データに吸い上げられても構わないということなのか?
他の人も言っている通り、価値があるのはコードそのものじゃない。それに今はLLMプロバイダーにも他の選択肢がある
ほとんどの会社やアプリの価値は顧客との関係にある。つまり価値があるのはコードじゃなくてデータベースの方だ
これから1年で、大企業が同じことをするケースをたくさん見ることになると思う
むしろ、もっと早く増えていないことの方が意外だ。LLMのおかげで複数のネイティブアプリを保守するのが急に現実的になった。この流れがElectronのようなものを置き換え始めるのを見てみたい
以前勤めていた会社では、iOSとAndroidのネイティブ版を作って保守するために専任のSwift/Javaエンジニアを雇っていた(既存のWebアプリの機能を移植するような仕事が中心だった)。実際にそうしていた。でももう今はそうじゃない
それはかなり珍しいケースだと思う。たいていの会社は代わりに互換レイヤーを使うものだ
その前提はかなり古い。App Storeの審査時間はここ数年、たいてい24時間以内で終わっている。それにKMP(Kotlin Multiplatform)のおかげで、ネイティブの殻にWebViewを押し込むような、最悪のユーザー体験を強いるやり方に頼らなくても、クロスプラットフォームが現実的な選択肢になっている
KMPを使うには、チームがKotlinに慣れていることが前提になるんじゃないか?
この話題の背景と論点
React Nativeは開発速度を優先する代わりに、パフォーマンスやUXで多少の妥協を伴う、というのが従来からの前提だった。今回のスレで主流だったのは、コーディングエージェント(LLMによる自動化)の普及で、iOS/Androidそれぞれにネイティブコードを書いて維持するコストが下がった、という見方だ。ただし、こうした大規模書き換えは短期的に「うまくいった」ように見えても、半年〜1年後に問題が表面化することがあり(Diggの例が引き合いに出された)、現時点で成功か失敗かを判断するのは早いという慎重論も根強い。React Nativeの代替としてKotlin MultiplatformやRust+UniFFIによる共通コア方式も候補に挙がったが、言語やチーム体制の面でのコストが別途かかる点も指摘されている。読者が注意すべきは、この移行が「AIがReact Native自体を時代遅れにした」という単純な話ではなく、開発コストの構造が変わったことで各社が既存の技術選定を再検討している、という文脈で語られている点だ。
※本記事は5ch(Hacker News)スレッド「Shopify moves back to Native from React Native」より抜粋・要約して構成しています。






まだコメントはありません。