Storage repository

Abstraction for persisting and reading data to platform specific storage. You can also find this package on pub as storage_repository

Usage

Future main() async {
    WidgetsFlutterBinding.ensureInitialized();
    //This must be called once per application lifetime
    await StorageRepository.initFlutter();

    //Instantiate a basic storage repository
    IStorageRepository storageRepository = StorageRepository();
    //or use a secure version of storage repository
    //final storageRepository = SecureStorageRepositoryImpl();
    //init must be called, preferably right after the instantiation
    await storageRepository.init();

    await storageRepository.set('some_string_key', 'Some string');
    await storageRepository.set('some_int_key', 0);
    //dynamic keys are also possible
    await storageRepository.set(1, 1);

    //result: Some string (dynamic)
    print(await storageRepository.get('some_string_key'));

    //result: 0 (dynamic)
    print(await storageRepository.get('some_int_key'));

    //result: 1 (dynamic)
    print(await storageRepository.get(1));

    //result: 1 (int?)
    print(await storageRepository.get(1));

    await storageRepository.delete('some_string_key');

    await storageRepository.log();

    await storageRepository.clear();
}