import 'package:flutter/material.dart'; import 'theme/app_theme.dart'; import 'services/storage_service.dart'; import 'services/encouragement_service.dart'; import 'services/notification_service.dart'; import 'screens/home_screen.dart'; import 'screens/onboarding_screen.dart'; void main() async { WidgetsFlutterBinding.ensureInitialized(); // Initialize services await StorageService.init(); final encouragementService = EncouragementService(); await encouragementService.loadMessages(); // Initialize notification service final notificationService = NotificationService(); await notificationService.initialize(); // Request permissions on first launch await notificationService.requestPermissions(); runApp(MyApp(encouragementService: encouragementService)); } class MyApp extends StatefulWidget { final EncouragementService encouragementService; const MyApp({ super.key, required this.encouragementService, }); @override State createState() => _MyAppState(); } class _MyAppState extends State { bool _hasCompletedOnboarding = false; bool _isLoading = true; @override void initState() { super.initState(); _checkOnboardingStatus(); } Future _checkOnboardingStatus() async { final completed = await OnboardingScreen.hasCompletedOnboarding(); setState(() { _hasCompletedOnboarding = completed; _isLoading = false; }); } @override Widget build(BuildContext context) { return MaterialApp( title: 'FocusBuddy', debugShowCheckedModeBanner: false, theme: AppTheme.lightTheme, home: _isLoading ? const Scaffold( body: Center( child: CircularProgressIndicator(), ), ) : _hasCompletedOnboarding ? HomeScreen(encouragementService: widget.encouragementService) : OnboardingScreen( encouragementService: widget.encouragementService, ), ); } }