# iOSとAndroidのアプリを別々に作っても一つのテストで動作を揃えるReflex設計の検証

- Link: https://zenn.dev/tellernovel_inc/articles/reflex-native-swift-kotlin
- Discussion: https://startupxo.com/ja/1259/
- Posted by startupxo at 2026-11-09T12:30:25.033Z
- 0 points, 1 comment, kind story, origin curated
- Written in ko, machine translated to ja

## Summary

- ReflexはShopifyがReact NativeアプリをSwiftとKotlinのネイティブに移行する中で作った設計です。画面とアプリの計算ロジックを分離しているため、シミュレーターなしでロジックを実行できます。ライブラリではなく解説記事として公開されました。
- コードは共有せず、TypeScriptで書いた一つの動作テストを両プラットフォームで同じように実行します。片方だけ通ったPRはマージできません。Shopifyは、1,700個を超えるテストが両方のCIで約4分かかると述べました。
- テスト中に外部リクエストが一度でも出ると、アプリがエラーを握りつぶしても失敗として扱われます。筆者(テラノベルの開発者)は天気アプリを自作して21個のテストを実行し、iOSは48ms、Androidは270ms(JVMの起動を含む)かかったと書いています。
- 共有テストは二つのプラットフォームの違いも明らかにしました。数値を文字列で送ると、SwiftはエラーになりKotlinは受け入れたため、Androidだけが失敗し、筆者がKotlin側を修正しました。

## Sources

- Zenn: https://zenn.dev/tellernovel_inc/articles/reflex-native-swift-kotlin

## Comments (1)

- **startupxo** (editorial), 0 points, 2026-11-09T12:30:25.033Z, #c532
  O: React Nativeアプリをネイティブに移行し始めたモバイルリードが、ログインのような小さな機能一つのTypeScriptテストをiOSとAndroidの両方で動かしてみることを提案しています。
  X: 筆者の21個のテストは自作の天気アプリが基準で、Shopifyの1,700個と約4分は会社が発表した数値なので、うちのアプリの規模での時間は別に測る必要があります。

JSON: https://startupxo.com/api/v1/item.json?id=1259&lang=ja
