Users • React Native • Development • December 4, 2025 • 6 minutes read • Dan Kelly
概要
MTAはExpoを活用して、迅速なOTAアップデート、信頼できるビルド、少数精鋭のチームで2つの主要な交通アプリを運用し、350K+のデイリーユーザーに対応しています。アプリが止まると地下鉄では混乱が起き、車掌がチケットを確認できなかったり、乗客が移動計画を立てられなかったりします。ソフトウェアが交通システムの玄関口である以上、人々を待たせるわけにはいきません。だからこそ、ExpoによるOver-the-Air (OTA) 更新がMTAのモバイル戦略の基盤になっています。
MTAモバイルチームについて
MTAのデジタルサービスチームは20名規模で、世界最大級の交通機関の中でスタートアップのように機能しています。担当は次の通りです:
- 駅構内のリアルタイム表示
- 2つのパブリック向けモバイルアプリ(両方ともExpoで構築)
- 公共向けウェブサイト
- Radarのような社内向けの便利なツール
モバイルエンジニアリングチームは、24時間365日完璧に機能することが期待される350Kのデイリーアクティブユーザーを支えるには小規模です。チーム構成は以下のとおりです:
- エンジニア 15名(バックエンド/フロントエンド含む)
- PM 2名
- データスペシャリスト 1名
- デザイナー 1名
2つのExpoアプリ
デジタルサービスチームはExpoで2つの異なるアプリを作っています。一つは市内のバスと地下鉄利用者向け、もう一つは市外へ向かう利用者向けです。両アプリともApp StoreとPlay Storeに公開されています。
- TrainTime: Metro-NorthとLong Island Rail Roadの利用者向け。特定の列車の乗車計画、チケット購入、車掌への表示などが可能。2022年にExpoで構築され、200K件以上のレビューで4.9-starの高評価を誇ります。
- MTA Subway & Bus App: 現在App Storeにあるバージョンは既存チームが引き継いだものでExpo製ではありません。しかし、2026年Q1にローンチ予定の新バージョンはExpoで構築されます。地下鉄・バス利用者向けの体験を全面的に見直したもので、チームは新しいExpo版を公開することを非常に楽しみにしています。
なぜMTAがExpoを選んだか
デジタルサービスチームのリーダーであるWill Fisherは、Expoとの付き合いが2017年頃の初期React Native時代にまで遡ります。当時、ExpoのOTA更新機能が(彼の見解では)Expoを使う主な理由であり、現在でもその点が最大の利点だと言います。
モバイル開発を始めるにあたり、彼らは代替案を検討しませんでした。完全なネイティブ開発は選択肢になり得ませんでした。少人数のチームでiOSとAndroidのコードベースを別々に保守することは速度を著しく落とします。React Nativeは必要なカバレッジを提供し、Expoのツール群が導入を容易にしました。Flutterは真剣に検討されませんでした—React Nativeのエコシステムがより成熟しており、Expoのツール群が決め手になったからです。エンジニアの人数を増やさずにビジネスの要求を満たせる点も大きなメリットでした。
何より重要だったのは、本番で致命的なバグが発生した際に「数分で」修正できることです。Willは次のように述べています:
ExpoはOTAを実現するための明白なプラットフォームです。どのプレイヤーを選ぶか悩む余地はありませんでした。ExpoはOTAのためのプレイヤーです。
reactnative.devにアクセスすれば、ExpoがReact Nativeアプリ構築のデフォルトプラットフォームとして扱われていることがわかります。MTAチームはそのデフォルトに非常に満足しており、Expoチームのツールとサービスは洗練されていて信頼に足ると評価しています。過去5年以上にわたり、ExpoはMTAから大きな信頼を得てきました。
MTAがExpoを使う方法
現在、MTAは主に3つの方法でExpoを利用しています:
- EAS Update:経路検索やチケット購入といったコアフローのホットフィックスに限定して使用。重大な障害が発生した際に迅速に修正できるため、Willや経営陣の安心につながっています。
- EAS Build:CI/CDのバックボーン。3週間ごとにプロダクションビルドを生成します。コード署名やプッシュ通知キーの設定などの複雑さを大幅に軽減してくれる点が好評です。
- Expoライブラリ:必要なライブラリが存在する場合、まずはExpoのライブラリを採用します。主に依存しているライブラリは以下の通りです:
expo-location
expo-image
expo-calendar
expo-sentry
リリースプロセス
リリースプロセスはシンプルです:
Build → Deploy → Beta/Production
コアフローに関しては手動QAを行っています(自動のビジュアルテストは彼らのニーズには脆弱すぎるため使っていません)。
重大なバグが発生した場合、最初のユーザー報告から90秒以内に問題を特定し、パッチを当ててOTAでデプロイできます。これによりNYCでの混乱を抑えられています。
Expoで構築することの影響
交通システムの一部であるアプリは、ダウンタイムが発生すると即座に影響が出ます。コアフローが壊れると、90秒以内に現場スタッフや乗客から報告が入ります。OTAアップデートにより、彼らはその混乱が広がる前に問題を解決できます。この方針により、App Storeの審査による遅延を待たずに重大なバグからのリカバリが可能になりました。
今後の予定
2026年Q1に、新しいSubway & BusアプリをExpoでローンチする予定です。これにより、最も多くの利用者を抱えるアプリにも上記の利点がもたらされます。ローンチ後は、より高速なイテレーション、容易なオンボーディング、システム全体での一貫性向上が期待されています。
Willの言葉を借りれば、"OTA updates are a safety net we can't operate without" — 彼らにとってOTAは創業時から変わらない価値であり、Expoがそれを最も優れた形で提供しています。将来的には、リリースパイプラインのアップグレードにWorkflowsを、API RoutesのホスティングにHostingを試験的に導入する予定です。
募集
もしMTAでこれら2つのExpoアプリに携わりたいなら朗報です。現在バックエンドエンジニアとUXデザイナーを募集しています!