nfc_wallet_suppression 1.0.0-dev.1
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 —
requestSuppressionreturnsSuppressionStatus.notSupported,releaseSuppressionreturnsSuppressionStatus.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
PigeonNfcWalletSuppressioninstead ofMethodChannelNfcWalletSuppression - Improved Error Handling: Platform errors are now returned as structured
SuppressionResultobjects 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
kotlinOptionsblock was replaced with the modernkotlin.compilerOptionsDSL. - ⬆️ 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
testCoverageEnabledbuild flag (incompatible with AGP 8.11+ Gradle task validation); unit-test coverage now relies solely on the Gradle JaCoCo extension already configured intestOptions.
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:
.pubignoreshadows 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:
SuppressionStatusreplaces 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_suppressionplugin. -
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_suppressionplugin. - iOS: Added NFC wallet suppression using PassKit (request, release, check status).
- Android: Added NFC wallet suppression using NfcAdapter (request, release, check status).