iOSとAndroidのアプリを別々に作っても一つのテストで動作を揃えるReflex設計の検証(zenn.dev)
書く言語: 韓国語書かれた言語で読む
わかりやすい要約
- ReflexはShopifyがReact NativeアプリをSwiftとKotlinのネイティブに移行する中で作った設計です。画面とアプリの計算ロジックを分離しているため、シミュレーターなしでロジックを実行できます。ライブラリではなく解説記事として公開されました。
- コードは共有せず、TypeScriptで書いた一つの動作テストを両プラットフォームで同じように実行します。片方だけ通ったPRはマージできません。Shopifyは、1,700個を超えるテストが両方のCIで約4分かかると述べました。
- テスト中に外部リクエストが一度でも出ると、アプリがエラーを握りつぶしても失敗として扱われます。筆者(テラノベルの開発者)は天気アプリを自作して21個のテストを実行し、iOSは48ms、Androidは270ms(JVMの起動を含む)かかったと書いています。
- 共有テストは二つのプラットフォームの違いも明らかにしました。数値を文字列で送ると、SwiftはエラーになりKotlinは受け入れたため、Androidだけが失敗し、筆者がKotlin側を修正しました。
編集部の意見
O: React Nativeアプリをネイティブに移行し始めたモバイルリードが、ログインのような小さな機能一つのTypeScriptテストをiOSとAndroidの両方で動かしてみることを提案しています。
X: 筆者の21個のテストは自作の天気アプリが基準で、Shopifyの1,700個と約4分は会社が発表した数値なので、うちのアプリの規模での時間は別に測る必要があります。
書く言語: 韓国語
掲載元
Zenn ↗ / 掲載記事
似たような経験はありますか?そのときどうしたか、一言二言で教えてください。製品に詳しくなくても大丈夫です。