playstep 0.6.0
playstep: ^0.6.0 copied to clipboard
Playable, video-first guides for Flutter apps. Each step shows a short looping clip, spotlights the real widget and completes itself when the user does the action.
0.6.0 #
PlayStep.pause()andPlayStep.resume()stop guides for now, for a user who should not see them at the moment (a guest in this workspace, say);PlayStep.isPausedtells you whether they are. While paused nothing starts (events, screen views, first-visit triggers,start), a guide that is showing leaves the screen with nothing stored and no event sent, and the guide list closes and cannot open. Stored progress is never touched.resume()shows the guide again on the same step, else checks triggers for the current screen. A pause lasts untilresume()or the app restarts.- A guide no longer gets stuck when your app takes a step's widget away before the user uses it (they cancel the dialog it sits in, say): the guide steps back to the nearest earlier step whose widget is on screen, never past a page step or a step with no widget. A tap on the widget first (a submit button closing its dialog) keeps the step waiting for its event.
0.5.1 #
- Android back on a step card hides the guide instead of dismissing it: no
guide_dismissedis sent, no trigger starts it again until the next launch (or a progress reset), and the next launch picks it up at the same step. Back still closes the completion card and the guide list. - While one of your app's own dialogs, bottom sheets, menus or dropdowns is open (a popup route on the navigator that
has
PlayStep.navigatorObserver), back is your app's and PlayStep leaves the guide alone.
0.5.0 #
- Guides look like part of your app, in light and dark mode: they wear the app's brand kit from the dashboard (Guides › Appearance): accent, card and text colours for light and dark, corners, a soft or no card shadow, backdrop dim and your app's font (a family registered in your pubspec). The colours arrive ready from the config.
- Light or dark follows your app's
Theme(MaterialApp.themeMode,CupertinoApp) rather than only the device, and an open guide switches with it.PlayStep.init(colorMode:)andPlayStep.setColorMode()(PlayStepColorMode.auto,.light,.dark) override that. - Capture links also send each screen's look (the app's theme colours, font and corner sizes; never text) for theme detection.
- Configs published before brand kits keep working: a guide's accent still applies.
0.4.0 #
- Events are never lost: a batch is kept on the device (
shared_preferences) until the API takes it, retried with backoff on network errors, 408, 429 and 5xx (honouringRetry-After), and sent on the next launch if the app closes first. Every event carries a randomid, so a retried batch counts once. - Events are sent when the app loses focus or is hidden too, not only when it is paused or closed.
- A host
onEventthat throws no longer stops events from being sent. - When the API no longer knows the key (rotated, or the app deleted), the cached config is forgotten and no guide shows, instead of guides running from the cache uncounted.
0.3.0 #
- Page steps (guide spec version 3): a step with
complete_on: { type: 'page', path: '/projects*' }completes when the user is on a matching route, straight away if they already are, so a guide that starts anywhere (the guide list, a "Show me how" button, Replay) moves past the steps that lead to where it already is. Routes come from named routes through the navigator observer orPlayStep.page(). Tapping the step's anchor does not complete it. skip_if_onon any step leaves it out when it would show on a matching route.- Steps moved past this way still report
step_shownandstep_completed, and there is no Back to them. PlayStep.openLauncher()opens the list while a guide is showing: the guide waits and carries on when the list closes. Android back closes the list first.- Version 0.2 and older skip spec version 3 guides.
0.2.0 #
PlayStep.resetProgress([guideId])lets guides start again: it clears this device's progress for one guide or all of them, keeps the user, their traits and the device id, closes a guide it clears, checks first-visit and screen triggers again for the current screen straight away and reports a newprogress_resetevent. Queued beforeinit.PlayStep.openLauncher()shows the list of guides people can replay whether or not the floating launcher button is on, so you can open it from your own help menu;launcher.enablednow only shows or hides the button. The list has a close control, takes the launcher's corner when there is no button, shows Replay on guides the user has started and Start over. It does nothing when no guide is listed, and Android back only closes a list on screen.reset()in a preview leaves the stored device id alone (previews already kept progress in memory).PlayStep.start(id)does nothing when that guide is already showing its first step.
0.1.0 #
- First release.