Skip to content

Releases: fluttercommunity/flutter_workmanager

v0.9.0 - Hook-Based Debug System

31 Jul 19:45
Compare
Choose a tag to compare

🎉 Major Release - Hook-Based Debug System

This release introduces a major upgrade to the debugging experience with an extensible hook-based system, eliminating the risk of debug notifications appearing in production apps while providing better task lifecycle visibility.

🚨 Breaking Changes

Debug System Changes

  • isInDebugMode parameter is deprecated in Workmanager().initialize()
    • Parameter still accepted but will be removed in future version
    • Replace with hook-based debug system using WorkmanagerDebug.setCurrent()
  • iOS minimum deployment target increased to 14.0
    • Update your iOS project's deployment target to 14.0+
    • Required for notification debug handlers (iOS 14+ notification permissions)
  • registerPeriodicTask now uses ExistingPeriodicWorkPolicy
    • Replace ExistingWorkPolicy parameter with ExistingPeriodicWorkPolicy

✨ New Features

Hook-Based Debug System

  • NotificationDebugHandler - Shows task status as notifications with configurable channels
  • LoggingDebugHandler - Writes task events to system log
  • Eliminates production risks - Debug notifications only appear when explicitly enabled by developers
  • Configurable notification channels and grouping for better organization on Android

Enhanced Task Lifecycle Tracking

  • TaskStatus.SCHEDULED - Tasks are now tracked when first scheduled
  • TaskStatus.RESCHEDULED - Better visibility into task retry behavior
  • Improved notification flow: Started → Rescheduled → Retrying → Success

🐛 Bug Fixes

  • Fixed periodic tasks running at wrong frequency when re-registered (#622)
    • Changed default policy from KEEP to UPDATE
    • UPDATE ensures new task configurations replace existing ones
  • Fixed crash when inputData contains null values (thanks @Dr-wgy)
  • Fixed Android retry detection using runAttemptCount to properly identify retrying tasks
  • Fixed crash when background task callback is null (thanks @jonathanduke, @Muneeza-PT)

📈 Improvements

  • Updated androidx.work from 2.9.0 to 2.10.2 for better stability
  • Cleaner notification icons using modern symbols (▶️ ✅ ❌ 🔄 ⏹️ 📅)
  • Better error handling - Removed duplicate exception notifications for normal task failures
  • Example app improvements with proper package naming and AndroidManifest structure

🙏 Contributors

Special thanks to @Dr-wgy, @jonathanduke, @Muneeza-PT, and all contributors who helped identify and resolve critical issues!

📦 Published Packages

v0.8.0 - Federated Plugin Architecture

01 Jul 16:40
b45313b
Compare
Choose a tag to compare

🎉 Major Release - Federated Plugin Architecture

This release represents a major architectural change to the flutter_workmanager plugin, migrating to a federated plugin structure for better platform extensibility and maintainability.

🚨 Breaking Changes

Architecture Changes

  • Migrated to federated plugin architecture - Platform-specific implementations are now in separate packages:
    • workmanager_platform_interface - Shared platform interface
    • workmanager_android - Android WorkManager implementation
    • workmanager_apple - iOS BGTaskScheduler implementation (renamed from workmanager_ios)
    • workmanager - Main package with unified API

API Changes

  • Enum values changed from snake_case to camelCase for Dart conventions:
    • NetworkType: not_requirednotRequired, not_roamingnotRoaming
    • OutOfQuotaPolicy: run_as_non_expedited_work_requestrunAsNonExpeditedWorkRequest, drop_work_requestdropWorkRequest
  • Removed JSON serialization for inputData - Now uses native Map transfer for better performance and type safety
  • Android: Stricter payload type validation - only primitive types and lists of strings supported

✨ New Features

  • Android: Added isScheduledByUniqueName method to check if a periodic task is scheduled
  • Foundation for future macOS support using NSBackgroundActivityScheduler
  • Added comprehensive integration tests for data transfer and retry functionality

🐛 Bug Fixes

  • iOS: Fixed initialDelaySeconds parameter handling - was previously ignored
  • iOS: Fixed swapped constraints bug for requiresNetworkConnectivity and requiresExternalPower (#562)
  • iOS: Fixed compilation errors with Map handling
  • Android: Fixed NullPointerException when isInDebugMode was not properly initialized
  • Android: Fixed v2 embedding import in BackgroundWorker (#595)
  • Android: Fixed array/list handling in payload processing
  • Fixed input data type handling across platforms - now properly supports all primitive types and lists

📈 Improvements

  • Updated to Flutter 3.32 and flutter_lints 6.0.0
  • Android: Updated target SDK to 35
  • iOS: Added Privacy Manifest for App Store compliance (#555)
  • iOS: Replaced print statements with proper os_log for better logging
  • iOS: printScheduledTasks now returns String instead of void (#585)
  • Improved CI/CD with Android emulator caching for faster builds
  • Better error handling and type safety throughout the codebase

🙏 Contributors

Special thanks to @thegriffen, @jogapps, @navaronbracke, @yarith28, and all contributors who helped make this release possible!

📦 Published Packages

workmanager v0.7.0

24 Jun 11:18
0705ce2
Compare
Choose a tag to compare

🚀 Major Modernization Release

Breaking Changes

  • Minimum Dart SDK: 3.2.0 (was 3.1.2)
  • Minimum Flutter SDK: 3.16.0 (was 2.5.0)
  • Minimum iOS deployment: 13.0 (was 10.0)

Major Updates

  • Android: AGP 8.10.1, Gradle 8.11.1, Kotlin 2.1.0, SDK 35, NDK 27.0, Java 17
  • iOS: Swift 5.0, deployment target 13.0
  • CI/CD: Modernized GitHub Actions with caching, iPhone 15, Android API 34
  • Dependencies: Latest dev dependencies, fixed win32 compatibility

See CHANGELOG.md for full details.

This release brings the plugin up to current Flutter/Dart standards while maintaining all existing functionality.

0.6.0

30 May 03:30
88161e3
Compare
Choose a tag to compare

Flutter 3.32.x support

V0.5.0

15 May 12:41
0fe2699
Compare
Choose a tag to compare
  • Flutter 3.0.0 compatibility.
  • Various stability improvements and new features for iOS