initialize method
Starts the splash initialization process.
Runs onInit and the minimum duration timer concurrently, then transitions to SplashState.completed or SplashState.error.
Implementation
Future<void> initialize() async {
_setState(SplashState.initializing);
final stopwatch = enablePerformanceMonitoring ? (Stopwatch()..start()) : null;
try {
final results = await Future.wait([
onInit(),
Future<void>.delayed(Duration(milliseconds: minimumDuration)),
]);
stopwatch?.stop();
_loadTimeMs = stopwatch?.elapsedMilliseconds;
if (enablePerformanceMonitoring && kDebugMode) {
debugPrint(
'[SmartSplashKit] App initialized in ${_loadTimeMs}ms',
);
}
_resolvedRoute = results[0] as SplashRoute;
_setState(SplashState.completed);
} catch (e) {
stopwatch?.stop();
_error = e;
if (kDebugMode) {
debugPrint('[SmartSplashKit] Initialization error: $e');
}
if (errorFallbackRoute != null) {
_resolvedRoute = errorFallbackRoute;
_setState(SplashState.completed);
} else {
_setState(SplashState.error);
}
}
}