introduceme 1.0.1
introduceme: ^1.0.1 copied to clipboard
Introduce Me — a flexible, lightweight Flutter showcase and onboarding package with a smart tour engine and lean rendering core.
1.0.1 #
- Branching tours:
onDetermineNextStep(currentStep, currentIndex, steps)onTourController/IntroduceMeScopeWidget(andIntroduceMeScopeHandle) — consulted before every automatic advance so app code can redirect the tour to a different step based on custom logic (e.g. "if user has no account, jump to the sign-up step; otherwise run normally"). Return a step index to jump to, ornullto keep the default in-order flow. - Example app: fix the "Branching demo" section being inserted above the cross-screen
settings-togglestep on the Settings screen, which pushed it past theListView's initial build window and made the onboarding tour skip it after tapping the Settings icon. It now sits after the onboarding controls instead. - Example app: fix "Start branching demo tour" appearing to do nothing — await
dismiss()beforestart(), resetskipIfTargetNotPresentleft over from the resilience demo, move the start button next to thebranch-startanchor, and scroll that target into view before the tour begins.
1.0.0 #
- Initial release.
- Showcase widgets:
Showcase,Showcase.auto,Showcase.withWidget,.introduceMe(). - Smart tour engine with auto-discovery (
id+order+tourId), cross-screen resume, and named scopes. - Cross-screen: defer advance after
onTargetClickwhen the next step is on an unmounted route; order-gap detection so later mounted steps are not skipped;routeSettleDelayfor stable tooltip positioning after route transitions; the outgoing tooltip is hidden immediately while waiting instead of lingering over the new route. - Fix: the overlay could silently miss updates right after a route push/pop finished animating (its rebuild was only deferred to "the next frame", which may never arrive if nothing else requests one) — the tooltip now reliably reappears for the next cross-screen step.
- Tooltip placement (
auto/above/below/left/right), arrows, and configurable actions. - Multi-showcase via
groupId+isPrimary(soft cap 8 targets). - Overlay blur (
blurValue), glass tooltip, floating action widget, and scroll loading widget. - Persistence (
TourStorage,SharedPrefsTourStorage,MemoryTourStorage) and analytics hooks. - Lean rendering: single
OverlayPortal, throttled/coalesced position tracking, performance-safe defaults. - Accessibility:
enableSemanticson scope and per step (defaulttrue) — screen-reader labels on overlay hit areas and default tooltips. - Resilience:
skipIfTargetNotPresent+missingTargetTimeout— auto-skip steps whose target never becomes visible; firesTourAnalytics.onStepSkipped. - Auto-scroll toggle:
enableAutoScrollon scope and per step (defaulttrue). Whenfalse, the tour waits for manual scroll;scrollAlignmentonly applies when auto-scroll runs. - Dismiss reasons:
onDismiss(tourId, TourDismissReason)on scope —skipped,barrierTap,disabledScope,programmatic(not fired on normal tour completion). - Tooltip actions: per-button
backgroundColor,textColor,textStyle,borderRadius,padding,hideWhenpredicate, andTooltipActionPosition(inside/outside). - Look presets:
ShowcaseLook(material,ios,glass,neumorphism,retro,neoBrutalism) viaIntroduceMeTheme.lookand per-steplook— styles tooltip, buttons, and target highlight ring (not barrier/blur). - Example app: demo steps, Settings look dropdown, resilience tour,
onDismissSnackBar. - Tests: widget tests in
test/features_priority_test.dart.