Flutter package · pub.dev

The upgrader package
keeps your app current

upgrader is a Flutter library that checks the App Store and Google Play for a newer version of your app, then presents a native dialog asking the user to upgrade. Drop in one widget and you're done.

13.7
Current version
7
Platforms
39
Languages
0
Config files
Why upgrader

Everything you need, nothing you don't

upgrader handles version detection, dialog display, and user preferences automatically. No backend, no polling logic, no platform channels to write.

📦

Zero configuration

Android and iOS detect the latest version from the store automatically. No API keys, no server setup.

🌐

All 7 platforms

Desktop and web platforms use an Appcast RSS feed — the same open standard used by macOS apps for decades.

🔒

Forced upgrades

Set minAppVersion to remove the Later and Ignore buttons and make upgrading mandatory for old builds.

🗣️

39 languages

All dialog strings are pre-translated. RTL support for Arabic, Hebrew, Persian, and Urdu is built in.

Platform support

Native store detection on mobile, Appcast everywhere else

The package automatically picks the right version source for each platform. The table below shows which mechanism is used — compiled from the pub.dev package page (v13.7.0, September 2026).

Android ● Native — Google Play
iOS ● Native — iTunes API
macOS ● Appcast RSS feed
Windows ● Appcast RSS feed
Linux ● Appcast RSS feed
Web / Fuchsia ● Appcast RSS feed
Get started

Three steps to your first upgrade prompt

No platform-specific setup for Android or iOS. Just add the dependency and wrap your scaffold.

1
Add to pubspec.yaml
PUBSPEC.YAML
dependencies:
  upgrader: ^13.7.0
2
Run flutter pub get
TERMINAL
flutter pub get
3
Wrap your root widget
MAIN.DART
import 'package:upgrader/upgrader.dart';

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: UpgradeAlert(           // that's it
        child: Scaffold(...),
      ),
    );
  }
}
Usage

UpgradeAlert vs UpgradeCard

Pick the widget that fits your UX. UpgradeAlert blocks the screen with a modal — best for critical upgrades. UpgradeCard renders a dismissible card inline — better for settings pages.

UPGRADE_CARD_EXAMPLE.DART
// UpgradeCard: non-blocking, zero height when no update available
Column(
  children: [
    UpgradeCard(),
    const Expanded(child: MyContent()),
  ],
)

// Force upgrade below version 3.0.0
UpgradeAlert(
  upgrader: Upgrader(
    minAppVersion: '3.0.0',
    durationUntilAlertAgain: const Duration(days: 1),
  ),
  child: Scaffold(...),
)
Configuration

Every parameter with its default value

All values below are from the pub.dev package page for v13.7.0 (checked September 2026). Parameters marked with a default of true are active out of the box.

ParameterClassDefaultEffect
checkOnResumeUpgradertrueVersion check fires again when the app resumes from the background
durationUntilAlertAgainUpgrader3 daysCooldown before the dialog repeats after a "Later" tap
minAppVersionUpgradernullVersions below this string trigger a mandatory upgrade (no Later/Ignore)
debugDisplayAlwaysUpgraderfalseAlways show the dialog during development regardless of version
debugLoggingUpgraderfalseLogs version-check output to the Flutter console
showIgnoreUpgradeAlerttrueShow the "Ignore this version" button
showLaterUpgradeAlerttrueShow the "Later" dismiss button
showReleaseNotesUpgradeAlerttruePulls and displays the store release notes inside the dialog
barrierDismissibleUpgradeAlertfalseTapping outside the dialog does not close it
dialogStyleUpgradeAlertmaterialSwitch to cupertino for iOS-native styling
Localization

39 built-in languages

Pass UpgraderMessages(code: 'fr') to override the detected locale. RTL layouts for Arabic, Hebrew, Persian, and Urdu are automatic.

EnglishSpanishFrench GermanItalianPortuguese RussianChinese (Simplified)Chinese (Traditional) JapaneseKoreanArabic HebrewTurkishDutch PolishUkrainianVietnamese ThaiIndonesianHindi BengaliSwedishNorwegian DanishFinnishCzech SlovakHungarianRomanian BulgarianCroatianGreek CatalanMalayTagalog SwahiliUrduPersian
FAQ

Common questions

What is the upgrader Flutter package?
upgrader is a Flutter library that checks whether a newer version of your app is available in the App Store or Google Play, then shows a dialog prompting the user to upgrade. It runs on launch and on resume, with a configurable cooldown between repeated prompts.
Which platforms does upgrader support?
Android and iOS query the native stores automatically. macOS, Windows, Linux, Web, and Fuchsia use an Appcast — a small RSS/XML file you host at any HTTPS URL. All seven platforms Flutter supports are covered.
Can I force users to upgrade without a dismiss option?
Yes. Set minAppVersion: '3.0.0' on the Upgrader class. Any user running a build below that version will see the dialog without a Later or Ignore button, making the upgrade mandatory before they can continue.

Ready to ship?

Add one dependency, wrap one widget. Your users will always know when a new version is waiting for them.

PUBSPEC.YAML
dependencies:
  upgrader: ^13.7.0