Files
fitness/mobile/lib/main.dart
T
2026-10-04 00:19:45 +03:00

57 lines
1.9 KiB
Dart

import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'services/database_service.dart';
import 'services/gps_service.dart';
import 'services/sync_service.dart';
import 'services/analytics_service.dart';
import 'controllers/workout_controller.dart';
import 'screens/home_screen.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
// 1. تهيئة الخدمات (Services Initialization)
// بالترتيب: قاعدة البيانات -> الـ GPS -> المزامنة -> التحليل
await Get.putAsync(
() => DatabaseService().onInit().then((_) => DatabaseService()));
Get.put(GpsService());
await Get.putAsync(() => SyncService().onInit().then((_) => SyncService()));
Get.put(AnalyticsService());
// 2. تهيئة المتحكمات (Controllers)
Get.put(WorkoutController());
runApp(const SportPathApp());
}
class SportPathApp extends StatelessWidget {
const SportPathApp({super.key});
@override
Widget build(BuildContext context) {
return GetMaterialApp(
title: 'SportPath Tracker',
debugShowCheckedModeBanner: false,
locale: const Locale('ar', 'SA'), // دعم اللغة العربية افتراضياً
theme: ThemeData(
useMaterial3: true,
fontFamily: 'Inter', // التأكد من وجود الخط في pubspec
colorScheme: ColorScheme.fromSeed(
seedColor: const Color(0xFFFF5722), // اللون البرتقالي الأساسي
primary: const Color(0xFFFF5722),
secondary: const Color(0xFF263238),
brightness: Brightness.dark, // وضع ليلي متميز
),
scaffoldBackgroundColor: const Color(0xFF121212),
cardTheme: CardThemeData(
color: const Color(0xFF1E1E1E),
elevation: 0,
shape:
RoundedRectangleBorder(borderRadius: BorderRadius.circular(16)),
),
),
home: const HomeScreen(),
);
}
}