nfc_wallet_suppression 1.0.0-dev.1 copy "nfc_wallet_suppression: ^1.0.0-dev.1" to clipboard
nfc_wallet_suppression: ^1.0.0-dev.1 copied to clipboard

Lightweight plugin to handle NFC wallet suppression in Flutter

Changelog #

All notable changes to this project will be documented in this file.

1.0.0-dev.1 #

Pre-release of 1.0.0, published to exercise the release pipeline end to end. Functionally identical to the forthcoming 1.0.0 — prefer that release once it is available.

Major release with Pigeon migration for type-safe platform channels.

Added #

  • Pigeon Integration: Migrated from manual method channels to Pigeon-generated type-safe platform communication
  • 🛡️ Compile-time Safety: Eliminated string-based error code matching - all status codes are now type-checked enums
  • 🌐 Multi-platform support: Added stub implementations for web, macOS, Linux, and Windows — requestSuppression returns SuppressionStatus.notSupported, releaseSuppression returns SuppressionStatus.notSuppressed
  • 📚 PUBLISHING.md: Complete publishing checklist and procedures
  • 🔒 SECURITY.md: Security policy and vulnerability reporting guidelines

Changed #

  • Baseline Bump: Minimum SDK requirements raised to Flutter 3.35.0+ and Dart 3.9.0+
  • BREAKING (Internal): Platform interface now uses PigeonNfcWalletSuppression instead of MethodChannelNfcWalletSuppression
  • Improved Error Handling: Platform errors are now returned as structured SuppressionResult objects instead of thrown exceptions
  • Enhanced Logging: Better structured error messages with full context from platform code
  • Code Quality: Reduced manual string matching and type coercion throughout codebase
  • 🤖 Android Built-in Kotlin migration (Flutter 3.44+): The Android build no longer unconditionally applies the Kotlin Gradle Plugin. From AGP 9 onward Kotlin is provided by AGP itself; KGP is now applied conditionally (only for AGP < 9) so the plugin keeps building on both new and older toolchains. The deprecated kotlinOptions block was replaced with the modern kotlin.compilerOptions DSL.
  • ⬆️ Example toolchain bump: Example app updated to Gradle 9.1.0, Android Gradle Plugin 8.13.2, and Kotlin 2.4.10 to track currently-supported build tooling. Staying on AGP 8.x is deliberate: AGP 9 is only reachable once the declared Flutter floor moves to 3.44+.
  • 🧪 JaCoCo coverage config: Dropped the deprecated testCoverageEnabled build flag (incompatible with AGP 8.11+ Gradle task validation); unit-test coverage now relies solely on the Gradle JaCoCo extension already configured in testOptions.

Fixed #

  • 🐛 Type Safety: Eliminated possibility of typos in error code strings between platforms
  • 🐛 Error Context: Platform errors now include detailed messages in structured format
  • 🐛 Package size: .pubignore shadows the root .gitignore, so local build output was being bundled into the published archive. Restated the artifact rules in .pubignore — the archive drops from 28 MB to 326 KB

Technical Details #

  • Uses Pigeon v22.7+ for code generation
  • Generated platform channel code for iOS (Swift) and Android (Kotlin)
  • Breaking API Changes: SuppressionStatus replaces bool returns, and Dart SDK minimum is now 3.9.0.
  • Comprehensive test coverage: Dart unit tests, Android JVM tests, and iOS XCTest suite

0.1.1 #

  • DOCS Clarified that NFC permission is automatically included via plugin manifest (no app-level declaration needed)

  • First stable release of the nfc_wallet_suppression plugin.

  • DOCS Updated readme

0.0.2-beta #

  • Enhances error handling within the NFC wallet suppression plugin and refactors the code for better clarity.
  • iOS: Improved error handling for iOS.
  • Android: Got a working implementation of the NFC wallet suppression plugin.

0.0.1-beta #

  • Initial release of the nfc_wallet_suppression plugin.
  • iOS: Added NFC wallet suppression using PassKit (request, release, check status).
  • Android: Added NFC wallet suppression using NfcAdapter (request, release, check status).