Pakete, Repositories und App-Kategorien suchen

Paketdetailsv1.0.0+4

cache_manager

Cache-Manager zum Speichern lokaler Cache-Daten. Der Cache-Manager ist ein Wrapper zum Speichern verschiedener Datentypen (JSON, String, int usw.) als lokalen Cache in Ihrer Flutter-App.

AndroidiOSWebmacOSWindowsLinux
30-Tage-Downloads
4
Likes
48
Pub-Punkte
140

Paket installieren

flutter pub add cache_manager

Paketübersicht

Aus öffentlichen Paketdaten erstellte Orientierung.

Cache Manager ist ein Flutter-Paket, das die lokale Caching verschiedener Datentypen wie JSON, Zeichenketten und Ganzzahlen vereinfacht. Es bietet eine benutzerfreundliche Wrapper-Schicht zum Speichern und Abrufen von zwischengespeicherten Daten auf mehreren Plattformen wie Android, iOS, Web, macOS, Windows und Linux. Das Paket verarbeitet Dateispeicherung effizient, unterstützt Cache-Ablauf und integriert sich nahtlos in Flutter-Anwendungen, um die Leistung durch Reduzierung redundanter Netzwerkanfragen zu verbessern. Es eignet sich ideal für die Verwaltung temporärer oder häufig zugegriffener Daten.

Anwendungsfälle

  • API-Antworten zwischenspeichern
  • Benutzereinstellungen lokal speichern
  • Bild- und Medien-Dateien dauerhaft speichern
  • Netzwerklast bei wiederholten Anfragen reduzieren
  • Verwaltung des Offline-Datenzugriffs

Hauptmerkmale

  • Unterstützt mehrere Datentypen
  • Plattformübergreifende Kompatibilität
  • Automatische Cache-Ablaufzeit
  • Einfache API für Lese-/Schreibvorgänge
  • Eingebaute Dateisystemintegration

Geeignet für

  • Apps mit häufigen Netzwerkaufrufen
  • Offline-first-Anwendungen
  • medienintensive Apps
  • datenintensive Flutter-Projekte
  • Entwickler, die leichte Caching-Lösungen suchen

Hinweise

  • Manuelle Cache-Bereinigung für große Datensätze erforderlich
  • Eingeschränkte erweiterte Cache-Richtlinien
  • Keine integrierte Verschlüsselung für sensible Daten
  • Hängt von Dateisystemberechtigungen auf einigen Plattformen ab
  • Nicht für sehr hohe Häufigkeit von Cache-Updates optimiert

Original-README

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

⚡Cache Manager

A tidy utility to handle cache of your flutter app like a Boss. It provides support for both iOS and Android platforms (offcourse).

🎖Installing

dependencies:
  cache_manager: ^<latest_version>

⚽Awesome Features

🍧Cache Utilities

🌟CacheManagerUtils.conditionalCache({key, valueType, actionIfNull, actionIfNotNull})

  • Conditional builder based on the value of cache. actionIfNull & actionIfNotNull are dynamic arguments used for Navigation through views, Rendering UI, Debugging values etc. The valueType refers to the datatype of cache (StringValue, BoolValue, IntValue, DoubleValue)

🌟CacheManagerUtils.cacheTextBuilder(textStyle, cacheKey})

  • TextBuilder for the cached value. cacheKey is the key used to address the cache. The builder will return 'Invalid cache' if no cache is missing. Use textStyle to style the value of the cache.
👀Read cache

🌟ReadCache.getJson(key) : Get JSON stored as cache.

🌟ReadCache.getString(key) : Get string stored as cache.

🌟ReadCache.getBool(key) : Get boolean stored as cache.

🌟ReadCache.getInt(key) : Get integer stored as cache.

🌟ReadCache.getDouble(key) : Get double stored as cache.

🖊Write cache

🌟WriteCache.setJson(key,value) : Set JSON as cache.

🌟WriteCache.setString(key,value) : Set a string as cache.

🌟WriteCache.setInt(key,value) : Set an integer as cache.

🌟WriteCache.setBool(key,value) : Set a boolean as cache.

🌟WriteCache.setDouble(key,value) : Set a double as cache.

🌟WriteCache.setListString(key,value) : Set a List of string as cache.

❌Delete cache

🌟DeleteCache.deleteKey(key,[takeAction]) : Delete the cache and perform an action when cache is deleted(Optional).

Example : Login flow with caching userID

//Attached function in a login view
Future<String?> login({
    required BuildContext context,
    required String email,
    required String password,
  }) async {
    try {
      var userId = await _authenticationService.login(
          context: context, email: email, password: password);
      await WriteCache.setString(key: "cache", value: userId!);
    } catch (e) {
      print(e); //Do something if error occurs
   }
 }
 
//Splash view
import 'dart:async';
import 'package:cache_manager/cache_manager.dart';
import 'package:flutter/material.dart';

class SplashView extends StatefulWidget {
  @override
  _SplashViewState createState() => _SplashViewState();
}

class _SplashViewState extends State<SplashView> {
  Future initiateCache() async {
    return CacheManagerUtils.conditionalCache(
        key: "cache",
        valueType: ValueType.StringValue,
        actionIfNull: () {
          Navigator.of(context).pushNamed(AppRoutes.LoginRoute);
        },
        actionIfNotNull: () {
          Navigator.of(context).pushNamed(AppRoutes.HomeRoute);
        });
  }

  @override
  void initState() {
    Timer(Duration(seconds: 1), initiateCache);
    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: Text("demo app"),
      ),
    );
  }
}

//Home view
import 'package:cache_manager/core/cache_manager_utils.dart';
import 'package:cache_manager/core/delete_cache_service.dart';
import 'package:flutter/material.dart';

class HomeView extends StatefulWidget {
  @override
  _HomeViewState createState() => _HomeViewState();
}

class _HomeViewState extends State<HomeView> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: CacheManagerUtils.cacheTextBuilder(
            textStyle: TextStyle(color: Colors.white), cacheKey: "cache"),
      ),
      floatingActionButton: FloatingActionButton(
        onPressed: () {
          DeleteCache.deleteKey(
              "cache", Navigator.of(context).pushNamed(AppRoutes.LoginRoute));
        },
      ),
    );
  }
}
❤Loved the utility? Donate here.
🚀Want to learn more about Flutter? Checkout this out!
💥DM me on Instagram for doubts Follow here

🐛 Bugs/Requests

If you encounter any problems feel free to open an issue. If you feel the library is missing a feature, please raise a ticket on Github and I'll look into it. Pull request are also welcome.

Kategorien

Abhängigkeiten

Abhängigkeiten 1 Einträge

Quell-Repository

Projekte, die dieses Paket verwenden

Noch keine Daten verfügbar.