userpilot_flutter 1.2.0
userpilot_flutter: ^1.2.0 copied to clipboard
Plugin package to bridge the native Userpilot SDKs in a Flutter application.
1.2.0 #
- ✨ Support preview experience and test push notifications.
- ✨ Support deep links / URL scheme handling.
- ✨
didHandleURLnow waits forinitializeinstead of dropping the link, so you no longer have to order the two calls. Up to 10 URLs wait at once, each for at most 10 seconds, after which it returnsfalseand your own routing runs. - ⚡️ Improve performance.
- ⚡️ Interaction autocapture no longer walks your whole widget tree on every touch, and no longer re-does the same work for each candidate it considers. Resolving a tap used to cost more the bigger the screen, which showed up as scroll jank throughout an app.
- ✨
UserpilotRedactTextandUserpilotIgnoreInteractionsnow take an optionalredact/ignoreflag so they can be nested — the marker closest to the interaction wins, andUserpilotRedactText(redact: false, child: …)re-enables capture inside a subtree an ancestor masked. The flag defaults totrue, so existing code that passes no flag keeps working unchanged. - ⚡️ Building a captured hierarchy no longer scales with the size of the screen. On a 400-row screen it measured 71.8ms down to 23.2ms per tap, and is now flat rather than growing with the row count.
maxHierarchyDepthstill defaults to 25, and lowering it is no longer a meaningful performance lever now that the cost it bounds is a small fixed amount — choose it for the elements you need to target on. It now also bounds how far up accessibility fields are read, so a shallower window can drop aSemanticslabel a rule depends on. - ♻️ Android now rejects SDK calls made before
initializewith anotInitializederror instead of silently ignoring them, matching iOS. - Update Userpilot native SDK dependencies - iOS 1.3.0, Android 1.3.0
- Breaking:
hierarchynow reports a lazy list's own item index inattr__index, so a row keeps the same hierarchy at every scroll position. It previously counted the row's position among the children the list had built, which changes as you scroll — the same row reportedattr__index="3"at one offset and"2"at another, so a rule targeting it matched only intermittently. Rules that match a hierarchy containing aListView/SliverListsegment need updating to the row's item index. - Breaking:
hierarchynow reportsattr__desconly on the node that actually carries the accessibility label. It previously searched each node's whole subtree, so an unrelated child's label was copied onto every ancestor segment — aCheckbox's label appearing onViewport— and the value changed depending on which rows a lazy list happened to have built, making the same element report different hierarchies at different scroll positions. Targeting rules that match one of those copiedattr__descvalues need updating to match the node that owns the label instead. - Breaking: the
accessibility_label,accessibility_identifier,accessibility_hint,accessibility_valueandview_tagfields now resolve to the nearest source instead of the first one found anywhere on screen. Each field is read from the interacted widget's ancestors, nearest outwards and bounded bymaxHierarchyDepth, and only falls back to the widget's own subtree for fields no ancestor supplied. Previously the search ran to the root and through the entire subtree before choosing, so aSemanticslabel on a distant unrelated ancestor could describe an unlabelled button, andview_tagpreferred a descendant'stagForChildrenover the ancestor whose children it actually tags. Rules matching a value that came from outsidemaxHierarchyDepth, or aview_tagtaken from a descendant, need updating to the value on the nearestSemantics. Wrapping the control in your ownSemanticsmakes that value authoritative. - ⚡️ Collecting accessibility metadata no longer walks a widget's whole subtree when its nearest ancestor already describes it, and no longer repeats that walk for each hit-test element that resolves to the same widget. Tapping a control inside a large container cost one subtree walk per element on the touched path; it now costs at most one, and usually none.
- Breaking: the recommended iOS deep-link integration now uses the
UIScenelifecycle, which requires Flutter 3.38.0 or later in your app. The previous app-delegate setup still works below that and stays documented. see Configuring the Userpilot URL Scheme.
1.1.0 #
- Support Auto Capture feature.
- Update Userpilot native SDK dependencies - iOS 1.2.2, Android 1.2.2
1.0.14 #
- 🐛 Added automatic cleanup of cached track events after processing it to prevent duplicate event handling and tracking.
- ⬆️ Update Userpilot native SDK dependencies
1.0.13 #
- ⬆️ Update Userpilot native SDK dependencies - iOS 1.0.17
1.0.12 #
- ⬆️ Update Userpilot native SDK dependencies - iOS 1.0.16, Android 1.0.16
1.0.11 #
- 🐛 Fixed Android build configuration issues.
1.0.10 #
- ⬆️ Update Userpilot native SDK dependencies - iOS 1.0.15, Android 1.0.14
- 👔 Added submissionId parameter to all Survey events
1.0.9 #
- ⬆️ Update Userpilot native SDK dependencies - iOS 1.0.14, Android 1.0.13
1.0.8 #
- ⬆️ Update Android native SDK dependency - Android 1.0.12
- 🐛 Fix Gif images rendering
- 🐛 Fix auto lazy dependencies initializer
1.0.7 #
- ⬆️ Update Android native SDK dependency - Android 1.0.11
- 🐛 Fix keyboard visibility detection
1.0.6 #
- 🐛 Fix unrecognized disableRequestPushNotificationsPermission configuration option
1.0.5 #
- ⬆️ Update native SDK dependencies - iOS 1.0.12, Android 1.0.10
- 🔧 Update configurations options
- ♻️ Update plugin to support SPM
1.0.4 #
- ⬆️ Update native SDK dependencies - version 1.0.7
1.0.3 #
- ⬆️ Update native SDK dependency - version 1.0.6
1.0.2 #
- ⬆️ Update native SDK dependency - Android version 1.0.4, iOS version 1.0.5
- 👔 Enhanced experience logging for better insight during debugging and analysis.
1.0.1 #
- ⬆️ Update native SDK dependency - version 1.0.2
1.0.0 #
- ⬆️ Update native SDK dependency - version 1.0.1
0.0.1-beta.3 #
- ⬆️ Update native SDK dependency - version 0.0.1-rc.2
0.0.1-beta.2 #
- ⬆️ Update native SDK dependency - version 0.0.1-rc.1
- ✅ Introduced Feedback (Surveys, NPS).
- ✅ Added Push Notifications support.
- ⬆️ Support for Android 15.
0.0.1-beta.1 #
- ✨ Plugin and example application usage
- ✨ Depends on iOS SDK version 0.0.1-beta.4
- ✨ Depends on Android SDK version 0.0.1-beta.4