6年前の「未来」から、Reactの5文字が消えた
Shopifyが、2020年に「未来」と宣言したReact Nativeをやめ、アプリをiPhone用とAndroid用に別々に作り直すと発表した。理由は、AIのおかげで同じ機能を2回作る手間が軽くなったから。
ひかり:ことね先輩っ、英語の見出し、辞書なしで読めましたっ! 「ネイティブ・イズ・ナウ・ザ・フューチャー」っ! ……つまりこれからは、英語がネイティブ並みにしゃべれる人の時代ってことですよねっ!?
みずき:…ネイティブ違い。それ、スマホアプリの話。
ことね:……みずきの言う通りね。スマホのアプリは、iPhone用ならSwift、Android用ならKotlinと、それぞれのOSに合わせた言語で作るのがいちばん素直なやり方なの。これを「ネイティブ」と呼ぶのよ。ただ、それだと同じアプリを2回作ることになるでしょう? そこで、当時のFacebook、いまのMetaが2015年に公開したReact Nativeを使うと、WebでおなじみのReactの書き方で1回書くだけで、両方に出せるの。……ネットショップの仕組みを貸しているShopify——先日この部室で話した、Tailwindを買った会社ね——は、2020年の1月に「React Nativeこそ、Shopifyのモバイルの未来だ」という記事を出して、5年かけてアプリを全部そちらへ移したわ。2025年の1月にも、エンジニアリング・ディレクターのムスタファ・アリさんが「React Nativeの未来は明るい」と書いている。……そのアリさんが、買収の発表の翌日に出した記事の題が、これ。「ネイティブこそ、いまShopifyのモバイルの未来だ」。
みずき:…題名から「React」を消して、「now」を足しただけ。……6年かけて。
ひかり:えーっ、でもでもっ! 2回作るのが大変だから1回にまとめたんですよねっ!? なんでわざわざ、大変なほうに戻っちゃうんですかーっ!?
ことね:そこが、この話の芯なの。2020年の決め手は「同じものを2回作るのは高くつく」だったでしょう。その前提を、AIが変えたと書いてあるのよ。Shopifyは2021年——ChatGPTが出る1年前——からAIを使ってソフトを作っていて、去年の終わりには「2回作ることは、本当に2倍の仕事なのか」を疑えるくらいになった。試しに大きなアプリの中心部分をSwiftとKotlinで作り直させたら、iPhone版を見本にAndroid版を書くのも、その逆も、こなしてしまったの。……ただ、ここは正直に書いてあってね。「2つの環境で作って保守する手間は、消えていない」。AIが実装や翻訳、テスト、レビューをかなり引き受けるようになって、それが決め手ではなくなっただけ、と。それに、React Nativeが遅いから離れるわけでもないの。「React Nativeのアプリは速くできる。うちのは速い」とまで書いているわ。
みずき:…で、AIに「これ全部Swiftにして」って投げたら、終わり?
ことね:それはうまくいかない、と本人たちが書いているわ。一気に丸ごと移させると、「出荷できない、手に負えない量のコード」ができあがるだけ、って。だからHelixという仕組みを作ったそうよ。1画面を小さな区切りに分けて、区切りごとにテストを通す、動いている元のアプリと見た目を比べる、わざと粗を探すコードレビューを2つくぐる、最後に人間がうなずく。そこまで通らないと、次の区切りへ進めないの。……先に移したShopアプリは、試作からストアに出すまで12週間。アプリが落ちるセッションは10分の1になって、Android版は109メガバイト軽くなったそうよ。画面が300以上あるいちばん大きなShopifyアプリも、今年のうちに出す予定ですって。……Hacker Newsでは800ポイントを超えていて、「流行の車輪が、また一回りした」という声と、「コードの共通化を言い出す経営陣と、キャリアじゅう戦ってきたiOSエンジニアとして、とても報われた気分だ」という声が並んでいたわ。
ひなた:ふぁ〜……あの。ひなたのおうちのカレーは、ずっとひとつのお鍋で作って、最後におとうさんのお皿にだけ、辛いのを足していたのです。おかあさんが「お鍋を2つ洗うのはいやなの」って。……でも食洗機が来てから、甘口と辛口を別々のお鍋で作るようになったのです。お鍋は2つのままなのですけど、どっちも前より、おいしいのです。
まとめ:アプリはまた、iPhone用とAndroid用の2つに戻る。2回ぶんの手間を引き受けるのは、もう人間だけではない。