メインコンテンツにジャンプ
チュートリアル

How to Keep Capgo Updates Lean and Fast

Capgoの実践的なCapgoガイド: デルタバンドルの活用、チャンネルベースのロールアウト、ネイティブベースラインの更新、PRプレビュー、直接アップデートのガードレール。

記事のクレジット

マーティン・ドナディュー

ライター

バレリア

レビュアー

ジョーダン

エディター

How to Keep Capgo Updates Lean and Fast

The best live update is the one your users barely notice.

通常、3つのことが必要です:

  1. ダウンロードサイズが小さい
  2. ロールアウトが制御されている
  3. エラーが発生した場合でも、リカバリが即時である

The same “keep OTA lean” advice that works in React Native land also applies to Capgo. The difference is that Capgo gives Capacitor teams a few extra levers: デルタアップデート, チャンネル, 自動ロールバック, バージョン対象, そして任意 端末間の暗号化.

あなたがそれらを一緒に使用すると、パッケージサイズが小さくなり、インストールが速くなり、運用上の混乱が少なくなります。

LeanはMAUが同じままでも重要です

1つの便利なCapgo-固有の詳細: Capgo MAUは、更新サービスに接続した月に1回のアクティブなデバイスの数です。30日以内に。

バンドルをスリムにすることは主にMAUのカウントを減らすためのトリックではありません。実際にユーザーとチームが感じる部分を改善するため重要です:

スピード、セキュリティ、運用の規律が、リニアなアップデートの真の意味です。

1. デルタアップデートをデフォルトに設定する

デフォルトで行うべき1つのことです。

Capgoの デルタアップデート バージョン間で変更されたファイルのみを送信し、フルウェブパッケージを再ダウンロードするのではなく。 これは定期的なOTAパフォーマンスの最大の単一の勝利です。

bun run build
bunx @capgo/cli@latest bundle upload --channel staging --delta

バージョン間で変更されたファイルのみを送信し、フルウェブバンドルを再ダウンロードするのではなく、全体のパフォーマンスを最大限に高めることができます。

bunx @capgo/cli@latest bundle upload --channel production --delta

QA パスが完了したら: --delta-only CI が厳密に維持したい場合は、使用する

bunx @capgo/cli@latest bundle upload --channel production --delta-only

Capgoを最新に保つ --delta-only 使用する

Capgoを使用している場合 directUpdate、「更新見つけた」と「アプリ再読み込み」までの時間がユーザーにわかりやすくなります。

2. アセットはアセットとして扱う

大きなアセットは、OTA バンドルの静的ファイルが肥大化する場所です。

いくつかの実用的なルールがあります。

  • 大きな画像やメディアをJavaScript内にインライン化しないでください。代わりに通常のアセットファイルを使用するのです。
  • 頻繁に変更されるコンテンツは、CDN または API に保持してください。アプリ内に含める必要がない場合は。
  • マーケティング画像、オンボーディングビデオ、リリースごとに置き換えられるキャンペーンアセットに注意してください。
  • 安定したアセットは安定させてください。デルタ更新では、変更されていないファイルは再ダウンロードするのではなく、再利用されます。

これは、Capgo をアプリが大きくなるにつれて速く保つための最も簡単な方法の 1 つです。最悪のパターンは、ユーザーに大量の無関係なメディアをダウンロードさせるために、UI の小さな修正を強制することです。

3. 本物のネイティブ変更はネイティブリリースに留めろ

Capgo はウェブ層を更新します: HTML、CSS、JavaScript、実行時ロードされるアセット。

これは、次のものではありません:

  • 新しいネイティブプラグイン
  • 許可の変更
  • capacitor.config.ts 変更
  • iOSまたはAndroidのネイティブプロジェクトの状態を変更するもの

その行もパフォーマンスに影響する。OTAのレーンに大きな構造的変更を繰り返し追加すると、更新戦略は時間の経過とともに重くなり、リスクが高くなる。

2つのリリースレーンを意図的に使用する:

ネイティブレーン

プラグインの変更、許可の変更、ネイティブの構成:

bun run build
bunx cap sync

次に、通常のストアリリースを出します。

Capgoレーン

安全なウェブ層のイテレーション:

bun run build
bunx @capgo/cli@latest bundle upload --channel production --delta

最近、長期間の資産を多く追加した場合は、定期的にネイティブの基準を更新することもお勧めします。新しい基準を含むストアビルドを作成すると、将来のCapgoの差分が小さくなるからです。

4. チャンネルを使用してロールアウトのサイズを小さく保つ

「スリム」なアップデートは、単にメガバイトだけではありません。アップデートが機能することを確認する前に、多くのデバイスがアップデートを受信することにも関係します。

Capgoの チャンネルシステム は、次の制御を簡潔に実行するための最も適切な方法です:

  • staging QA用
  • beta 招待されたテスター用
  • production 全員用
  • hotfix 緊急回復用

シンプルなフローは次のようになります:

  1. アップロード staging.
  2. 実機で検証
  3. 段階的に展開する。チャネル制御やパーセンテージベースの展開を通じて。
  4. 健康率が低下した場合、即時ロールバック。

アプリが複数のネイティブ基準を持つ場合、チャネルをバージョン目標と組み合わせて使用します。 バージョン目標は、互換性のないまたは不要な重いパッケージを古いバイナリから遠ざけるのに役立ちます。PRプレビューの場合、__CAPGO_KEEP_0__もチームがより厳密なレビューループを望む場合に適しています。

チームがさらに厳密なレビューループを求めている場合、Capgoも適しています。 PR プレビュー更新の適用速度が速いほど、起動パスの規律性が高くなる必要があります。

__CAPGO_KEEP_0__の更新動作

__CAPGO_KEEP_0__の更新動作

Capgoの更新動作 __CAPGO_KEEP_0__の更新動作 ドキュメントでは明示的に推奨されているのは、 directUpdate デルタアップデートと組み合わせることです。

2番目のガイドラインは notifyAppReady().

import { CapacitorUpdater } from '@capgo/capacitor-updater'

CapacitorUpdater.notifyAppReady()

アプリがデフォルトの10秒間のウィンドウ内に、またはあなたが設定した notifyAppReady() __CAPGO_KEEP_0__ appReadyTimeout you set in your Capacitor config, Capgo can mark that bundle invalid and restore the previous good version. That rollback behavior is what you want in production, but it also means you should keep startup clean:

  • Call notifyAppReady() それは、生産環境では望ましい動作ですが、起動時間が長くなることを意味します。
  • そのため、起動時間をクリーンに保つことが重要です。
  • Call
  • 正しい場所で呼び出す

重要なパスで遅い起動時間の作業を避ける notifyAppReady ガイド これは再度読む価値があります。

6. 内部のアップデート チャネルを使用して、不要なネイティブ リビルドの代わりに

多くのモバイル チームは、明らかにウェブのみの変更に対して、明らかに時間を浪費してバイナリをビルドしています。

変更が:

  • コピー
  • UI ポリッシュ
  • オンボーディング フロー
  • 価格表示画面のロジック
  • 分析のワイヤリング
  • 機能フラグ
  • プロンプトまたは API のレスポンス レンダリング

次に、Capgo のアップデートは、よくレビューされるアーティファクトであることが多い。

つまり、ネイティブのビルドが少なく、テストフライトの混乱が少なく、チームのフィードバックループがきつくなります。これは、Capgo の最も利用されていない利点の 1 つです: OTA レーンにレビューと QA の作業を移すことができますが、ネイティブ/ウェブの境界を破壊する必要はありません。

「__CAPGO_KEEP_0__」のステージング方法については、以下のガイドを参照してください。 1つのモバイルアプリIDでステージングする方法については、以下のガイドを参照してください。 7. リーンとシークレットを分離する

小さなバンドルと安全なバンドルは、異なる問題を解決します。

チャンネルは、エリギビリティを制御しますが、バンドルを秘密にすることはありません。

より強力な配信保証が必要な場合:

__CAPGO_KEEP_0__ の暗号化を有効化してください。

そのようなアップデートサイズは無視できない。ただし、両方の要素を最適化する必要があることを意味する。

  • 速さのために
  • 配信の制御のために暗号化
  • ロールアウトの制御のためにチャンネル
  • 回復のためにロールバック

実用的な「速さのCapgo」ワークフロー

シンプルなデフォルトの運用モデルを使用したい場合は、このようにしてください。

  1. ネイティブとOTAリリースのレーンを分離する
  2. デフォルトでJSの変更をアップロードする --delta デフォルトでは。
  3. 使用 staging と beta チャンネルを production.
  4. 更新 の統計情報とログ ロールアウト
  5. の
  6. PRをインストール可能なプレビューに変換する
  7. 必要な場合
  8. Nativeビルド notifyAppReady() 可能な限り

大きなメディアファイルをバンドルから除外する

閉じる

For Capgo teams, “lean and fast” is not just a bundle-size problem.

それはリリース設計の問題です。

Delta更新を使用してペイロードサイズ、チャネルを使用してロールアウトサイズ、ロールバックを使用して失敗サイズを管理します。OTAをそう考えると、更新はアプリ、チーム、ユーザーベースが大きくなるにつれても速くなります。

Keep going from How to Keep Capgo Updates Lean and Fast

Capgoを使用している場合 How to Keep Capgo Updates Lean and Fast チャネルルーティングとステージドロールアウトを計画するには チャネル チャンネルにおける実装詳細のために チャネル チャンネルにおける実装詳細のために チャンネル チャンネルの実装詳細については ベータテストソリューション ベータテストソリューションの製品ワークフローについては バージョン対象ソリューション バージョン対象ソリューションの製品ワークフローについては

Live updates for Capacitor apps

Capacitor アプリでは、ウェブ層のバグが生じた場合、Capgo を通じて修正を配信し、数日間待つ必要のないアプリストアの承認プロセスを回避することができます。ユーザーはバックグラウンドで更新を受け取り、ネイティブの変更は通常のレビュー経路を通じて進みます。

マーティンによる人間のサポート

Get Started Now

最新ニュース

Capgoは、プロフェッショナルなモバイルアプリを作成するために必要な最良の洞察を提供します。