Integrating Shake for Bug Reporting in Mobile Apps
Shake—alternative to Instabug with emphasis on integration simplicity and lower SDK overhead. Main difference: Shake emphasizes visual screenshot annotations (arrows, boxes, text directly on screen), accelerating communication between tester and developer without lengthy text descriptions.
Integration
iOS:
import Shake
func application(_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
Shake.start(apiKey: "YOUR_API_KEY")
Shake.configuration.isNetworkRequestsEnabled = true
Shake.configuration.isConsoleLogsEnabled = true
return true
}
Android:
class App : Application() {
override fun onCreate() {
super.onCreate()
Shake.start(this, "YOUR_API_KEY")
Shake.getReportConfiguration().isNetworkRequestsEnabled = true
}
}
Shake intercepts network requests via built-in OkHttp interceptor—automatically connects if OkHttp used (via Retrofit or directly). For non-standard HTTP clients—manual logging via Shake.networkRequestBuilder().
What Shake Provides Out of Box
- Gesture-based invocation: shake, long press, custom floating button
- Screenshot annotation: arrows, boxes, blur (hide sensitive data directly in UI)
- Auto-attached metadata: device, OS, app version, locale, network type
- Activity history (last N screens)
- Console log last X minutes before report
Shake dashboard simpler than Instabug—fewer options, faster team onboarding. Jira, Linear, Slack, Notion integrations exist but fewer total.
Custom Metadata
Useful to add current user context:
Shake.setMetadata(key: "userId", value: currentUser.id)
Shake.setMetadata(key: "plan", value: currentUser.subscriptionPlan)
Shake.setMetadata(key: "environment", value: AppConfig.environment)
Then every report immediately shows which user reproduced the bug—no need to ask tester separately.
Difference from Instabug
Shake cheaper (free tier for small teams), faster to integrate, SDK smaller. Instabug richer in features: session replay with click and scroll recording, more detailed network inspector, in-app user surveys. For small team needing basic bug reporting without excess—Shake sensible choice.
Timeline Estimates
Integration and setup—1 day, including custom metadata, invocation events, and issue tracker integration.







