Pakete, Repositories und App-Kategorien suchen

Paketdetailsv1.8.1

once

Möchten Sie einen Codeabschnitt einmalig periodisch ausführen (Einmal - Täglich - Wöchentlich - Monatlich - Bei neuer Build - Bei neuer Version - Jeder Zeitraum)? Wir kümmern uns darum.

AndroidiOS
30-Tage-Downloads
4200
Likes
311
Pub-Punkte
160

Paket installieren

flutter pub add once

Paketübersicht

Aus öffentlichen Paketdaten erstellte Orientierung.

Das 'once'-Paket ermöglicht Entwicklern die exakte Ausführung von Code genau einmal basierend auf verschiedenen Auslösern wie täglich, wöchentlich, monatlich, bei einem neuen App-Build oder bei einer neuen Versionsveröffentlichung. Es vereinfacht die Implementierung einmals auszuführender Aktionen wie das Anzeigen von Willkommensbildschirmen, die Sammlung von Benutzerfeedback oder die Initialisierung von Daten nach Updates. Mit Fokus auf Einfachheit und Zuverlässigkeit funktioniert es nahtlos auf Android- und iOS-Plattformen. Das Paket ist ideal für die Verwaltung periodischer oder ereignisbasierter einmals auszuführender Logik ohne manuelles Zustandsverfolgen.

Anwendungsfälle

  • Onboarding-Bildschirme einmal pro App-Version anzeigen
  • Analyseerfassung bei erster Ausführung auslösen
  • Änderungsprotokolle nur bei neuer Version anzeigen
  • Führen Sie Initialisierungsaufgaben nach dem Neubau der App aus
  • Einmalige Benachrichtigungen planen
  • Setup-Routinen beim ersten App-Start ausführen

Hauptmerkmale

  • Unterstützt mehrere Auslösetypen (täglich, wöchentlich, monatlich usw.)
  • Automatische Persistenz nach App-Neustarts
  • Keine manuelle Zustandsverwaltung erforderlich
  • Leicht und einfach zu integrieren
  • Funktioniert sowohl unter Android als auch unter iOS
  • Versions- und Build-Nummern-Erkennung

Geeignet für

  • App-Onboarding-Flows
  • Benutzerengagement-Funktionen
  • Analyse und Feedback-Sammlung
  • Aufgaben nach der Aktualisierung
  • Einfache geplante Einmalaktionen

Hinweise

  • Unterstützt keine benutzerdefinierten Zeitintervalle über die vorgegebenen Optionen hinaus
  • Beruht auf der Systemuhr des Geräts für die Zeitsteuerung
  • Könnte die Behandlung von Randfällen im Zusammenhang mit Zeitzoneänderungen erfordern
  • Beschränkt auf eine Einzelausführung pro Auslösetyp
  • Nicht geeignet für wiederkehrende Aufgaben

Original-README

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

once pub

Want to run/show a piece of code/widget once (Once - Hourly - Daily - Weekly - Monthly - Every new version - Any custom duration)? We cove your back.


Some things should happen once.

  • Users should only get the guided tour once.
  • Release notes should only pop up once every new app version comes.
  • Etc.. once every (Whatever you want).

Once supports runOnce, runUntilDone, runOnEveryNewVersion, runEvery12Hours, runHourly, runDaily, runOnNewDay, runWeekly, runMonthly, runOnNewMonth, runYearly and runCustom.

Some widgets should show once.

  • Users should only get this alert OnceWidget.
  • Hello it new version widget shows OnceWidget every new app version comes.
  • Etc.. OnceWidget every (Whatever you want).

OnceWidgets supports showOnce, showUntilDone, showOnEveryNewVersion, showEvery12Hours, showHourly, showDaily, showOnNewDay, showWeekly, showMonthly, showOnNewMonth, showYearly and showCustom.

Usage

Once

Mainly runner functions consists of callbacks and fallbacks

  • callback is the generic function that runs and returns a future<T?> .
  • fallback is the same but only runs in case that callback future returns null.

Now you're ready to go. Say you wanted to show the new features dialog when new version of the app come:

Once.runOnEveryNewVersion(
  callback: () {
    /* What's new in 2.3.2 version? dialog */
  },
  fallback: () {
   /* Navigate to new screen */
  },
);

Or maybe you want to show the rate this app dialog weekly:

if (!rated) {
  Once.runWeekly("ratingDialog",
    callback: () { 
       /* Like our app, Please rate us. dialog */ 
    },
    fallback: () {
      /* Thanks */
    },
  );
}

Or maybe you want to show a feature prompt until the user explicitly dismisses it:

Once.runUntilDone("feature_prompt",
  callback: (dismiss) { 
     /* Show feature prompt dialog */ 
     // Call dismiss() when the user clicks "Got it"
     dismiss();
  },
  fallback: () {
    /* Feature already acknowledged */
  },
);

OnceWidget

Mainly builder functions consists of builders and fallbacks

  • builder is the generic function that shows and returns a Widget and provide for BuildContext.
  • fallback is the same but only shows in case that callback future returns null (defaults to SizedBox.shrink()) and provide for BuildContext.

Now you're ready to go. Say you wanted to view a banner widget when the app is updated:

OnceWidget.showOnEveryNewVersion(
  builder: (context) {
   return Container(...);
  },
);

Or maybe you want to show the hello new week widget weekly:

OnceWidget.showWeekly("weekWidget",
  builder: (context) {
     return Text('Hello, New Week');
   },
  fallback: (context) {
     return Text('Hello!');
   },
);

Or maybe you want to show a banner until the user dismisses it:

OnceWidget.showUntilDone("onboarding_banner",
  builder: (dismiss) {
     return Row(
       children: [
         Text('New feature available!'),
         ElevatedButton(
           onPressed: dismiss, // Will not show again after being clicked
           child: Text('Got it'),
         ),
       ],
     );
   },
  fallback: () {
     return SizedBox.shrink();
   },
);

Additional

Functions
  • clear removes the Once or OnceWidget data for a specific key.
  • clearAll removes all the Once and OnceWidget data.
  • markDone manually flags a key as completed for untilDone operations.
Parameters
  • debugCallback used to debug the callback function.
  • debugFallback used to debug the fallback function.

Note: The debug parameters are only works in debug mode.

Contributors

Inspired by the Java library Once made by Jon Finerty

Kategorien

Abhängigkeiten

Abhängigkeiten 2 Einträge

Quell-Repository

Projekte, die dieses Paket verwenden

Noch keine Daten verfügbar.