app_bootstrap.dart
1.05 KB
import 'package:flutter/widgets.dart';
import 'package:get/get.dart';
import '../../core/config/app_environment_config.dart';
import '../../core/logging/app_logger.dart';
import '../../core/services/user_state_service.dart';
import '../../data/local/local_storage.dart';
import '../../data/local/user_preferences_storage.dart';
import '../bindings/initial_binding.dart';
/// Application startup before [runApp].
abstract final class AppBootstrap {
static Future<void> init() async {
WidgetsFlutterBinding.ensureInitialized();
AppLogger.init();
final local = await LocalStorage.open();
final environmentConfig = AppEnvironmentConfig(local);
await environmentConfig.init();
final userPreferencesStorage =
UserPreferencesStorage(local.sharedPreferences);
await userPreferencesStorage.init();
InitialBinding(
environmentConfig: environmentConfig,
userPreferencesStorage: userPreferencesStorage,
).dependencies();
if (local.termsAgreed) {
await Get.find<UserStateService>().initializeSdks();
}
}
}