v2.0.0
New Features
-
Release Notes Display: Automatically fetch and display release notes/changelogs in update dialogs
- Fetches from App Store (iOS/macOS), Flathub (Linux), GitHub Releases, and custom endpoints
- New
showReleaseNotesparameter inshowUpdateDialog()(enabled by default) - Release notes are displayed in a scrollable container within the dialog
-
Update Frequency Control: Prevent checking for updates too frequently
- New
checkFrequencyparameter inAppUpdaterConfig(e.g.,Duration(days: 1)) checkForUpdate(respectFrequency: false)to bypass frequency check- Automatically tracks last check time in preferences
- New
-
Background/Silent Checking: Check for updates without blocking the UI
- New
startBackgroundChecking(Duration interval)method for periodic checks - New
stopBackgroundChecking()method to cancel background checks - New
updateStreamto listen for update notifications - New
performBackgroundCheck()for single background check - New
dispose()method to clean up resources
- New
-
Force Update by Minimum Version: Require users to update if below a version
- New
minimumVersionparameter inAppUpdaterConfig - Support for
minimumVersionin custom JSON/XML endpoints - New
requiresForceUpdategetter onUpdateInfo - Automatic
isPersistent: truebehavior when force update is required
- New
-
Update Urgency Levels: Communicate update importance to users
- New
UpdateUrgencyenum:low,medium,high,critical - Dialog icon and color automatically change based on urgency
- Support for
urgencyfield in custom endpoints and Firebase Remote Config
- New
-
Analytics & Callbacks: Track user interactions with update dialogs
- New
onAnalyticsEventcallback inAppUpdaterConfig - New
UpdateAnalyticsEventclass withtoMap()for analytics services - Predefined event names:
dialogShown,updateAccepted,updateDeclined, etc. - Track impressions and dismissals via
UpdatePreferences
- New
-
GitHub Releases Support: Check for updates from GitHub releases
- New
githubOwnerandgithubRepoparameters inAppUpdaterConfig - New
githubIncludePrereleasesto include beta/prerelease versions - Automatically fetches version, release notes, and download URL
- New
GitHubReleaseclass for release metadata
- New
-
TestFlight Support (iOS): Support beta updates via TestFlight
- New
testFlightEnabledparameter inAppUpdaterConfig - New
testFlightUrlfor custom TestFlight URLs - New
openTestFlight()method to open TestFlight - New
getTestFlightUrl()method
- New
-
Firebase Remote Config Integration: Dynamic version control via Firebase
- New
firebaseRemoteConfigEnabledparameter - New
FirebaseRemoteConfigSettingsclass for key configuration - New
firebaseConfigFetchercallback to fetch values - Support for all update parameters (version, minimumVersion, urgency, etc.)
- New
-
Localization / i18n: Built-in support for translations
- New
UpdateStringsclass with all dialog text - New
stringsparameter inAppUpdaterConfig - Message placeholders:
{currentVersion},{latestVersion} - Includes all button text, titles, and error messages
- New
-
Enhanced UpdateInfo: More metadata about updates
- New
releaseNotesproperty for changelog text - New
urgencyproperty for update priority - New
minimumVersionproperty - New
isMandatoryproperty - New
releaseDateproperty - New
updateSizeBytesandformattedUpdateSizeproperties - New
requiresForceUpdatecomputed property - New
copyWith()method
- New
Improvements
-
Enhanced UpdatePreferences: New preference methods
getLastCheckTime()/setLastCheckTime()for frequency controlshouldCheckForUpdate(Duration)for frequency checkinggetUpdateImpressions()/incrementUpdateImpressions()for analyticsgetUpdateDismissals()/incrementUpdateDismissals()for analytics
-
Better Custom Endpoint Support: Extended JSON/XML schema
- Support for
releaseNotes/release_notes/changelogfields - Support for
minimumVersion/minimum_versionfields - Support for
urgencyfield (low, medium, high, critical) - Support for
mandatory/force_updatefields
- Support for
-
Improved Dialog UI: Visual enhancements
- Urgency-based icon and color theming
- Release notes section with scrollable content
- Update size display when available
- Better handling of long content
-
Code Quality: Internal improvements
- Comprehensive documentation comments on all public APIs
- Better async/await handling with mounted checks
- Proper resource cleanup with
dispose()method
Breaking Changes
- None - all existing APIs remain backward compatible