ClaudeExpo2025/12/09 16:45

How Expo streamlined Hipcamp’s native and over-the-air update processes

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

元記事

Quick Digest

要約

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

claudejamodel: claude-sonnet-4-20250514

HipcampがExpoでネイティブビルドとOTAアップデートプロセスを効率化

Key Points

  • ビルド時間を60分から10分に短縮(6倍高速化)
  • expo-fingerprintでOTA可能性を自動判定
  • Web並みのデプロイ頻度をモバイルアプリで実現

Summary

HipcampがApp CenterからExpoに移行し、ネイティブビルドを6倍高速化、信頼性の高いOTAアップデート、Web並みのリリース頻度を実現した事例。

Key Points

  • ビルド速度の大幅改善: App Centerの60分から10分へと6倍高速化
  • OTAアップデートの活用: アプリストア審査を待たずに即座に修正・機能追加が可能
  • 自動化されたワークフロー: カスタムyarnコマンドでビルド、TestFlight提出、Slack通知を自動化
  • expo-fingerprintによるOTA判定: ネイティブ依存関係の変更を自動検出してOTA可能性を判定
  • リリースブランチ戦略: 本番状態を表すリリースブランチでOTA対象変更を管理
  • 開発チーム全体への影響: エンジニア、プロダクトマネージャー、デザイナーの作業効率が向上

Full Translation

翻訳

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

claudejamodel: claude-sonnet-4-20250514

ExpoがHipcampのネイティブビルドとOTAアップデートプロセスを効率化した方法

ExpoがHipcampのネイティブビルドとOTAアップデートプロセスを効率化した方法

Users • React Native • Product • December 9, 2025 • 7分で読める

ゲスト著者: Armaiz Adenwala、Tom Podlipni

HipcampがApp CenterをExpoに置き換えることで、ネイティブビルドを6倍高速化し、信頼性の高いOTAアップデートとWebのようなリリース頻度をモバイルアプリで実現した方法をご紹介します。

この記事は、HipcampのソフトウェアエンジニアであるArmaiz AdenwalaとTom Podlipniによるゲスト投稿です。Armaizはモバイルアプリエクスペリエンスを担当し、Tomはエンジニアリングチーム全体のCI/CDと開発ツールを担当しています。


長年にわたり、HipcampはビルドとリリースにApp Centerを使用していました。MicrosoftがApp Centerの終了を発表したとき、ネイティブビルドとOTA(Over-The-Air)アップデートを処理できる代替手段が必要でした。

私たちの要件はシンプルでした:

  • iOSとAndroid向けの高速で信頼性の高いネイティブビルド
  • シームレスなOTAアップデート機能
  • 既存のワークフローとの簡単な統合

様々な選択肢を評価した結果、Expoとそのクラウドサービスを選択しました。すべての要件を満たすだけでなく、リリースプロセス全体を効率化する機会も提供してくれました。

Hipcampについて

Hipcampは、国立公園からブルーベリー農園まで、キャンプサイトを発見・予約するNo.1アプリです。Hipcampは、静かなプライベートスポット、象徴的な公有地、設備の整ったキャンプ場など、世界中のキャンプオプションを一つのアプリにまとめ、あなたがキャンプしたい場所すべてを提供します。

今すぐダウンロード

Expo Build:完全に最適化されたプロセス

最大の成果の一つはビルド速度でした。App Centerのビルドは約60分かかり、iOSでは頻繁にタイムアウトが発生し、信頼性に欠けていました。ExpoのBuildサービスは一貫して10分のビルドを提供し、6倍の改善により開発サイクルが大幅に加速されました。

ビルドプロセスの自動化

チームにとってビルドをさらに簡単にするため、ExpoのBuildワークフローのトリガーを処理するカスタムyarnコマンドを作成しました。

スクリプトは以下を要求します:

  • 環境(staging、productionなど)
  • ビルドタイプ(QA vs リリース候補)
  • ビルドを説明する人間が読める形式のメッセージ

事前チェックが通過すると、ワークフローはiOSとAndroidをビルドし、iOSをTestFlightに提出し、成功通知を送信します。

Github Actionsなどの他のビルド代替手段とは異なり、このワークフローは非常に簡単に作成できました。Expoのサービスはモバイルに特化しているため、ランナーは常に現在のSDKに最適化されており、ビルドの複雑さの大部分が抽象化されています。

# .eas/workflows/builds.yml
build_android:
  name: Build Android
  type: build
  params:
    platform: android

build_ios:
  name: Build iOS
  type: build
  params:
    platform: ios

submit_ios_build:
  name: Submit iOS Build
  needs: [build_ios]
  type: submit

send_notification:
  name: Send Build Notification
  needs: [build_android, build_ios, submit_ios_build]
  steps:
    - name: Send Slack message
      run: |
        curl -X POST -H "Content-type: application/json" \
          --data '{...}' # Slack Webhook Call

ビルドが完了すると、テストに必要なすべての情報を含む通知をSlackチャンネルに自動投稿します:

  • TestFlightビルド番号(iOS)
  • 直接APKダウンロードリンク(Android)
  • その特定のビルド用に事前フィルタリングされたSentryエラー監視リンク
  • チケットリアクションを使用してビルド用のバグチケットを自動作成するSlack + Asana統合

このワークフローは私たちのプロセスを変革しました。組織内の誰でもエンジニアリングサポートなしでビルドをレビューしフィードバックを提供でき、特定のチームはQAと承認のための保留中の機能のフィードを維持できます。

Expo Updates - 月次リリースから日次リリースへ

OTAアップデートは、私たちのモバイル開発ワークフローの基盤となっています。アプリストアのレビューには数日かかることがありますが、OTAアップデートにより、修正や新機能を即座に配信でき、チームがWebを本番環境にデプロイするのと同じように行えます。

以前は、AppCenterのCodePushを控えめに使用していました。日常的なリリースに依存するには信頼性が低すぎたからです。ExpoのOTA Updateサービスがそれを変えました。安定しており、予測可能で、信頼しやすいものです。これにより、より頻繁にリリースし、フィードバックにより迅速に対応し、ストア承認を待つことなくアプリを改善し続けることができます。

リリースブランチ戦略

現在の本番状態を表す専用のリリースブランチを維持しています:

  • 各ネイティブリリースに対して新しいリリースブランチを作成
  • mainブランチに変更をマージした後、CI/CDパイプラインが自動的にOTA可能かどうかを判定
  • 適格な変更はリリースブランチにcherry-pickされ、Expo Updates経由でデプロイ

OTA適格性検出

expo-fingerprintを使用してOTA互換の変更を自動検出します。このツールはネイティブ依存関係の詳細分析を実行し、一意のフィンガープリントを生成します。cherry-pickされたコミットがリリースブランチと同じフィンガープリントを持つ場合、ネイティブ変更がないことを意味し、安全にOTAアップデートできます。

この自動化は重要でした:OTA適格性を判定する際の手動チェックと潜在的な人的エラーを排除します。

OTAプロセス概要

パイプラインがOTAアップデートを承認すると、カスタムスクリプトが:

  • ExpoへのOTAをトリガー
  • Sentryソースマップをアップロードし、アップデートIDを使用して新しいリリースを作成
  • さらに、モバイルアプリは自動的にsentryを最新のExpo Update IDを指すように設定
  • Expo UpdateダッシュボードとこのリリースのSentry issuesへの直接リンクでGithubリリースとタグを更新

ExpoによるOTAアップデートの影響

このワークフローは、モバイル機能のリリース方法を変革しました:

  • ネイティブリリースの削減:アプリストア提出の回数を大幅に削減
  • Webのようなデプロイ頻度:モバイルリリースがWebリリースと同じペースで実行
  • より迅速なインシデント対応:壊れたデプロイメントを迅速に特定してロールバック可能
  • ストレス軽減:本番バグを修正するための高圧的な緊急ネイティブリリースが稀に

結論

Expoの採用は、チーム全体に波及効果をもたらしました:

  • エンジニアは、ビルドの問題のデバッグや遅いビルドの完了待ちに費やす時間が減少
  • プロダクトマネージャーは、機能が即座に本番環境にデプロイされるのを見ることで、より迅速な反復とフィードバックループが可能に
  • デザイナーは、エンジニアリングとの調整を常に必要とすることなく、自分のデバイスで機能を非同期でレビュー可能
  • オンコールエンジニアは、緊急アプリストアリリースのストレスなしに本番バグに迅速に対処可能

Expoの信頼性、速度、柔軟性の組み合わせにより、Hipcampにとって明確な選択となりました。EAS Buildsはビルド時間を大幅に短縮し、Expo UpdatesはモバイルアプリでWebのようなデプロイ速度を実現しました。

React NativeプロジェクトでExpoを検討している場合、私たちは自信を持って言えます:正しい選択をしました。

より多くの人々を外に連れ出すお手伝いをしませんか?Hipcampで私たちと一緒に働きましょう