PhantomがExpoで安全で高性能な暗号通貨ウォレットを提供する方法
Users • React Native • November 11, 2025 • 7分で読める
Dan Kelly Marketing
Phantomは、Expoを使用して世界トップクラスの暗号通貨ウォレットの1つを構築し、毎週リリースを行い、セキュリティを維持し、すべてのエンジニアがモバイル開発に貢献できるよう支援しています。
Phantomは世界で最も人気のある暗号通貨ウォレットの1つです。美しくデザインされた高性能なアプリの背後には、大規模なモバイルエンジニアチームが必要だと思われるかもしれません。しかし、Phantomは異なるアプローチを取っています。大きな専任モバイルチームに依存する代わりに、Phantomには基盤を維持するプラットフォームチームと、モバイル体験に直接貢献する多くのプロダクトチームがあります。
Expoがこのモデルを可能にしています。そのアーキテクチャとエコシステムにより、Phantomはアプリを高速、安全、一貫性を保ちながら、会社全体のプロダクトエンジニアがiOSとAndroidの両方で自信を持って構築できるよう支援しています。
このケーススタディでは、Phantomがエンジニアリングチームをどのように構成し、EASを使用してCI/CDを強化し、他のチームが暗号通貨の未来を構築できるよう支援し、なぜExpoがほぼすべての主要な暗号通貨ウォレットのデフォルトスタックになったのかを探ります。
フルスタックプロダクトエンジニアによって構築されたモバイルアプリ
PhantomはReact NativeとExpoを使用してモノレポで構築されています。モバイルアプリはブラウザ拡張機能などの他のプロダクトと並んで存在し、ビジネスロジックとUIの大部分を他のプラットフォームと共有しています。
Phantomには専任のモバイルチームはありません。代わりに、モバイルアプリの基盤はPhantomのプラットフォームチームの経験豊富なReact Nativeエンジニア数名によって維持されています。モバイルアプリの機能は、会社全体のフルスタックプロダクトエンジニアによって構築されています。
Phantomは会社として非常に水平的でオープンです。つまり、エンジニアは自分の中核的な責任に加えて、影響を与え価値を追加できると思う場所であればどこでも貢献することが奨励されています。
「React Nativeの経験を持つエンジニアはそれほど多くありませんが、Phantomのほぼすべてのエンジニアがモバイルアプリに貢献できています。これは私たちが構築した基盤とExpoの力の証です。」
— Jakub Adamczyk、Phantomソフトウェアエンジニア
Phantomのスタックには以下が含まれます:
- Expo SDK
- React Query、TypeScript、Signalium(彼らのオープンソースシグナルベース状態管理ライブラリ)
- 高性能リスト用のFlashList
- Secure StoreからWebBrowserまでのExpoモジュール、カスタムメイドモジュールとプラグイン
- Expo dev clientセットアップ
Expo Dev Clientにより、チームはExpo Goを超えて、カスタムネイティブモジュールを有効にしながら、エンジニア間で同じシンプルで一貫した開発ワークフローを維持できるようになりました。
EASによって支えられた週次リリース
Phantomは、コアリリースワークフローにEAS BuildとEAS Submitを使用しています:
- エンジニアがPRを開き、GitHub ActionsからEAS Buildをトリガー
- Dev clientビルドは週次ベースで構築され、簡単なインストール用のリンクとQRコードと共に専用のSlackチャンネルに投稿
- EAS Submit経由で送信されるビルドによる週次本番リリースサイクル
また、エンドツーエンドテストにMaestroを使用しています。テストを高速化するため、PhantomはEAS UpdateとExpo Fingerprintを巧妙に使用して、必要な場合のみe2eテスト用のアプリを構築しています。
「サンドボックス環境でEAS Updateを使用してアップデートをプッシュすることで、60分のテスト実行から約15分短縮しました。テストイテレーション速度の大きな勝利です。」
— Dan Tamas、Phantomソフトウェアエンジニア
他の人が暗号通貨アプリを構築できる開発者ツール
Phantomは単にExpoで独自のモバイルアプリを構築しているだけではありません。他の開発者がユーザーに暗号通貨を提供できるよう支援しています。チームは、他の開発者が独自のExpoとReact Nativeアプリに暗号通貨を直接統合できるwallet SDKを立ち上げました。
Expoがエンジニアが簡単に高品質なネイティブアプリを構築できるよう支援するのと同様に、PhantomのWallet SDKは安全でユーザーフレンドリーな暗号通貨機能の追加を同じように簡単にします。暗号通貨統合をシームレスでアクセシブルにすることで、Phantomは自社製品を超えてミッションを拡張し、安全で使いやすくすることで世界の暗号通貨採用を加速しています。
なぜ暗号通貨アプリがExpoで構築されるのか
ExpoとReact Nativeは暗号通貨ウォレットのデフォルトスタックになっています。今日、この分野のほぼすべてのモバイルウォレットがこの方法で構築されています。Phantomは、このスタックが最高のUX基準を維持しながら数百万のユーザーをサポートするためにどのようにスケールするかの最良の例の1つです。
「何をしているかを知っていれば、React NativeとExpoに精通した数名のエンジニアだけで高性能なアプリを作成できます。チームの残りは、React Nativeの基本的な理解だけでJavaScriptとReactに精通したエンジニアで構いません。」
— Jakub Adamczyk、Phantomソフトウェアエンジニア
暗号通貨アプリには、さまざまな業界に関連するいくつかの重要な制約があります:
- セキュリティが最重要
- エンジニアリングチームは多くの場合リーンでアジャイル
- クロスプラットフォームの一貫性が不可欠
Expoはこれらの制約に完璧に適合します。Phantomは、リーンを維持し迅速に動けるようにしながら、安全で高速で見栄えの良い製品を提供するためにExpoを使用しています。
Expoは、小さな詳細も正しく確実にするためにネイティブコードを使用することをPhantomが止めることはありません。セキュリティのためのカスタムWebViewパッチを構築し、Solana Mobile Wallet Adapterなどの機能をサポートするネイティブモジュールを作成し、さらにExpoを他の暗号通貨アプリにも提供するEmbedded Wallet製品用のSDKも作成しました。
Expo Dev ClientとEASにより、チームの任意のエンジニアが貢献しやすい、高速で安全で簡単なセットアップを作成しました。
「以前は人々に言っていました:高速に開始したい場合のみExpoを使用し、その後純粋なReactNativeにイジェクトしてください。今は単に言います:Expoを使用してください。以上。」
— Dan Tamas、Phantomソフトウェアエンジニア
他のチームへのアドバイス
Phantomのチームは水平的に働きます。エンジニアはオーナーシップを取り、独立して働き、迅速に動くことが期待されています。
「この会社はプロダクトマネージャーからの指導を受けたエンジニアによって運営されており、その逆ではありません。」
— Dan Tamas、Phantomソフトウェアエンジニア
Expoを始めるチームへの彼らのアドバイス:
- エコシステムを受け入れる:Expoモジュール、dev client、インフラストラクチャは本番環境対応
- Expo Modules APIを使用する:Expoは日常的にネイティブコードに触れることなく出荷でき、代わりに製品に集中できる
- シンプルに保つ:彼らのセットアップは特殊ではなく、実用的で効率的
Phantomは、世界最高の暗号通貨アプリの1つを構築するために巨大なチームや深いネイティブ専門知識が必要ないことの証明です。彼らはExpoで高速に動き、安全を保ち、毎週出荷しています。