Tophatとは?
Tophatは、モバイルアプリをワンクリックでインストールしてテストできるツールです。CI成果物からビルドを配布し、インストールリンクを作成し、コントリビューターがローカルでブランチをクローンしたりビルドしたりしなくても、デバイスやシミュレータでアプリを起動できるように設計されています。
このプロジェクトには、カスタムのビルドおよびキャッシュシステムを統合するための拡張機能とコマンドライン機能も含まれています。Tophatは、インストールURL、Quick Launch、artifact providerを通じてiOSとAndroidの両方のワークフローをサポートし、異なる対象向けの複数のアーティファクトを含められるrecipeにも対応しています。
主な機能
- CI成果物向けのワンクリックインストールリンク。テスターやコントリビューターはローカルのビルド工程なしでビルドをインストールできます。
- artifact providerベースのダウンロード。Tophatは組み込みproviderや拡張機能で追加されたproviderからビルドを取得できます。
- URL、Quick Launch、
tophatctlコマンドラインインターフェースなど、複数のリクエスト形式に対応。 - 1回のリクエストで複数のアーティファクトをまとめられるrecipe。シミュレータ用と実機用で異なるビルドが必要な場合に便利です。
- インストールフローにカスタムのビルドおよびキャッシュシステムを統合するためのTophatKit SDK拡張。
- お気に入りアプリ用のQuick Launchショートカット。最新ビルドのダウンロード、アプリアイコンの更新、選択したデバイスでの起動ができます。
- デバイス固定と設定ベースのカスタマイズ。よく使うデバイスや環境別のツールパスへ素早くアクセスできます。
- 起動引数のサポート。配信方法はiOSとAndroid向けにドキュメント化されています。
Tophatの使い方
一般的なセットアップは、まずTophatをビルドまたはartifact providerと連携し、ダウンロード可能なアプリビルドを解決できるようにするところから始まります。次に、インストールリンクやQuick Launchエントリを作成するか、tophatctlを使って選択したデバイスやシミュレータへのインストールを実行します。
カスタム基盤を持つチームでは、TophatKit SDKやshell-script providerのオプションを使って、既存のビルドおよびキャッシュシステムに合わせてTophatを適応できます。設定後は、ユーザーがインストールリンクをクリックするか、Tophatからアプリを選ぶだけで、対象デバイスにビルドをダウンロード、インストール、起動できます。
ユースケース
- QAにCIビルドを共有し、テスターがリンクから特定のアプリバージョンを直接インストールできるようにする。
- 外部コントリビューターがリポジトリをクローンしたりローカルでアプリをビルドしたりせずに、pull requestをテストできるようにする。
- リリース工程で対象ごとに異なるアーティファクトが生成される場合、1回のリクエストからシミュレータ用と実機用の別ビルドをインストールする。
- 多数のプロジェクトやデバイスを切り替える開発者に、よく使うアプリへ素早くアクセスできるようにする。
- 拡張機能やshell-script providerを通じて、Tophatを社内のカスタムビルドシステムやキャッシュに接続する。
FAQ
Tophatは1つのartifact sourceでしか動作しませんか?
いいえ。説明では、組み込みのartifact providerと、Tophat Extensions経由でインストールできる追加providerが示されています。
Tophatはデバイスとシミュレータの両方に対応していますか?
はい。ドキュメントでは、1回のリクエストに複数のアーティファクトを含められ、選択したdestinationに応じて適切なものをTophatが選べると説明されています。
インストールしたアプリに起動引数を渡せますか?
はい。ソースではインストールURL向けのargumentsクエリパラメータが記載され、iOSとAndroidでのプラットフォーム別の扱いにも触れています。
連携用のコマンドラインオプションはありますか?
はい。ページではtophatctlが参照されており、コマンドラインからartifact providerを一覧表示できると記載されています。
Tophatを使うのにカスタムツールは必須ですか?
必須ではありません。ソースでは組み込みproviderと基本的なHTTPサポートが触れられており、よりカスタマイズされたセットアップ向けに拡張機能も利用できます。
代替案
- 直接のビルドダウンロードや共有リンクによる手動配布: よりシンプルですが、Tophatのデバイスを考慮したインストールフローやQuick Launch機能はありません。
- CI artifact viewerやダウンロードポータル: ビルドの取得には便利ですが、通常はデバイスへのワンクリックインストールよりも保存とアクセスに重点があります。
- モバイルデバイステストプラットフォーム: より広範なE2Eテストスイートで、ビルド配布を含む場合もありますが、一般的にはTophatのようなインストールと起動に特化したワークフローを超えます。
- カスタムスクリプトや社内配布ツール: 特定のパイプラインには柔軟ですが、標準化されたインストールリンクのワークフローより保守が大変なことが多いです。
代替品
FixMyCWV
FixMyCWVは、LCP・INP・CLSの問題を特定し、修正に必要なコードレベルの改善案を返すCore Web Vitals監査ツールです。保護環境のサイトにも対応し、開発者やチーム向けです。
Ably Chat
Ably Chatはカスタムリアルタイムチャット用のAPI/SDK。リアクション、プレゼンス、メッセージ編集/削除に対応し高負荷も設計。
AakarDev AI
AakarDev AIは、シームレスなベクターデータベース統合を通じてAIアプリケーションの開発を簡素化し、迅速な展開とスケーラビリティを実現する強力なプラットフォームです。
DeepMotion
DeepMotionはAIモーションキャプチャ/ボディトラッキングで、動画(テキストも可)からWebブラウザで3Dアニメを生成。Animate 3D API連携も。
Arduino VENTUNO Q
Arduino VENTUNO Qはロボット向けエッジAIコンピュータ。AI推論とマイコン制御を統合し、Arduino App Labで埋め込み/ Linux/エッジAI開発。
Devin
Devinは、AIコーディングエージェントとして移行や大規模リファクタのサブタスクを並列実行。人が管理し変更を承認。