install
source · Clone the upstream repo
git clone https://github.com/a5c-ai/babysitter
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/a5c-ai/babysitter "$T" && mkdir -p ~/.claude/skills && cp -r "$T/library/specializations/mobile-development/skills/mobile-analytics" ~/.claude/skills/a5c-ai-babysitter-mobile-analytics && rm -rf "$T"
manifest:
library/specializations/mobile-development/skills/mobile-analytics/SKILL.mdsource content
Mobile Analytics Skill
Overview
This skill provides comprehensive capabilities for mobile app analytics and crash reporting integration. It enables configuration of Firebase Analytics, Crashlytics, Mixpanel, Amplitude, and other analytics platforms.
Allowed Tools
- Execute Firebase CLI and SDK commandsbash
- Analyze analytics configurationsread
- Generate analytics event schemas and configurationswrite
- Update analytics implementationsedit
- Search for analytics filesglob
- Search for event tracking patternsgrep
Capabilities
Firebase Analytics
-
Event Configuration
- Configure custom events
- Set user properties
- Implement screen tracking
- Configure event parameters
- Handle default events
-
User Segmentation
- Configure audiences
- Set user IDs
- Implement user properties
- Handle demographics
Firebase Crashlytics
-
Crash Reporting
- Configure crash reporting
- Implement custom keys
- Log non-fatal errors
- Set user identifiers
- Configure crash alerting
-
Debug Tools
- Enable debug mode
- Configure test crashes
- Analyze stack traces
- Handle dSYM uploads
Third-Party Analytics
-
Mixpanel/Amplitude
- Configure SDKs
- Implement event tracking
- Set user profiles
- Handle funnels
-
Segment
- Configure data routing
- Implement destinations
- Handle identity
A/B Testing
- Remote Config
- Configure feature flags
- Implement experiments
- Handle rollout percentages
- Analyze results
Target Processes
- Analytics implementationmobile-analytics-setup.js
- Firebase servicesfirebase-backend-integration.js
- Performance monitoringmobile-performance-optimization.js
Dependencies
- Firebase SDK
- Analytics platform SDKs
- Firebase CLI
Usage Examples
Firebase Analytics Setup (iOS)
// AppDelegate.swift import FirebaseCore import FirebaseAnalytics @main class AppDelegate: UIResponder, UIApplicationDelegate { func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { FirebaseApp.configure() return true } } // Analytics Helper struct AnalyticsManager { static func logEvent(_ name: String, parameters: [String: Any]? = nil) { Analytics.logEvent(name, parameters: parameters) } static func setUserId(_ userId: String) { Analytics.setUserID(userId) } static func setUserProperty(_ value: String?, forName name: String) { Analytics.setUserProperty(value, forName: name) } static func logScreenView(screenName: String, screenClass: String) { Analytics.logEvent(AnalyticsEventScreenView, parameters: [ AnalyticsParameterScreenName: screenName, AnalyticsParameterScreenClass: screenClass ]) } }
Firebase Analytics Setup (Android)
// AnalyticsManager.kt class AnalyticsManager @Inject constructor( private val analytics: FirebaseAnalytics ) { fun logEvent(name: String, params: Map<String, Any>? = null) { analytics.logEvent(name, params?.toBundle()) } fun setUserId(userId: String?) { analytics.setUserId(userId) } fun setUserProperty(name: String, value: String?) { analytics.setUserProperty(name, value) } fun logScreenView(screenName: String, screenClass: String) { analytics.logEvent(FirebaseAnalytics.Event.SCREEN_VIEW) { param(FirebaseAnalytics.Param.SCREEN_NAME, screenName) param(FirebaseAnalytics.Param.SCREEN_CLASS, screenClass) } } } private fun Map<String, Any>.toBundle(): Bundle { return Bundle().apply { this@toBundle.forEach { (key, value) -> when (value) { is String -> putString(key, value) is Int -> putInt(key, value) is Long -> putLong(key, value) is Double -> putDouble(key, value) is Boolean -> putBoolean(key, value) } } } }
Event Schema
// analytics/events.ts export const AnalyticsEvents = { // User Events USER_SIGNED_UP: 'user_signed_up', USER_LOGGED_IN: 'user_logged_in', USER_LOGGED_OUT: 'user_logged_out', // Feature Events FEATURE_USED: 'feature_used', ITEM_VIEWED: 'item_viewed', ITEM_ADDED_TO_CART: 'item_added_to_cart', PURCHASE_COMPLETED: 'purchase_completed', // Engagement Events SHARE_CLICKED: 'share_clicked', NOTIFICATION_RECEIVED: 'notification_received', NOTIFICATION_OPENED: 'notification_opened', } as const; export interface EventParameters { user_signed_up: { method: 'email' | 'google' | 'apple' }; item_viewed: { item_id: string; item_name: string; category: string }; purchase_completed: { transaction_id: string; value: number; currency: string }; }
Quality Gates
- Event naming conventions enforced
- Required parameters validated
- PII data excluded
- Consent management implemented
Related Skills
- Firebase servicesfirebase-mobile
- Performance monitoringmobile-perf
Version History
- 1.0.0 - Initial release