Releases: wiredashio/wiredash-sdk
v2.2.1
v2.2.0
-
Track Custom Analytics events (requires paid plan) #338
Record user interactions or other significant occurrences within your app and send them to the Wiredash service for analysis.
Use
Wiredash.trackEvent
for easy access from everywhere in your app.await Wiredash.trackEvent('Click Button', data: {/**/});
Use the
WiredashAnalytics
instance for easy mocking and testingfinal analytics = WiredashAnalytics(); await analytics.trackEvent('Click Button', data: {/**/}); // inject into other classes final bloc = MyBloc(analytics: analytics);
Access the correct
Wiredash
project via context to send events to if you use multiple Wiredash widgets in your app. This way you don't have to specify theprojectId
every time you calltrackEvent
.Wiredash.of(context).trackEvent('Click Button');
eventName constraints
- The event name must be between 3 to 64 characters long
- Contain only letters (a-zA-Z), numbers (0-9), - and _ and spaces
- Must start with a letter (a-zA-Z)
- Must not contain double spaces
- Must not contain double or trailing spaces
data constraints
- Parameters must not contain more than 10 key-value pairs
- Keys must not exceed 128 characters
- Keys must not be empty
- Values can be String, int or bool. null is allowed, too.
- Each individual value must not exceed 1024 characters (after running them through jsonEncode).
Event Sending Behavior:
- Events are batched and sent to the Wiredash server periodically at 30-second intervals.
- The first batch of events is sent after a 5-second delay.
- Events are also sent immediately when the app goes to the background (not applicable to web platforms).
- If events cannot be sent due to network issues, they are stored locally and retried later.
- Unsent events are discarded after 3 days.
Multiple Wiredash Widgets:
If you have multiple [Wiredash] widgets in your app with different projectIds, you can specify the desired [projectId] when creating [WiredashAnalytics].
This ensures that the event is sent to the correct project.If no [projectId] is provided and multiple widgets are mounted, the event will be sent to the project associated with the first mounted widget. A warning message will also be logged to the console in this scenario.
Background Isolates:
When calling [trackEvent] from a background isolate, the event will be stored locally.
The main isolate will pick up these events and send them along with the next batch or when the app goes to the background.
v2.1.2
v2.1.1
v2.1.0
v2.0.0
-
New: Wiredash Analytics ๐
Get real-time analytics that is GDPR-compliant and hosted in the EU ๐ช๐บ -
New: Force an email address with
EmailPrompt.mandatory
in feedback flow #327 -
Compatability with Flutter 3.19.0 (stable) and 3.20.0 (beta)
Removed deprecated APIs
WiredashThemeData()
parameterfontFamily
, usetextTheme
insteadWiredash.of(context).setBuildProperties()
will be captured automatically. Just remove the callWiredash.of(context).show()
parameterfeedbackOptions
is nowoptions
Wiredash()
parameternavigatorKey
, which is not required anymoreWiredashFeedbackOptions()
parameterbool askForUserEmail
replaced withEmailPrompt email
WiredashFeedbackOptions()
parameterbool screenshotStep
replaced withScreenshotPrompt screenshot
CustomizableWiredashMetaData.populated()
got removed. Use the defaultCustomizableWiredashMetaData()
insteadCustomizableWiredashMetaData
removedbuildVersion
,buildNumber
andbuildCommit
. Those are now captured automatically
v1.9.0
v1.8.1
v1.8.0
- Wiredash now automatically collects the version information of your app. No need to set
buildVersion
,buildNumber
anymore. If you want to override this information, you can still do so via dart-define at compile time https://docs.wiredash.io/sdk/custom-properties/#during-compile-time. - New:
Wiredash(collectSessionMetaData: )
combines and replacescollectSessionMetaData
ofWiredashFeedbackOptions
andPsOptions
. No deduplicate code anymore ๐// Before return Wiredash( projectId: "...", secret: "...", feedbackOptions: WiredashFeedbackOptions( collectMetaData: (metaData) { return metaData ..userEmail = '[email protected]' ..userId = '007' ..custom['myKey'] = {'myValue': '007'}}, ), psOptions: PsOptions( collectMetaData: (metaData) { return metaData ..userEmail = '[email protected]' ..userId = '007' ..custom['myKey'] = {'myValue': '007'}}, ), ),
// After return Wiredash( projectId: "...", secret: "...", collectMetaData: (metaData) { return metaData ..userEmail = '[email protected]' ..userId = '007' ..custom['myKey'] = {'myValue': '007'}}, ),
- The metadata properties
buildVersion
,buildNumber
andbuildCommit
cannot be set viaWiredash.of(context).modifyiMetaData()
anymore. This information has to be provided at compile time (dart-define) or is read automatically from the app bundle setBuildProperties()
is now deprecated and noop, also use dart-define instead- New
Wiredash.of(context).resetMetaData()
to easily reset all metadata - Add italian
it
locale ๐ฎ๐น#317 - Add farsi
fa
locale ๐ฎ๐ท๐ฆ๐ซ#316 - Updated norwegian
no
locale ๐ณ๐ด#303 - Fix issues with the animated backdrop #314 #315