feat(01-01): Initialize Supabase in main.dart

- Updated main.dart with proper Supabase initialization
- Added environment loading with error handling
- Replaced default Flutter template with Sage app
- Created simple HomePage with Supabase connection status
- Used debugPrint instead of print for production compliance
This commit is contained in:
Dani B
2026-01-28 08:40:26 -05:00
parent 44f444eafc
commit 97637e5baa

86
lib/main.dart Normal file
View File

@@ -0,0 +1,86 @@
import 'package:flutter/material.dart';
import 'package:supabase_flutter/supabase_flutter.dart';
import 'package:flutter_dotenv/flutter_dotenv.dart';
import 'core/constants/supabase_constants.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
try {
// Load environment variables
await SupabaseConstants.initialize();
// Initialize Supabase
await Supabase.initialize(
url: SupabaseConstants.supabaseUrl,
anonKey: SupabaseConstants.supabaseAnonKey,
);
debugPrint('Supabase initialized successfully');
} catch (e) {
debugPrint('Failed to initialize Supabase: $e');
}
runApp(const SageApp());
}
class SageApp extends StatelessWidget {
const SageApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Sage - Food Inventory Tracker',
theme: ThemeData(
colorScheme: ColorScheme.fromSeed(seedColor: Colors.green),
useMaterial3: true,
),
home: const HomePage(),
);
}
}
class HomePage extends StatelessWidget {
const HomePage({super.key});
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
backgroundColor: Theme.of(context).colorScheme.inversePrimary,
title: const Text('Sage'),
),
body: const Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text(
'Welcome to Sage',
style: TextStyle(
fontSize: 24,
fontWeight: FontWeight.bold,
),
),
SizedBox(height: 16),
Text(
'Your collaborative household food inventory tracker',
style: TextStyle(
fontSize: 16,
color: Colors.grey,
),
),
SizedBox(height: 32),
Text(
'Supabase connection: ✓ Ready',
style: TextStyle(
fontSize: 14,
color: Colors.green,
fontWeight: FontWeight.w500,
),
),
],
),
),
);
}
}