compare-bundles について
2つのTuist bundleを比較するスキルです。開発者がアーティファクトツリー、インストールサイズとダウンロードサイズを調べ、サイズ差の要因を確認できます。
主な機能
- 01IDまたはブランチからbundleを特定
- 02アーティファクトツリーを比較
- 03インストールとダウンロードサイズの変化を測定
- 04バージョンとプラットフォームの差を確認
- 05サイズ削減策を提示
活用シーン
- 01ブランチ間のbundleサイズを確認
- 02サイズ増加の原因となるアーティファクトを特定
- 03バージョンやプラットフォーム変更の影響を評価
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ tuist/ agent-skills --skill compare-bundlesインストール後、Claude Code で/compare-bundlesを入力して読み込まれたか確認します。
詳細
バンドルを比較する
クイックスタート
通常、2つのバンドル識別子を受け取ります。以下の手順に従ってください。
tuist bundle list --jsonを実行して、各ブランチのバンドルを確認します。- ベースとヘッドの両方のバンドルに対して、
tuist bundle show <bundle-id> --jsonを実行します。 tuist bundle artifact list <bundle-id> --jsonでアーティファクトツリーを比較します。- インストールサイズ、ダウンロードサイズ、その他のメタデータを比較します。
- サイズの変化を、実行可能な推奨事項とともにまとめます。
手順 1:バンドルを特定する
ベース/ヘッドがバンドル ID またはダッシュボード URL の場合
それぞれを直接取得します。
tuist bundle show <base-id> --json
tuist bundle show <head-id> --json
ベース/ヘッドがブランチ名の場合
各ブランチの最近のバンドルを一覧表示し、最新のものを選びます。
tuist bundle list --git-branch <base-branch> --json
tuist bundle list --git-branch <head-branch> --json
次に、tuist bundle show <id> --json で詳細情報を取得します。
デフォルト
- ベースが指定されていない場合は、プロジェクトのデフォルトブランチ(通常は
main)を使用します。 - ヘッドが指定されていない場合は、現在の git ブランチを検出します。
手順 2:アーティファクトツリーを比較する
tuist bundle show <id> --json で両方のバンドルを取得した後、個々のアーティファクトを比較します。
tuist bundle artifact list <base-id> --json
tuist bundle artifact list <head-id> --json
両方のバンドル間で名前を基準にアーティファクトを照合します。次の点を確認してください。
- ヘッドのバンドルに追加された新しいアーティファクト(サイズ増加の要因となる可能性があります)
- 削除されたアーティファクト(サイズ減少の理由を説明します)
- 既存アーティファクトのサイズ変化
手順 3:トップレベルのメトリクスを比較する
両方のバンドルを取得した後、以下を比較します。
| メトリクス | 確認事項 |
|---|---|
install_size | ヘッドが 5% を超えて大きい場合は注意します |
download_size | ヘッドが 5% を超えて大きい場合は注意します |
version | バージョンの変更を記録します |
supported_platforms | プラットフォームの変更を記録します |
app_bundle_id | ベースとヘッドで一致している必要があります |
差分を計算します。
- インストールサイズの差分:
head_install_size - base_install_size - ダウンロードサイズの差分:
head_download_size - base_download_size - 変化率:
delta / base_size * 100
手順 4:サイズの変化を分析する
サイズが大幅に増加した場合(>5%):
versionが変更されたか確認します。予想されるサイズ増加の理由になる可能性があります。supported_platformsが変更されたか確認します(プラットフォームを追加するとサイズが増加します)。- バンドルの詳細にある
artifactsフィールドで、個々のアーティファクトのサイズを確認します。
サイズ増加の一般的な原因:
- 新しいフレームワークやライブラリの追加
- アセットカタログの増加(新しい画像や動画)
- 最適化されていないリソース(圧縮形式ではなくサイズの大きい PNG)
- リリースビルドへのデバッグシンボルの含有
- 新しいローカライズの追加
サイズ減少の一般的な原因:
- 未使用のフレームワークの削除
- アセットの最適化
- ツリーシェイキングやデッドコード除去の改善
- 機能をオンデマンドリソースに移動
まとめの形式
以下を含むまとめを作成します。
- 全体の評価:サイズが増加、減少、または安定しているか。
- インストールサイズ:絶対値と変化率。
- ダウンロードサイズ:絶対値と変化率。
- バージョン:バージョンが変更されたかを記載します。
- プラットフォーム:プラットフォームの変更を記載します。
- 推奨事項:サイズの悪化に対する実行可能な次のステップ。
例:
Bundle Comparison: base (v2.1.0 on main) vs head (v2.2.0 on feature-x)
Install Size: 45.2 MB -> 52.8 MB (+16.8%) -- REGRESSION
Download Size: 28.1 MB -> 32.4 MB (+15.3%) -- REGRESSION
Version: 2.1.0 -> 2.2.0
Platforms: iOS, macOS (unchanged)
The install size increased by 7.6 MB. This is a significant increase
that may affect user download and storage experience.
Recommendations:
- Review new frameworks or assets added in this version
- Check for uncompressed resources or oversized image assets
- Consider using asset compression or on-demand resources
- Run `xcrun bitcode_strip` analysis to check for unnecessary bitcode
完了チェックリスト
- ベースとヘッドの両方のバンドルを特定した
tuist bundle artifact listを使ってアーティファクトツリーを比較した- インストールサイズとダウンロードサイズを比較した
- サイズ変化の根本原因を分析した
- 実行可能な推奨事項を提示した
コメント
Markdown 対応