/flutter_siren

A simple way to notify users when a new version of your app is available and prompt them to upgrade.

Primary LanguageDartMIT LicenseMIT

🚨 flutter_siren

The Flutter port of the popular Siren, one way to notify users when a new version of your app is available and prompt them to upgrade.

🚀 Supports iOS, Android and MacOS.

Requirements

Your package must follow the Semantic Versioning

Install

Add this to your package's pubspec.yaml file:

dependencies:
  flutter_siren: <latest-version>

And install the packages from the command line:

$ flutter pub get

Usage

import 'package:flutter/material.dart';
import 'package:flutter_siren/flutter_siren.dart';

// Check update on button press with AlertDialog.

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        body: Builder(
          builder: (context) {
            return Center(
              child: Column(
                mainAxisAlignment: MainAxisAlignment.center,
                children: <Widget>[
                  FlatButton(
                    child: Text('Check Update'),
                    onPressed: () {
                      final siren = Siren();
                      siren.promptUpdate(context);
                    },
                  )
                ],
              ),
            );
          }
        )
      ),
    );
  }
}

Customizing the prompt update.

value Description default
title Alert title Update Available
message Alert Message There is an updated version available on the App Store. Would you like to upgrade?
buttonUpgradeText Upgrade Button Text Upgrade
buttonCancelText Cancel Button Text Cancel
forceUpgrade Hide Cancel Button false
// Passing custom options.
siren.promptUpdate(context, 
  title: "My alert title", 
  message: "Bro, update my app", 
  buttonUpgradeText: "Download",  
  buttonCancelText: "Nop",
  forceUpgrade: true
);

Building your own prompt update.

Your can use the updateIsAvailable method to create your own way to alert the user about new updates. This method returns a boolean and you do your magic!

final siren = Siren();

FutureBuilder<bool>(
  future: siren.updateIsAvailable(),
  builder: (context, AsyncSnapshot<bool> snapshot){ 
    if (snapshot.hasData) {
      return AlertDialog(
        title: Text(title),
        content: Text(message),
        actions: <Widget>[],
      );
    }
  }
);

Accessing store and local versions

Your can use the localVersion or storeVersion getters to access the current version status of your app!

final siren = Siren();

final local = siren.localVersion;
final store = siren.storeVersion;

Inspiration

These awesome packages: Siren and react-native-siren