Skip to content

Instantly share code, notes, and snippets.

@bistole
bistole / main.dart
Created December 1, 2020 19:25
create widget with future builder
@override
Widget build(BuildContext context) {
return FutureBuilder<Store<AppState>>(
future: initStore(),
builder: (context, AsyncSnapshot<Store<AppState>> snapshot) {
if (!snapshot.hasData) {
return CircularProgressIndicator();
}
return new StoreProvider(
@bistole
bistole / main.dart
Created December 1, 2020 19:27
async init redux store
Future<Store<AppState>> initStore() async {
Directory dic = await getApplicationSupportDirectory();
final statePath = path.join(dic.path, 'state.json');
final persistor = Persistor<AppState>(
storage: FileStorage(File(statePath)),
serializer: JsonSerializer<AppState>(AppState.fromJson),
);
final initialState = await persistor.load();
@bistole
bistole / app.dart
Created December 1, 2020 20:45
fromJson and toJson
static AppState fromJson(dynamic json) {
var tasks = <String, Task>{};
if (json is Map && json['tasks'] is Map) {
json['tasks'].forEach((uuid, jsonTask) {
var task = Task.fromJson(jsonTask);
tasks[task.uuid] = task;
});
}
return AppState(status: Status.noParam(StatusKey.ListTask), tasks: tasks);
}
@bistole
bistole / main.dart
Created December 1, 2020 20:48
use go-flutter-desktop plugin
Directory dic = await getApplicationSupportDirectory();
final statePath = path.join(dic.path, 'state.json');
@bistole
bistole / options.go
Created December 1, 2020 20:51
add plugin at go-flutter-desktop
var options = []flutter.Option{
flutter.WindowInitialDimensions(800, 1280),
flutter.AddPlugin(&path_provider.PathProviderPlugin{
VendorName: config.VendorName,
ApplicationName: config.AppName,
}),
}
@bistole
bistole / page.dart
Created December 2, 2020 19:20
StoreConnector
return StoreConnector<AppState, ReduxActions>(
converter: (store) {
return new ReduxActions(
start: () {
store
.dispatch(new ChangeStatusAction(status: StatusKey.AddingTask));
},
create: (String title) {
store.dispatch(new ChangeStatusAction(status: StatusKey.ListTask));
createTask(store, title);
@bistole
bistole / backend.go
Created December 9, 2020 20:16
export as c library
package main
import "C"
//export Backend_Start
func Backend_Start() {
...
}
//export Backend_Stop
@bistole
bistole / Runner-Bridging-Header.h
Created December 9, 2020 21:02
Runner-Bridging-Header.h
#import "libBackend.h"
@bistole
bistole / menu_events.dart
Last active December 11, 2020 17:09
receive menu events
import 'dart:async';
import 'package:flutter/services.dart';
import 'package:package_info/package_info.dart';
import 'package:storyboard/net/command.dart';
const MENU_EVENTS = "/MENU_EVENTS";
const MENU_IMPORT_PHOTO = "MENU_EVENTS:IMPORT_PHOTO";
const MENU_TIMER = "TIMER";
@bistole
bistole / commands.dart
Last active December 11, 2020 17:11
send method to native
import 'package:flutter/services.dart';
import 'package:package_info/package_info.dart';
const COMMANDS = '/COMMANDS';
const CMD_OPEN_DIALOG = 'CMD:OPEN_DIALOG';
MethodChannel _methodCommand;
Future<MethodChannel> _getCommandsChannel() async {