Skip to content

0.2.0

Choose a tag to compare

@ab1470 ab1470 released this 05 May 14:29
· 79 commits to master since this release
71cfb55

What's New

  • Form lifecycle events — New onFormLifecycleEvent stream emits typed FormShown, FormDismissed, and FormCtaClicked events for in-app forms. Use Dart pattern matching for exhaustive handling. (#75)

  • Native SDK upgrade — Now consuming KlaviyoSwift ~> 5.3.1 and klaviyo-android-sdk 4.4.0, which brings:

    • Push notification action buttons (up to 3 tappable buttons per Klaviyo push, configured in the Klaviyo dashboard — no integration changes required)
    • Floating (Android) / Flyout (iOS) in-app form presentation styles
    • Cross-platform form lifecycle hooks (surfaced through the new onFormLifecycleEvent stream above)

    See klaviyo-android-sdk 4.4.0 and klaviyo-swift-sdk 5.3.0 for full native release notes. (#88)

Bug Fixes

  • Android push tap eventsonPushNotification now correctly emits push_notification_opened when a user taps a Klaviyo push. Previously the tap event was silently dropped on Android due to a com.klaviyo. namespace prefix mismatch in the intent extras. (#83)
  • Re-initializationKlaviyoSDK().initialize() no longer silently swallows subsequent calls with a different API key, enabling runtime account switching for multi-tenant apps. The apiKey is now updated only after the native call succeeds, so a failed re-init does not corrupt state. (#80)
  • Flutter version compatibility — Relaxed the meta dependency constraint from ^1.17.0 to ^1.15.0 so the SDK resolves cleanly against Flutter 3.24.x–3.37.x (these versions pin meta transitively via flutter_test). (#82)

Other Changes

  • Documentation — README updated to cover push action buttons, the new floating/flyout form layouts, and the typed onFormLifecycleEvent API.
  • Example app — Deferred the Android notification permission prompt to the Push tab so it fires on user opt-in rather than at app launch. (#84)
  • Example app — Differentiated pure silent pushes from standard pushes with content-available in the iOS AppDelegate, with matching docs in the README's Silent Push section. (#72)
  • Build & CI — Migrated release workflow to OIDC-based pub.dev publishing (replaces the credential-based PUB_CREDENTIALS secret with the Dart team's reusable workflow). (#71)
  • Build & CI — Fixed local SDK setup script, JitPack branch version handling (/~), and pegged the example app's iOS MARKETING_VERSION to the plugin version. (#74, #76, #89)
  • README — Removed WIP status banner. (#65)

Full Changelog: 0.1.0...0.2.0

What's Changed

  • Migrate release workflow to OIDC-based pub.dev publishing by @ab1470 in #71
  • Update README to remove WIP status by @ajaysubra in #65
  • [MAGE-218] feat(example/ios): differentiate silent from standard push with content-available by @aahiltn in #72
  • Fix JitPack branch version: replace / with ~ in branch names by @evan-masseau in #74
  • chore(android) Fix android local SDK setup by @evan-masseau in #76
  • fix(deps): relax meta constraint to ^1.15.0 for Flutter 3.24.x-3.37.x compat by @ab1470 in #82
  • fix(example): defer notification permission to Push tab by @ab1470 in #84
  • chore(scripts): peg example app version to plugin version by @ab1470 in #89
  • docs(readme): update for 0.2.0 (Android 4.4.0 / iOS 5.3.0) by @ab1470 in #90
  • docs(changelog): fill in 0.2.0 entry by @ab1470 in #92
  • fix(scripts): verify newly synced files in bump_version.sh by @ab1470 in #93
  • fix(forms): tighten form lifecycle event handling for cross-platform parity by @ab1470 in #94
  • docs(forms): add form lifecycle events section to README by @evan-masseau in #95
  • Version 0.2.0 Release by @evan-masseau in #77

Full Changelog: 0.1.0...0.2.0