Get set up
Hot Takeslets your stakeholders give feedback from right inside your prototype — the same in-context markup and comments you used to get from your design tool of choice, now on a real iOS build. They annotate screenshots and record their screen as they go, and every take lands in a shared gallery tied to a verified person. Here's how to add it to your app.
Requirements
- iOS 17 or later.
- Swift Package Manager (the SDK ships as a SwiftPM package).
- Zero third-party dependencies — the package pulls in nothing else.
1. Add the package
In Xcode, choose File → Add Package Dependencies… and add the SDK by its git URL (the hottakes-ios repository). Add the HotTakeslibrary product to your prototype's app target.
2. Get a project key
Create a project in the web app and copy its project key — a string that looks like ht_pk_…. Each project has its own key; captures made with that key show up in that project's gallery.
3. Start the SDK
Two lines — an import and a single call, typically at app launch:
import HotTakes
HotTakes.start(
projectKey: "ht_pk_your_key_here",
apiBaseURL: URL(string: "https://hottakes.app/api/sdk/v1")!
)That's the whole integration. A floating capture pill appears in your running app; your reviewers do everything else from there.
Trigger options
By default the SDK shows a draggable pill your reviewers tap to capture. For a hands-off demo-day build you can switch to a shake gesture instead (trigger: .shake), so there's no visible UI until someone shakes the device.
Required Info.plist keys
Recordings capture microphone audio (recording voiceover and voice clips on screenshots), so your host app must declare a matching usage description in its Info.plist:
- A microphone usage description (
NSMicrophoneUsageDescription) — shown when a reviewer records a voice clip or narrates a screen recording.
Screen recording itself needs no Info.plist entry — ReplayKit shows its own system consent UI when a reviewer starts recording. If the microphone description is missing, the SDK fails loudly in a debug build (so you catch it during development) and degrades gracefully in a release build (recording capture is disabled rather than crashing; screenshots are unaffected).
What data the SDK collects
Every capture carries basic device/app context — device model, OS version, your app's version and build, and screen dimensions — attached automatically so your team can reproduce what the reviewer saw. Screenshots include the reviewer's annotations and any typed note or voice clip; recordings include the screen video plus live microphone audio. The Privacy Policy covers the full list of what's collected and how it's stored.
Testing your integration
Screenshots work everywhere, including the iOS Simulator. Screen recording requires a real iPhone— ReplayKit isn't available in the Simulator. The example host app in the SDK repo is a working reference integration to compare against.
Regenerating your project key
You can regenerate a project key from the web app's project settings. This only affects new enrollments going forward — reviewers who already enrolled keep working, and existing captures are untouched. Regenerate if a key leaks or you want to cut off future enrollment against an old build.
Troubleshooting
- Pill not appearing: confirm
HotTakes.start(projectKey:apiBaseURL:)runs at launch and the key is a validht_pk_…string for a live project. - Uploads stuck / spooling:captures are spooled and retried when the device is offline — they'll upload once connectivity returns; nothing is lost.
- “Invalid key” state:the key doesn't match a project (typo, or the key was regenerated) — copy it again from project settings.
- Recording disabled:you're on the Simulator, or the microphone Info.plist usage description is missing (see above).
Need a hand?
Email jason@hottakes.app or use the support form.