AgendaTasks/lib/app.dart
m3mo cb308bbf68 Initial project setup with Clean Architecture
- Flutter frontend with Provider state management
- FastAPI backend with SQLAlchemy ORM
- Internationalization support (EN/DE)
- Clean Architecture folder structure
- GoRouter for navigation
- GetIt for dependency injection
2026-02-02 16:43:37 +01:00

58 lines
1.9 KiB
Dart

import 'package:flutter/material.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
import 'package:provider/provider.dart';
import 'core/di/injection_container.dart';
import 'features/settings/presentation/viewmodels/settings_viewmodel.dart';
import 'routing/app_router.dart';
class AgendaApp extends StatelessWidget {
const AgendaApp({super.key});
@override
Widget build(BuildContext context) {
return MultiProvider(
providers: [
ChangeNotifierProvider(create: (_) => getIt<SettingsViewModel>()),
],
child: Consumer<SettingsViewModel>(
builder: (context, settingsVm, _) {
return MaterialApp.router(
title: 'Agenda Tasks',
debugShowCheckedModeBanner: false,
theme: ThemeData(
colorScheme: ColorScheme.fromSeed(
seedColor: const Color(0xFF1A365D),
brightness: Brightness.light,
),
useMaterial3: true,
appBarTheme: const AppBarTheme(
centerTitle: true,
elevation: 0,
),
),
darkTheme: ThemeData(
colorScheme: ColorScheme.fromSeed(
seedColor: const Color(0xFF1A365D),
brightness: Brightness.dark,
),
useMaterial3: true,
),
themeMode: settingsVm.themeMode,
locale: settingsVm.locale,
supportedLocales: AppLocalizations.supportedLocales,
localizationsDelegates: const [
AppLocalizations.delegate,
GlobalMaterialLocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
GlobalCupertinoLocalizations.delegate,
],
routerConfig: AppRouter.router,
);
},
),
);
}
}