Skip to content

Commit

Permalink
Some improvements (#166)
Browse files Browse the repository at this point in the history
- added platform dispatcher on error handling
- added flutter_gen
  • Loading branch information
hawkkiller committed Apr 29, 2023
1 parent 83afd0d commit 47c74a5
Show file tree
Hide file tree
Showing 5 changed files with 24 additions and 8 deletions.
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,8 @@ build/
# Codegen
*.*.dart
generated_*
lib/src/core/localization/generated/
lib/src/core/assets/generated/


pubspec.lock
.metadata
9 changes: 2 additions & 7 deletions lib/runner_shared.dart
Original file line number Diff line number Diff line change
@@ -1,20 +1,15 @@
import 'dart:async';

import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:sizzle_starter/src/core/utils/logger.dart';
import 'package:sizzle_starter/src/feature/app/logic/app_runner.dart' as blaze;
import 'package:sizzle_starter/src/feature/app/logic/app_runner.dart';
import 'package:sizzle_starter/src/feature/initialization/model/initialization_hook.dart';

/// Run that uses all platforms
void sharedRun(InitializationHook hook) {
FlutterError.onError = Logger.logFlutterError;
// there could be some shared initialization here
Logger.runLogging(() {
runZonedGuarded(
() async {
await blaze.AppRunner().initializeAndRun(hook);
},
() => AppRunner().initializeAndRun(hook),
Logger.logZoneError,
);
});
Expand Down
9 changes: 9 additions & 0 deletions lib/src/core/utils/logger.dart
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,15 @@ mixin Logger {
l.e(_formatError('Flutter', details.exceptionAsString(), stack), stack);
}

static bool logPlatformDispatcherError(Object exception, StackTrace stackTrace) {
l.e(
_formatError('PlatformDispatcher', exception.toString(), stackTrace),
stackTrace,
);
// TODO(mlazebny): check this later
return true;
}

/// run in a zone
static T runLogging<T>(T Function() body) => l.capture(body, _logOptions);
}
6 changes: 6 additions & 0 deletions lib/src/feature/app/logic/app_runner.dart
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
import 'dart:ui';

import 'package:flutter/material.dart';
import 'package:sizzle_starter/src/core/utils/logger.dart';
import 'package:sizzle_starter/src/feature/app/widget/app.dart';
import 'package:sizzle_starter/src/feature/initialization/logic/initialization_processor.dart';
import 'package:sizzle_starter/src/feature/initialization/logic/initialization_steps.dart';
Expand All @@ -11,6 +14,9 @@ class AppRunner with InitializationSteps, InitializationProcessor, Initializatio
/// if success -> run app
Future<void> initializeAndRun(InitializationHook hook) async {
final bindings = WidgetsFlutterBinding.ensureInitialized()..deferFirstFrame();
FlutterError.onError = Logger.logFlutterError;
PlatformDispatcher.instance.onError = Logger.logPlatformDispatcherError;

final result = await processInitialization(
steps: initializationSteps,
hook: hook,
Expand Down
5 changes: 5 additions & 0 deletions pubspec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,7 @@ dev_dependencies:
# Utilities
flutter_launcher_icons: ^0.13.0
flutter_native_splash: ^2.2.19
flutter_gen_runner: ^5.3.0

flutter:
uses-material-design: true
Expand All @@ -90,3 +91,7 @@ flutter:
assets:
# Add assets from the images directory to the application.
- assets/images/

flutter_gen:
output: lib/src/core/assets/generated
line_length: 100

0 comments on commit 47c74a5

Please sign in to comment.