flowboard_flutter 1.0.0 copy "flowboard_flutter: ^1.0.0" to clipboard
flowboard_flutter: ^1.0.0 copied to clipboard

A versatile suite of UI components and flow management tools for building dynamic onboarding and dashboards in Flutter.

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 #

  • FlowboardNormalizer pre-render pass: action aliases (jumpTo, web_url, rateApp, ask_permission, goNext, …), component aliases (loader/fake_loaderfake_progress_bar, page_indicatorpageview_indicator, center → overlay stack), media source object hoisting, wheelSettings/centerHighlights and loader prop aliases, linkedSliderlinkedTo
  • Screen displayCondition ({logic: all|any, rules: [{fieldId, operator, value}]}): hidden screens are skipped by next/previous/jump_to; a hidden jump target auto-advances; all-remaining-hidden finishes the flow
  • date_picker component per render-spec/date-picker-component-v1.md (3-wheel, YYYY-MM-DD, minDate/maxDate, columnOrder, displayFormat, required-validation support)
  • Host hooks onAction / onCustomAction / onPermissionRequest / onURLOpen returning FlowboardActionResolution (Swift launch-options parity; customActionBuilder keeps precedence)
  • FlowboardFlowController.setValue/setValues (+ ctx.setValue/ctx.setValues for custom screens): host-injected values feed conditional routes, clear invalid state, and persist to the resume snapshot
  • FlowboardRuntimeDependencies (url opener, permission requester, app rater) injectable via Flowboard.init or per launch
  • FlowboardHapticEngine with global isEnabled and 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 picker wheelHeight
  • Golden-flow parity coverage extended to all 9 shared fixtures; golden-flows/manifest.json created 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 failed next, the text-input error row is height-reserved, and the validation SnackBar is gone
  • Navigation guards: 250ms debounce; request_permission advances 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_version is now flutter-1.0.0 (was a hardcoded 1.0.0); flow_context is 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_data no longer maps to Permission.sensors; register FlowboardHealthPermission.handler (see README) or the key resolves to unsupported
  • 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_button component (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; see render-spec/screen-entrance-animation-v1.md)
  • Selection list autoGoNext now waits ~250ms after a single-select tap before advancing, so the selection highlight is visible first (parity with the Swift autoGoNextDelay)

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.