/// fromis_9 Unofficial App /// /// MVCS 아키텍처: /// - Models: 데이터 모델 /// - Views: UI 화면 /// - Controllers: 비즈니스 로직 (Riverpod) /// - Services: API 통신 library; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'core/router.dart'; import 'core/constants.dart'; void main() { WidgetsFlutterBinding.ensureInitialized(); // 상태바 및 네비게이션 바 스타일 설정 SystemChrome.setSystemUIOverlayStyle( const SystemUiOverlayStyle( // 상태바 statusBarColor: Colors.transparent, statusBarIconBrightness: Brightness.dark, // 네비게이션 바 (소프트키) systemNavigationBarColor: Colors.white, systemNavigationBarIconBrightness: Brightness.dark, ), ); runApp( const ProviderScope( child: Fromis9App(), ), ); } class Fromis9App extends StatelessWidget { const Fromis9App({super.key}); @override Widget build(BuildContext context) { return AnnotatedRegion( value: const SystemUiOverlayStyle( statusBarColor: Colors.transparent, statusBarIconBrightness: Brightness.dark, systemNavigationBarColor: Colors.white, systemNavigationBarIconBrightness: Brightness.dark, systemNavigationBarDividerColor: Colors.transparent, ), child: MaterialApp.router( title: 'fromis_9', debugShowCheckedModeBanner: false, theme: ThemeData( useMaterial3: true, colorScheme: ColorScheme.fromSeed( seedColor: AppColors.primary, brightness: Brightness.light, ), scaffoldBackgroundColor: AppColors.background, appBarTheme: const AppBarTheme( backgroundColor: Colors.white, foregroundColor: AppColors.textPrimary, elevation: 0, scrolledUnderElevation: 1, centerTitle: true, titleTextStyle: TextStyle( color: AppColors.primary, fontSize: 20, fontWeight: FontWeight.bold, ), ), fontFamily: 'Pretendard', ), routerConfig: appRouter, ), ); } }