ClaudeExpoDec 9, 2025, 4:45 PM

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

A condensed section focused on the key takeaways first.

Original Post

Quick Digest

Summary

A condensed section focused on the key takeaways first.

claudeenmodel: claude-sonnet-4-20250514

Hipcamp Migrates from App Center to Expo for 6x Faster Builds and Reliable OTA Updates

Key Points

  • 6x faster native builds (60min to 10min)
  • Reliable OTA updates with web-like deployment cadence
  • Automated build workflows with TestFlight integration

Summary

Hipcamp successfully migrated from Microsoft App Center to Expo's cloud services, achieving significant improvements in build performance and deployment velocity. The migration was driven by App Center's sunset announcement and resulted in 6x faster native builds and reliable over-the-air update capabilities.

Key Points

  • Build Performance: Reduced build times from 60 minutes to 10 minutes (6x improvement) with consistent reliability
  • Automated Workflow: Created custom yarn commands and EAS workflows for streamlined build processes with automatic TestFlight submission and Slack notifications
  • OTA Strategy: Implemented reliable over-the-air updates using Expo Updates, enabling web-like deployment cadence for mobile apps
  • Release Management: Established release branch strategy with automated OTA eligibility detection using expo-fingerprint
  • Team Impact: Reduced engineering overhead, enabled faster feature iteration, and eliminated high-pressure emergency releases

Technical Implementation

  • Uses EAS Build workflows for iOS/Android with automated submission pipeline
  • Leverages expo-fingerprint for automatic OTA compatibility detection
  • Integrates with Sentry for error monitoring and sourcemap uploads
  • Maintains dedicated release branches with automated cherry-picking for OTA-eligible changes

Full Translation

Translations

A translation section that keeps the flow of the original article.

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で私たちと一緒に働きましょう