import 'dart:developer'; import 'package:app_tracking_transparency/app_tracking_transparency.dart'; import 'package:firebase_core/firebase_core.dart'; import 'package:firebase_crashlytics/firebase_crashlytics.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_web_plugins/url_strategy.dart'; import 'package:hub/backend/notifications/notification_service.dart'; import 'package:hub/flutter_flow/flutter_flow_theme.dart'; import 'package:hub/flutter_flow/flutter_flow_util.dart'; import 'package:hub/flutter_flow/nav/nav.dart'; import 'package:hub/shared/helpers/storage/storage_helper.dart'; Future initializeApp() async { WidgetsFlutterBinding.ensureInitialized(); await _initializeTracking(); await StorageHelper().init(); await _initializeFirebase(); await _initializeNotificationService(); _initializeUrlStrategy(); _initializeSystemSettings(); await _initializeFlutterFlow(); } Future _initializeTracking() async { await AppTrackingTransparency.requestTrackingAuthorization(); } Future _initializeFirebase() async { await Firebase.initializeApp(); } Future _initializeNotificationService() async { await NotificationService.initialize(); } void _initializeUrlStrategy() { setUrlStrategy(PathUrlStrategy()); } void _initializeSystemSettings() { SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]); if (kDebugMode) { log("Aplicativo em Debug Mode, crashlytics desabilitado!"); } else { final crashlyticsInstance = FirebaseCrashlytics.instance; if (crashlyticsInstance.isCrashlyticsCollectionEnabled) { FlutterError.onError = crashlyticsInstance.recordFlutterError; } } } Future _initializeFlutterFlow() async { await FlutterFlowTheme.initialize(); await FFLocalizations.initialize(); GoRouter.optionURLReflectsImperativeAPIs = true; usePathUrlStrategy(); }