OpenAIExpo2025/11/11 15:00

How Phantom ships a secure, high-performance crypto wallet with Expo

要点だけを先に読めるように短く再構成したセクションです。

元記事

Quick Digest

要約

要点だけを先に読めるように短く再構成したセクションです。

openaijamodel: gpt-5-mini-2025-08-07

PhantomがExpoで安全かつ高性能なウォレットを週次で提供する仕組み

Key Points

  • 週次リリース体制
  • EASでCI/CD最適化
  • 全員がモバイルへ貢献可能

Summary

PhantomはExpoとReact Nativeをコアに、プラットフォームチームが基盤を維持し、プロダクトエンジニア全員がモバイル機能を直接実装する水平的な開発体制で高性能な暗号資産ウォレットを運用しています。モノレポ、Expo Dev Client、EAS(Build/Submit/Update)を組み合わせることで、週次リリース、堅牢なセキュリティ、クロスプラットフォームの一貫性を実現しています。

Key Points

  • アーキテクチャとチーム運用

    • モノレポ構成でブラウザ拡張や他プラットフォームとロジック・UIを共有。
    • プラットフォームチームが基盤(Expo SDK・モジュール)を管理し、フルスタックのプロダクトエンジニアが機能を実装。
  • リリースとCI/CD

    • GitHub ActionsからEAS Buildを起点に開発フローを自動化し、EAS Submitで本番へ送信。
    • 開発用Dev Clientは週次ビルドでSlackにQRを流して容易に配布。
    • MaestroでE2Eを実行し、EAS UpdateとExpo Fingerprintで不要なフルビルドを回避してテスト時間を短縮(約15分削減)。
  • 開発体験とネイティブ連携

    • Expo Dev Clientでカスタムネイティブモジュールを扱いつつ、日常的にはExpoモジュールAPIでネイティブに触らず実装可能。
    • FlashListやSecure Store等でパフォーマンスとセキュリティを確保。必要に応じてWebViewパッチやネイティブモジュールを導入。
  • 外部展開と再利用性

    • PhantomのWallet SDKで他アプリに安全なウォレット機能を提供し、エコシステムを拡張。

Practical advice for engineers

  • ExpoモジュールAPIとDev Clientを初期設定に組み込み、日常の開発でネイティブを触らないワークフローを確立する。
  • EAS Updateを利用してテスト・サンドボックス環境に差分をプッシュし、フルビルドを減らしてE2Eサイクルを短縮する。
  • CIでのビルド配信(SlackのQR等)を自動化してチーム内の検証を高速化する。
  • セキュリティ要件が高い箇所はネイティブモジュールで補強しつつ、基本はExpoで一貫させる。

結論

少人数の専門チームで基盤を固め、ExpoとEASの組み合わせでプロダクトエンジニアを活かすことで、Phantomは高性能かつ安全なモバイルウォレットを週次で継続的に提供しています。

Full Translation

翻訳

原文の流れを保ったまま読める翻訳セクションです。

openaijamodel: gpt-5-mini-2025-08-07

PhantomがExpoで安全かつ高性能な暗号ウォレットを提供する方法

概要

PhantomはExpoを使って、毎週リリースされる安全で高性能な暗号ウォレットを構築しています。大規模な専任モバイルチームに依存するのではなく、基盤を保守するプラットフォームチームと、モバイル体験に直接貢献する複数のプロダクトチームという構成を採り、Expoのアーキテクチャとエコシステムがそのモデルを可能にしています。

チーム構造とワークフロー

  • モバイルアプリはReact NativeExpoでモノレポに含まれており、ブラウザ拡張など他のプロダクトと並存し、重要なビジネスロジックやUIを共有しています。
  • 専任の巨大なモバイルチームはなく、モバイル基盤は経験豊富なReact Nativeエンジニア数名がいるプラットフォームチームが維持管理しています。
  • 機能開発は社内のフルスタックなプロダクトエンジニアが担当し、横断的でオープンなカルチャによってほぼ全員がモバイルに貢献できます。

「React Nativeのバックグラウンドを持つエンジニアは多くないが、ほぼ全員がモバイルアプリに貢献できる。それは我々が作った基盤とExpoの力の証拠だ。」

— Jakub Adamczyk, Software Engineer at Phantom

スタック(主な採用技術)

  • Expo SDK
  • React Query, TypeScript, Signalium(オープンソースのsignalsベースのステート管理ライブラリ)
  • FlashList(高性能リスト表示用)
  • Expoモジュール(Secure StoreWebBrowser、カスタムモジュール/プラグインなど)
  • モノレポ構成で、他プラットフォームとロジックやUIを共有

Expo Dev Clientの導入

Expo Dev Clientを導入することでExpo Goの制限を超え、カスタムネイティブモジュールを有効化しつつ、エンジニア間で一貫したシンプルな開発ワークフローを維持しています。

EASを使った週次リリースワークフロー

PhantomはCI/CDの中核にEASEAS BuildEAS Submit)を置いています。

ワークフローの要点:

  • エンジニアはPRを開き、GitHub ActionsからEAS Buildをトリガー
  • 開発用デバイス向けのdev clientビルドは週次で作成され、専用のSlackチャンネルにリンクとQRコード付きで投稿され、簡単にインストールできる
  • 本番リリースは週次のペースで、EAS Submit経由でビルドを提出
  • エンドツーエンドテストにはMaestroを使用

テスト高速化の工夫:

  • EAS UpdateExpo Fingerprintを組み合わせ、E2Eテスト用のビルドは必要なときだけ作るようにしている

「サンドボックス環境にEAS Updateで更新をプッシュすることで、60分のテスト実行時間から約15分を削ることができた。テストの反復速度にとって大きな勝利だ。」

— Dan Tamas, Software Engineer at Phantom

開発者向けツールとWallet SDK

Phantomは自社アプリの構築にとどまらず、他の開発者が自分のExpoReact Nativeアプリに暗号機能を統合できるようにするWallet SDKを公開しました。これにより、セキュアでユーザーフレンドリーな暗号機能を簡単に組み込めるようになり、Phantomは自社製品を超えて暗号の普及を加速しています。

また、Embedded Wallet製品のためにExpoを他の暗号アプリに持ち込むSDKや、Solana Mobile Wallet Adapterをサポートするネイティブモジュール、セキュリティのためのカスタムWebViewパッチなども開発しています。

なぜ暗号アプリはExpoで構築されるか

  • 今日、ほとんどのモバイル暗号ウォレットはExpo + React Nativeで作られています。
  • このスタックは数百万人のユーザーを支えつつ、高いUX基準を維持できるようにスケールします。

鍵となる制約:

  • セキュリティが最重要
  • エンジニアチームはしばしばスリムで機敏
  • クロスプラットフォームでの一貫性が必須

Expoはこれらの制約に合致します。Phantomは軽量で迅速に動きながら、セキュアで高速、見た目も優れたプロダクトを提供できています。必要に応じてネイティブコードも利用しており、細部の正確さを担保するためにカスタムWebViewパッチやネイティブモジュールを作成しています。Expo Dev ClientEASによって、どのエンジニアでも貢献しやすい、速くて安全なセットアップが実現されています。

「かつては“速く始めたいならExpoを使え、だが後でejectして純粋なReactNativeに移行せよ”と言っていた。今はもう: Expoを使え。以上だ。」

— Dan Tamas, Software Engineer at Phantom

他チームへのアドバイス

Phantomのチームは横断的に動き、エンジニアは所有権を持ち自立して素早く動くことが期待されています。

「この会社はプロダクトマネージャーの指示で動くのではなく、エンジニアによって運営されている。」

— Dan Tamas, Software Engineer at Phantom

始めるチームへの具体的なアドバイス:

  • エコシステムを活用する: Expoモジュール、dev clients、インフラは本番運用に耐えうる
  • Expo Modules APIを使う: 日常的にネイティブコードに触れずに出荷でき、プロダクトに集中できる
  • シンプルに保つ: Phantomのセットアップはエキゾチックではなく、実用的で効率的

結論

Phantomは巨大なチームや深いネイティブ専門知識がなくても、世界有数の暗号ウォレットを作れることを示しています。彼らは速く動き、セキュリティを維持し、Expoで毎週出荷しています。