Pakete, Repositories und App-Kategorien suchen

Paketdetailsv2.1.2

versionarte

Aktualisierung erzwingen, Aktualisierungsindikator anzeigen und die App während der Wartung deaktivieren mit voller Freiheit über die Benutzeroberfläche.

AndroidiOSWebmacOSWindows
30-Tage-Downloads
758
Likes
173
Pub-Punkte
150

Paket installieren

flutter pub add versionarte

Paketübersicht

Aus öffentlichen Paketdaten erstellte Orientierung.

Versionarte ist ein Flutter-Paket, das Entwicklern ermöglicht, App-Updates durchzusetzen, benutzerdefinierte Aktualisierungsindikatoren anzuzeigen und die App während Wartungsarbeiten vorübergehend zu deaktivieren. Es bietet vollständige Kontrolle über die Benutzeroberfläche für Aktualisierungsaufforderungen und Wartungsbildschirme, um sicherzustellen, dass Benutzer stets über die neueste Version verfügen oder von Ausfallzeiten informiert sind. Für plattformübergreifende Anwendungen konzipiert, funktioniert es nahtlos auf Android, iOS, Web, macOS und Windows. Das Paket lässt sich einfach über pub add integrieren und bietet Flexibilität bei der Behandlung von Versionsprüfungen und der Benutzererfahrung während Updates.

Anwendungsfälle

  • Mandatory App-Updates durchsetzen
  • Benutzerdefinierte Aktualisierungsbanner anzeigen
  • Wartungsmodus-Bildschirme anzeigen
  • Versionskompatibilität verwalten
  • Benutzerzugriff während Ausfallzeiten verwalten
  • Aktualisierungs-UI pro Plattform anpassen

Hauptmerkmale

  • Vollständige Anpassung der Benutzeroberfläche für Aktualisierungsbildschirme
  • Unterstützung für mehrere Plattformen
  • Flexible Versionsüberprüfungslogik
  • Durchsetzung des Wartungsmodus
  • Einfache Integration mit pub
  • Konfigurierbare Aktualisierungstrigger

Geeignet für

  • Apps, die eine strenge Versionskontrolle erfordern
  • Entwickler, die benutzerdefinierte Update-UX benötigen
  • Plattformübergreifende Anwendungen
  • Teams, die häufige Releases verwalten
  • Apps mit geplanten Wartungsfenstern
  • Projekte, die bei Aktualisierungen die Benutzererfahrung priorisieren

Hinweise

  • Benötigt manuelle Konfiguration von Versionsprüfungen
  • UI-Komponenten müssen vom Entwickler implementiert werden
  • Möglicherweise ist Backend-Unterstützung für die Versionsüberprüfung erforderlich
  • Nicht geeignet für Apps ohne Aktualisierungsrichtlinien
  • Eingeschränkte integrierte Analyse
  • Abhängig von genauer Versionsverfolgung

Original-README

Originaler README-Schnappschuss aus dem verknüpften Quell-Repository. Aktuelle Inhalte finden Sie im Repository.

versionarte

Force update, show update indicator and disable the app for maintenance with total freedom over the UI.

😎 Benefits

  • ✋ Force users to update to the latest version
  • 💆🏻‍♂️ Have separate values for each platform
  • 🚧 Disable app for maintenance with custom informative text
  • 🆕 Inform users about an optional update availability
  • 🔗 Launch the App Store on iOS and Play Store on Android
Forced update New version indicator Maintenance mode

Read the How to force users to update your Flutter app article for detailed explanation.

🩵 Sponsors

🛫 Getting Started

Add the package and import it:

dependencies:
  versionarte: <latest_version>
import 'package:versionarte/versionarte.dart';

📡 Checking Version Status

Call Versionarte.check with a provider to get the app's versioning status:

// Using Firebase Remote Config (most common)
final VersionarteResult result = await Versionarte.check(
    versionarteProvider: RemoteConfigVersionarteProvider(),
);

Tip: Pass silent: true to suppress debug console logs.

Choose from three provider types based on your backend:

1. Using Firebase Remote Config

Recommended for apps already using Firebase

final VersionarteResult result = await Versionarte.check(
    versionarteProvider: RemoteConfigVersionarteProvider(),
);

Optional parameters:

  • keyName: Firebase config key (default: "versionarte")
  • initializeInternally: Set to false if your app already initializes Firebase
  • remoteConfigSettings: Custom settings if needed

See Firebase Remote Config setup guide for configuration details.

2. Using RESTful API

Recommended for apps with custom backends

final VersionarteResult result = await Versionarte.check(
    versionarteProvider: RestfulVersionarteProvider(
        url: 'https://myapi.com/getVersioning',
    ),
);

Optional parameters:

  • headers: Custom HTTP headers if needed

Note: Your RESTful endpoint must return the same JSON structure as shown in the Configuration JSON section below.

3. Using Custom VersionarteProvider

For advanced use cases with custom data sources

class MyCustomVersionarteProvider extends VersionarteProvider {
  @override
  Future<DistributionManifest> getDistributionManifest() async {
    final String result = MyCustomService.fetchVersioning();
    final Map<String, dynamic> decodedResult = jsonDecode(result);
    
    return DistributionManifest.fromJson(decodedResult);
  }
}

🎯 Handle the Status

Use the status value to determine what action to take:

if (result.status == VersionarteStatus.inactive) {
    // App is in maintenance mode
    final String message = result.getMessageForLanguage('en');

    showMaintenanceDialog(message);
} else if (result.status == VersionarteStatus.forcedUpdate) {
    // User must update to continue
    showForceUpdateDialog(
      onUpdate: () {
        Versionarte.launchDownloadUrl(result.downloadUrls);
      },
    );
} else if (result.status == VersionarteStatus.outdated) {
    // Update available but optional
    showOptionalUpdateDialog(
      onUpdate: () {
        Versionarte.launchDownloadUrl(result.downloadUrls);
      },
    );
} 

Tip: You can also show different widgets based on status. For example, when the app is outdated, you might want to show an update indicator anywhere in your app (for example in home page):

Widget build(BuildContext context) {
  return Column(
    children: [
      // other widgets   
      if (result.status == VersionarteStatus.outdated)
        // A custom widget to show "Update available"
        NewVersionAvailableIndicator(
          onUpdate: () {
            Versionarte.launchDownloadUrl(result.downloadUrls);
          }
        ),
      // other widgets
    ],
  );
}

🔗 Launching the Store

To open the appropriate store for the current platform:

await Versionarte.launchDownloadUrl(result.downloadUrls);

Note: Add "download_url" in your configuration JSON for each platform. The correct store opens automatically based on the current platform.

See the example directory for a complete sample app.

🖋️ Configuration JSON

The configuration JSON contains versioning and status information for each platform. Only configure platforms that your app supports.

{
    "android": {
        "version": {
            "minimum": "2.7.0", // Minimum required version
            "latest": "2.8.0"   // Latest available version
        },
        "download_url": "https://play.google.com/store/apps/details?id=app.example",
        "status": {
            "active": true,     // Whether app is currently active
            "message": {        // Only needed if active is false
                "en": "App is in maintenance mode, please come back later.",
                "es": "La aplicación está en modo de mantenimiento, vuelva más tarde."
            }
        }
    },
    "iOS": {
        // Same structure as Android
    },
    // Optional: Include other platforms if needed (macOS, windows, linux)
}

🐞 Need help?

If you encounter any problems or need a feature, please raise a ticket on GitHub.

📃 License

MIT License

Kategorien

Abhängigkeiten

Abhängigkeiten 5 Einträge

Quell-Repository

Projekte, die dieses Paket verwenden

Noch keine Daten verfügbar.