import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:hive_flutter/hive_flutter.dart'; import 'core/storage/local_storage.dart'; import 'core/di/injection_container.dart'; import 'core/utils/logger.dart'; Future bootstrap(FutureOr Function() builder) async { // Ensure Flutter bindings are initialized WidgetsFlutterBinding.ensureInitialized(); // Set preferred orientations await SystemChrome.setPreferredOrientations([ DeviceOrientation.portraitUp, DeviceOrientation.portraitDown, ]); // Set system UI overlay style SystemChrome.setSystemUIOverlayStyle( const SystemUiOverlayStyle( statusBarColor: Colors.transparent, statusBarIconBrightness: Brightness.dark, systemNavigationBarColor: Colors.white, systemNavigationBarIconBrightness: Brightness.dark, ), ); // Initialize Hive await Hive.initFlutter(); // Initialize LocalStorage final localStorage = await LocalStorage.init(); // Create provider container with initialized dependencies final container = createProviderContainer(localStorage); // Run app with error handling FlutterError.onError = (details) { AppLogger.e('Flutter Error', details.exception, details.stack); }; runApp( UncontrolledProviderScope( container: container, child: await builder(), ), ); }