knox 1.0.0 copy "knox: ^1.0.0" to clipboard
knox: ^1.0.0 copied to clipboard

An implementation of HydratedStorage using flutter_secure_storage, which interfaces with Keychain (iOS) and KeyStore (Android)

example/lib/main.dart

import 'package:bloc/bloc.dart';
import 'package:flutter/material.dart';
import 'package:hydrated_bloc/hydrated_bloc.dart';
import 'package:knox/knox.dart';
import 'package:flutter_bloc/flutter_bloc.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();

  BlocSupervisor.delegate = await KnoxDelegate.build();

  runApp(Example());
}

/// Sample bloc with an [int] event and [int] state
class SampleBloc extends HydratedBloc<int, int> {
  @override
  int get initialState => super.initialState ?? 0;

  @override
  int fromJson(Map<String, dynamic> json) => json['state'];

  @override
  Stream<int> mapEventToState(int event) async* {
    yield event;
  }

  @override
  Map<String, dynamic> toJson(int state) => {'state': state};
}

/// Example counter app
class Example extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return BlocProvider(
      create: (context) => SampleBloc(),
      child: MaterialApp(
        home: BlocBuilder<SampleBloc, int>(
          builder: (context, state) {
            return Scaffold(
              body: Center(
                child: Text('$state'),
              ),
              floatingActionButton: FloatingActionButton(
                child: Icon(Icons.add),
                onPressed: () => BlocProvider.of<SampleBloc>(context).add(state + 1),
              ),
            );
          },
        ),
      ),
    );
  }
}
0
likes
40
pub points
0%
popularity

Publisher

verified publishermolland.sh

An implementation of HydratedStorage using flutter_secure_storage, which interfaces with Keychain (iOS) and KeyStore (Android)

Repository (GitHub)
View/report issues

License

MIT (LICENSE)

Dependencies

flutter, flutter_secure_storage, hydrated_bloc

More

Packages that depend on knox