flowboard_flutter 1.2.0
flowboard_flutter: ^1.2.0 copied to clipboard
A versatile suite of UI components and flow management tools for building dynamic onboarding and dashboards in Flutter.
1.2.0 #
- New
paywallscreen type: screens withtype: "paywall"are routed by TYPE to the newpaywallScreenBuilder(available onlaunchOnboarding,launchOnboardingById, andFlowboardFlow). One builder serves every paywall screen; read the placement fromctx.screenData['properties']['placement']. Each screen keeps its own unique id, so multiple paywalls in one flow appear as separate funnel steps in analytics. - Soft gate semantics: call
ctx.onNext()after purchase AND after dismiss. If nopaywallScreenBuilderis registered, paywall screens are skipped during navigation (never a blank frame), including when the initial page lands on one. - Contract:
render-spec/paywall-screen-v1.md. Existingtype: "custom"screens (e.g.rc_paywall) are unchanged.
1.1.0 #
long_press_button: opt-in fingerprint hold indicator viaholdIndicator: "fingerprint"— a centered Touch-ID glyph tinted withprogressColorthat colors in bottom-to-top while holding, replacing the progress ring (seerender-spec/hold-button-fingerprint-v1.md). Default stays"ring".
1.0.1 #
- Analytics: every event now carries
flow_context.flow_version, read from the fetched flow (flow_versionbody key orX-Flowboard-Flow-Versionheader), so dashboard stats can filter by published flow version. Omitted for old/cached snapshots without a version. - Resolver coerces string
flow_versionvalues to int and drops unparseable ones.
1.0.0 #
Swift-parity milestone: brings the Flutter SDK to the same level as flowboard-pckg-swift 1.5.x (audit: SWIFT_PARITY_AUDIT.md).
Added #
FlowboardNormalizerpre-render pass: action aliases (jumpTo,web_url,rateApp,ask_permission,goNext, …), component aliases (loader/fake_loader→fake_progress_bar,page_indicator→pageview_indicator,center→ overlay stack), mediasourceobject hoisting,wheelSettings/centerHighlightsand loader prop aliases,linkedSlider→linkedTo- Screen
displayCondition({logic: all|any, rules: [{fieldId, operator, value}]}): hidden screens are skipped bynext/previous/jump_to; a hidden jump target auto-advances; all-remaining-hidden finishes the flow date_pickercomponent perrender-spec/date-picker-component-v1.md(3-wheel,YYYY-MM-DD,minDate/maxDate,columnOrder,displayFormat, required-validation support)- Host hooks
onAction/onCustomAction/onPermissionRequest/onURLOpenreturningFlowboardActionResolution(Swift launch-options parity;customActionBuilderkeeps precedence) FlowboardFlowController.setValue/setValues(+ctx.setValue/ctx.setValuesfor custom screens): host-injected values feed conditional routes, clear invalid state, and persist to the resume snapshotFlowboardRuntimeDependencies(url opener, permission requester, app rater) injectable viaFlowboard.initor per launchFlowboardHapticEnginewith globalisEnabledand Swift-parity call sites (button tap medium, hold start/complete, selection & wheel changes, slider snaps, loader completion)- Stack fill
type: "image"renders as a decoration image inside the corner shape; gradient progress colors now apply to dotted screen progress; wheel pickerwheelHeight - Golden-flow parity coverage extended to all 9 shared fixtures;
golden-flows/manifest.jsoncreated with per-platform status and documented deltas
Changed #
- Keyboard-aware layout parity with Swift 1.5.0: keyboard force-enables scrolling on non-scrollable screens (with flexible spacers collapsing), skips the double bottom safe-area inset, and tracks insets with a 100ms animation
- In-place required validation per
render-spec/form-required-validation-v1.md: keyboard/focus/scroll survive a failednext, the text-input error row is height-reserved, and the validation SnackBar is gone - Navigation guards: 250ms debounce;
request_permissionadvances exactly one screen on requester completion regardless of grant result (Swift parity — previously only granted/limited advanced; the "open Settings" snackbar remains as additive feedback) - Asset preloading looks ahead 3 screens (was 1); the next screen's videos pre-roll their first frame; video cache holds 16 controllers (was 4) with a generation guard against post-clear repopulation
- Analytics:
sdk_versionis nowflutter-1.0.0(was a hardcoded1.0.0);flow_contextis the structured{flow_id, variant_id, audience_id, bucket, experiment_id, session_id}set (was the whole flow header) - Buttons inside horizontal flex parents (
row) shrink-wrap to their label instead of failing layout; fill-dimension stacks degrade to intrinsic size along an unbounded parent axis
Breaking #
health/health_datano longer maps toPermission.sensors; registerFlowboardHealthPermission.handler(see README) or the key resolves tounsupported- Saved 0.x onboarding progress is dropped (new snapshot store: per-flow variant-scoped keys
flowboard.progress.<flowId(.variantId)>, screen-id resume anchor, 30-day staleness)
Release rule: bump pubspec.yaml and lib/src/sdk_version.dart together (enforced by test/analytics_manager_test.dart).
0.1.0 #
- Add
long_press_buttoncomponent (hold-to-confirm with circular progress ring) for parity with the Swift renderer - Bundle the seven core font families (Inter, Inter Tight, Baloo 2, DynaPuff, Cormorant, DM Serif Text, Varela Round) as offline assets; font resolution is now local-first with GoogleFonts as fallback
- Preload network videos: the asset preloader now warms component and background videos into a bounded controller cache, so video screens paint their first frame instantly instead of buffering on entry (parity with the Swift video cache)
- Add screen entrance animation: opt-in per-screen
entranceAnimation(staggerFromTop) fades + slides top-level children in with a top→bottom stagger, matching the Swift renderer (disabled by default; seerender-spec/screen-entrance-animation-v1.md) - Selection list
autoGoNextnow waits ~250ms after a single-select tap before advancing, so the selection highlight is visible first (parity with the SwiftautoGoNextDelay)
0.0.7 #
- Improve button and text input (icon)
0.0.6 #
- Improve wheelpicker
0.0.5 #
- Add improved onboarding flow UI behavior
0.0.4 #
- clean button color
- Add improved onboarding flow UI behavior
0.0.2 #
- Add improved onboarding flow UI behavior and comprehensive regression tests.
- Refine package documentation and publish readiness checks.
0.0.1 #
- TODO: Describe initial release.