with one click
mobile-analytics
Mobile app analytics and crash reporting integration
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
Mobile app analytics and crash reporting integration
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
| name | Mobile Analytics |
| description | Mobile app analytics and crash reporting integration |
| version | 1.0.0 |
| category | Analytics & Monitoring |
| slug | mobile-analytics |
| status | active |
| graph | {"domains":["domain:mobile"],"specializations":["specialization:mobile-development"],"skillAreas":["skill-area:analytics-tracking","skill-area:ios-native"],"roles":["role:mobile-engineer"],"workflows":["workflow:feature-development","workflow:release-management"],"topics":["topic:accessibility"]} |
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.
bash - Execute Firebase CLI and SDK commandsread - Analyze analytics configurationswrite - Generate analytics event schemas and configurationsedit - Update analytics implementationsglob - Search for analytics filesgrep - Search for event tracking patternsEvent Configuration
User Segmentation
Crash Reporting
Debug Tools
Mixpanel/Amplitude
Segment
mobile-analytics-setup.js - Analytics implementationfirebase-backend-integration.js - Firebase servicesmobile-performance-optimization.js - Performance monitoring// 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
])
}
}
// 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)
}
}
}
}
// 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 };
}
firebase-mobile - Firebase servicesmobile-perf - Performance monitoringReference for querying the Atlas knowledge graph through its MCP tools — the SECONDARY enrichment/comparison layer that adds best-practice context to systems you have ALREADY scanned from your real sources (`az`, repos, dirs). Use when you need to look up nodes, edges, kinds, clusters, stats, or wiki pages in Atlas to compare against your real inventory. (atlas graph, query atlas, atlas mcp, search the graph, graph neighbors, atlas record, atlas kinds, enrichment layer)
Atlas turns your STATED NEED into a real systems atlas by SCANNING your actual sources (Azure via `az`, git repos, local dirs) and process/data mining them, THEN enriching against the Atlas knowledge graph. Use this skill when asked to inventory/map your real systems, scan your cloud + repos + directories, mine the real processes or data they contain, or collect their real constraints/gotchas. (atlas, scan my systems, inventory our azure account, map my repos, real systems atlas, process mining, data mining, collect nuances, system discovery)
This skill should be used when the user asks to "find skills in the wild", "assimilate popular workflows", "discover SKILL.md files in repos", "research external skills", "find workflow patterns", "survey the skill landscape", "what skills exist out there", or wants to investigate public repositories for extractable processes, babysitter plugins, and reusable procedural insights. Searches GitHub for SKILL.md files, classifies repos by archetype, and maintains structured research under docs/reference-repos/.
JavaScript and TypeScript documentation generation using JSDoc and TSDoc. Parse source code, generate API documentation, validate coverage, and integrate with TypeDoc for comprehensive developer documentation.
Structured debugging methodology using hypothesis-driven investigation, log analysis, and bisection to isolate and resolve defects.
Zero-knowledge circuit development using Circom and Noir languages. Supports constraint optimization, ZK-friendly cryptographic primitives, proof generation (Groth16, PLONK), and Merkle tree implementations.