/
Ru5Kasper
/
Trackly
Обзор
Документация
Войти
/
Ru5Kasper
/
Trackly
Код
Запросы
1
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
develop
frontend/lib/main.dart
69 строк
2 KB
DORANDKOR
feat(frontend): notifications
23 май 2026, 13:08
23 май 2026, 13:08
a9009c7
Код
Авторство
О чём код?
import 'package:flutter/material.dart'; import 'constants/app_colors.dart'; import 'screens/create_habit_screen.dart'; import 'screens/habit_detail_screen.dart'; import 'screens/home_screen.dart'; import 'screens/login_screen.dart'; import 'screens/register_screen.dart'; import 'screens/settings_screen.dart'; import 'screens/splash_screen.dart'; import 'screens/user_stats_screen.dart'; import 'services/habit_sync_service.dart'; import 'services/notification_service.dart'; import 'storage/local_storage_service.dart'; Future<void> main() async { WidgetsFlutterBinding.ensureInitialized(); await HabitSyncService.instance.init(); await LocalStorageService.loadThemeMode(); await NotificationService.instance.init(); runApp(const MyApp()); } class MyApp extends StatelessWidget { const MyApp({super.key}); @override Widget build(BuildContext context) { return ValueListenableBuilder<ThemeMode>( valueListenable: LocalStorageService.themeModeNotifier, builder: (context, themeMode, _) { return MaterialApp( title: 'Трекер привычек', themeMode: themeMode, theme: ThemeData( colorScheme: ColorScheme.fromSeed( seedColor: AppColors.primary, brightness: Brightness.light, ), useMaterial3: true, ), darkTheme: ThemeData( colorScheme: ColorScheme.fromSeed( seedColor: AppColors.primary, brightness: Brightness.dark, ), useMaterial3: true, ), home: const SplashScreen(), routes: { '/splash': (context) => const SplashScreen(), '/login': (context) => const LoginScreen(), '/register': (context) => const RegisterScreen(), '/home': (context) => const HomeScreen(), '/habits/create': (context) => const CreateHabitScreen(), '/habit-detail': (context) { final habitId = ModalRoute.of(context)?.settings.arguments as int?; if (habitId == null) { return const HomeScreen(); } return HabitDetailScreen(habitId: habitId); }, '/settings': (context) => const SettingsScreen(), '/stats': (context) => const UserStatsScreen(), }, ); }, ); } }