About Dependencies and Package NamesFlashduty iOS SDK is fully compatible with the Datadog open-source protocol. When adding dependencies via Swift Package Manager or CocoaPods, use names like
FlashcatCore and FlashcatRUM, but in code, import modules like DatadogCore and DatadogRUM. You can seamlessly leverage Datadog ecosystem documentation, examples, and best practices while enjoying Flashduty platform services.Supported Configuration Scenarios:
- Enrich user sessions - Add custom views, actions, resources, and error information
- Protect sensitive data - Mask personally identifiable information and sensitive data
- Associate user sessions - Link user sessions with internal user identifiers
- Control data volume - Optimize data collection through sampling and event filtering
- Enhance context - Add custom attributes to data
Enrich User Sessions
Custom Views
In addition to auto-tracked views, you can manually track custom views:- Swift
- Objective-C
Parameter Description:
key(String) - Unique identifier for the view, same key used forstartViewandstopViewname(String) - Name of the viewattributes(Dictionary) - Attributes attached to the view (optional)
Custom Actions
Track specific custom user actions:- Swift
- Objective-C
Custom Resources
Manually track specific custom resources:- Swift
Custom Errors
Record specific errors:- Swift
- Objective-C
Set User Information
Set user information for the current session:- Swift
- Objective-C
Event and Data Management
Clear All Data
Clear all unsent data currently stored in the SDK:- Swift
- Objective-C
Sampling
Control the percentage of sessions that collect RUM data:App Hang Detection
An App Hang is a period during which the main thread is blocked and the UI cannot respond to user input. On iOS it is the only data source behind the Unresponsive Time Rate metric in the analytics dashboard.- The minimum allowed value is
0.1seconds; lower values are raised to 0.1 automatically. For production, 0.25–0.5 seconds is recommended, as a lower threshold produces a lot of noise. - The SDK detects hangs with a 2.5% tolerance, so hangs lasting very close to the threshold may not be reported.
- Enable crash reporting as well, otherwise App Hang errors are reported without a stack trace.
- An App Hang that never recovers, and ends with the system terminating the app, is recorded as a fatal error: it counts toward the crash count and lowers the crash-free rate. Non-fatal hangs are recorded as errors with
error.category = App Hang. - Android has no equivalent option: its main-thread freeze threshold is fixed at 5 seconds.
User Tracking Consent
To comply with privacy regulations like GDPR and CCPA, you can set user tracking consent state:Global Context
Add global context attributes that will be attached to all RUM events:- Swift
- Objective-C
Event Mappers
Use Event Mappers to modify or filter events before they are sent:Related Documentation
SDK Integration
Learn how to quickly integrate the RUM SDK
Data Collection
Learn about data types and attributes collected by the SDK
Compatibility
Learn about SDK compatibility requirements