import 'package:firebase_core/firebase_core.dart'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:real_estate_mobile/config/app_config.dart'; import 'package:real_estate_mobile/config/firebase_config.dart'; import 'package:real_estate_mobile/core/theme/app_theme.dart'; import 'package:real_estate_mobile/core/utils/image_url_resolver.dart'; import 'package:real_estate_mobile/routing/app_router.dart'; Future mainCommon(Flavor flavor) async { WidgetsFlutterBinding.ensureInitialized(); await AppConfig.init(flavor); await Firebase.initializeApp(options: FirebaseConfig.currentOptions); // Only clear the in-memory presigned URL cache — NOT the disk image cache. // Presigned URLs expire after ~1 hour and are re-fetched lazily by // ImageUrlResolver when needed. The disk cache (CachedNetworkImage) must // persist across restarts for app smoothness — clearing it on every start // forces every image to re-download, causing visible delay on all screens. ImageUrlResolver.instance.clearCache(); runApp(const ProviderScope(child: MyApp())); } class MyApp extends ConsumerWidget { const MyApp({super.key}); @override Widget build(BuildContext context, WidgetRef ref) { final router = ref.watch(routerProvider); return MaterialApp.router( title: 'RE-Quest', theme: AppTheme.light, routerConfig: router, debugShowCheckedModeBanner: false, ); } }