Tophat이란?
Tophat은 모바일 애플리케이션을 한 번에 설치하고 테스트할 수 있는 도구입니다. CI 아티팩트에서 빌드를 배포하고, 설치 링크를 생성하며, 기여자가 브랜치를 로컬에서 복제하거나 빌드할 필요 없이 기기나 시뮬레이터에서 앱을 실행할 수 있도록 설계되었습니다.
이 프로젝트에는 사용자 지정 빌드 및 캐싱 시스템을 통합하기 위한 확장 및 명령줄 기능도 포함되어 있습니다. Tophat은 install URL, Quick Launch, artifact provider를 통해 iOS와 Android 워크플로를 모두 지원하며, 서로 다른 대상용 여러 아티팩트를 포함할 수 있는 recipe도 제공합니다.
주요 기능
- CI 아티팩트를 위한 원클릭 설치 링크로, 테스터와 기여자가 로컬 빌드 단계 없이 빌드를 설치할 수 있습니다.
- artifact provider 기반 다운로드로, Tophat이 내장 provider나 확장을 통해 추가된 provider에서 빌드를 가져올 수 있습니다.
- URL, Quick Launch,
tophatctl명령줄 인터페이스를 포함한 여러 요청 유형 지원. - 하나의 요청에 여러 아티팩트를 묶을 수 있는 recipe로, 시뮬레이터와 실제 기기에 서로 다른 빌드가 필요할 때 유용합니다.
- 설치 흐름에 사용자 지정 빌드 및 캐싱 시스템을 통합할 수 있는 TophatKit SDK 확장.
- 즐겨찾는 앱을 위한 Quick Launch 바로가기로, 최신 빌드를 다운로드하고 앱 아이콘을 업데이트한 뒤 선택한 기기에서 앱을 실행할 수 있습니다.
- 자주 사용하는 기기와 환경별 툴링 경로에 더 빠르게 접근할 수 있도록 하는 기기 고정 및 설정 기반 사용자 지정.
- iOS와 Android용 전달 방식이 문서화된 launch arguments 지원.
Tophat 사용 방법
일반적인 설정은 Tophat을 빌드 또는 artifact provider와 통합해 다운로드 가능한 앱 빌드를 확인할 수 있게 하는 것에서 시작합니다. 그런 다음 설치 링크나 Quick Launch 항목을 만들거나, tophatctl을 사용해 선택한 기기나 시뮬레이터에 설치를 트리거합니다.
사용자 지정 인프라를 사용하는 팀은 TophatKit SDK와 shell-script provider 옵션을 통해 기존 빌드 및 캐싱 시스템에 맞게 Tophat을 조정할 수 있습니다. 설정이 완료되면 사용자는 설치 링크를 클릭하거나 Tophat에서 앱을 선택해 대상 기기에 빌드를 다운로드, 설치, 실행합니다.
사용 사례
- QA와 CI 빌드를 공유해 테스터가 링크에서 특정 앱 버전을 바로 설치할 수 있게 함.
- 외부 기여자가 저장소를 복제하거나 앱을 로컬에서 빌드하지 않고도 pull request를 테스트할 수 있게 함.
- 릴리스 과정에서 대상별로 서로 다른 아티팩트가 생성될 때, 하나의 요청으로 시뮬레이터와 기기용 빌드를 각각 설치함.
- 여러 프로젝트나 기기를 오가는 개발자를 위해 자주 사용하는 앱에 빠르게 접근할 수 있게 함.
- 확장이나 shell-script provider를 통해 Tophat을 내부 사용자 지정 빌드 시스템이나 캐시에 연결함.
FAQ
Tophat은 하나의 artifact source에서만 작동하나요? 아니요. 설명에는 내장 artifact provider와 Tophat Extensions를 통해 설치할 수 있는 추가 provider가 언급되어 있습니다.
Tophat은 기기와 시뮬레이터를 모두 처리할 수 있나요? 네. 문서에 따르면 하나의 요청에 여러 아티팩트를 포함할 수 있으며, Tophat은 선택한 대상에 따라 적절한 항목을 선택할 수 있습니다.
설치된 앱에 launch arguments를 전달할 수 있나요?
네. 설명에는 install URL용 arguments 쿼리 파라미터가 문서화되어 있으며 iOS와 Android에 대한 플랫폼별 처리도 언급됩니다.
통합을 위한 명령줄 옵션이 있나요?
네. 페이지에서는 tophatctl을 언급하며, 사용자가 명령줄에서 artifact provider를 나열할 수 있다고 설명합니다.
Tophat을 유용하게 쓰려면 사용자 지정 툴링이 꼭 필요한가요? 반드시 그렇지는 않습니다. 설명에는 내장 provider와 기본 HTTP 지원이 언급되며, 더 맞춤화된 설정을 위한 확장도 제공됩니다.
대안
- 직접 빌드 다운로드나 공유 링크를 사용하는 수동 앱 배포: 더 단순하지만, Tophat의 기기 인식 설치 흐름이나 Quick Launch 기능은 제공하지 않습니다.
- CI artifact 뷰어 및 다운로드 포털: 빌드를 가져오는 데 유용하지만, 일반적으로 기기에 원클릭 설치하기보다 저장과 접근에 더 중점을 둡니다.
- 모바일 기기 테스트 플랫폼: 빌드 배포를 포함할 수 있는 더 넓은 종단 간 테스트 제품군이지만, 보통 Tophat의 설치 및 실행 워크플로보다 더 많은 범위를 다룹니다.
- 사용자 지정 스크립트 또는 내부 배포 도구: 특정 파이프라인에는 유연하지만, 일반적으로 표준화된 설치 링크 워크플로보다 유지 관리가 더 많이 필요합니다.
대안
FixMyCWV
FixMyCWV는 LCP, INP, CLS 문제를 찾아 코드 수준의 수정 권장사항을 제공하는 Core Web Vitals 감사 도구입니다. 보호된 환경에서도 실제 사이트 성능 분석이 가능합니다.
Ably Chat
Ably Chat은 실시간 채팅 API와 SDK로 맞춤형 채팅 앱을 구축합니다. 반응, 존재감, 메시지 편집/삭제를 포함해 대규모 실시간에 최적화
AakarDev AI
AakarDev AI는 원활한 벡터 데이터베이스 통합을 통해 AI 애플리케이션 개발을 간소화하는 강력한 플랫폼으로, 신속한 배포와 확장성을 가능하게 합니다.
DeepMotion
DeepMotion은 웹 브라우저에서 비디오(및 텍스트)로부터 3D 애니메이션을 생성하는 AI 모션 캡처·바디 트래킹 플랫폼입니다. Animate 3D API 지원.
Arduino VENTUNO Q
Arduino VENTUNO Q는 로보틱스용 엣지 AI 컴퓨터로, AI 추론 하드웨어와 마이크로컨트롤러 제어를 한 보드에 통합합니다. Arduino App Lab로 개발 워크플로 제공
Devin
Devin은 AI 코딩 에이전트로 코드 마이그레이션과 대규모 리팩터링을 서브태스크 병렬로 수행해요. 엔지니어 승인 하에 진행