remote_in_app_messaging 0.1.1
remote_in_app_messaging: ^0.1.1 copied to clipboard
Host-agnostic, JSON-driven in-app messaging for Flutter. Drive modal, bottom sheet and fullscreen messages from a remote JSON payload (e.g. Firebase Remote Config) with targeting, A/B variants and fre [...]
Unreleased #
0.1.1 #
IamBodynow renders the image slot throughbuildIamImage, gaining native support for asset paths,http(s)URLs and.svg(raster + vector) — previously it only handledImage.network. Behavior forimageUrlpointing at a network raster image is unchanged;imageBuilderandimageErrorBuilderoverrides are still honored.buildIamImageexposes an optionalerrorBuilderparameter (raster paths only); SVG rendering and existing call sites are unaffected.
0.1.0 — 2026-05-08 #
Added #
IamServicesingleton withinit,onAppLaunch,onRoute,onEventand refresh hooks.IamHostBindingsabstract host contract for remote payload, analytics, navigation, external URLs, logging andisEnabledkill switch.- JSON schema
version: 1withmessages[],trigger,targeting,frequency,scheduleand weightedvariants[]. - Layouts:
modal,bottom_sheet,fullscreen,image_only_modal. - Triggers:
on_launch,on_route,on_event(param matching, optional delay). - Targeting: platform, env, app-version semver range, orgs, roles, allow/deny user ids.
- A/B variants: weighted random, sticky per user + message.
- Frequency:
maxImpressions+dismissBehavior(do_not_show_again/allow_retry). - Schedule windows:
startAt/endAt(ISO-8601 UTC). - CTA actions:
close,deep_link,external_url. - Tolerant JSON parser: unknown fields ignored, malformed entries skipped via
IamHostBindings.logError. - JSON styling for body and CTA via
IamBodyStyle/IamCtaButtonStyle. - JSON style primitives:
IamEdgeInsets,IamSize,IamBorderRadius,IamBorderSide,IamAlignment,IamTextStyle. parseIamColoraccepts#rrggbband#aarrggbb(leading#optional).- Style precedence: widget ctor arg > JSON
style> built-in default. - Eligibility + selection engine (
InAppMessagingEngine). - Trigger orchestration (
InAppMessagingCoordinator). - Per-message state persistence via
IamStateStore+HiveIamStateStore(hive_ce). - Semver range checks for app-version targeting.
- Modal, bottom sheet and fullscreen renderers on shared
IamRendererwithIamBodyandIamCtaButton. - Runnable example under
example/covering local JSON, simulated Remote Config refresh, all triggers, targeting/frequency edge cases and all layouts. README.mdplus reference docs underdocs/(quick start, triggers, schema, targeting, styling, API).