Flutter : MaterialApp 이 뭐야?

koeyhoyh·2022년 6월 27일
0

App_Flutter

목록 보기
3/19

MaterialApp에 대한 간단한 이해

MaterialApp({Key? key, GlobalKey<NavigatorState> 
navigatorKey, GlobalKey<ScaffoldMessengerState>? 
scaffoldMessengerKey, Widget? home, Map<String, 
WidgetBuilder> routes = const <String, WidgetBuilder>{}, 
String? initialRoute, RouteFactory? onGenerateRoute, 
InitialRouteListFactory? onGenerateInitialRoutes, 
RouteFactory? onUnknownRoute, List<NavigatorObserver> 
navigatorObservers = const <NavigatorObserver>[], 
TransitionBuilder? builder, String title = '', 
GenerateAppTitle? onGenerateTitle, Color? color, ThemeData? 
theme, ThemeData? darkTheme, ThemeData? highContrastTheme, 
ThemeData? highContrastDarkTheme, ThemeMode? themeMode = 
ThemeMode.system, Locale? locale, 
Iterable<LocalizationsDelegate>? localizationsDelegates, 
LocaleListResolutionCallback? localeListResolutionCallback, 
LocaleResolutionCallback? localeResolutionCallback, 
Iterable<Locale> supportedLocales = const <Locale>
[Locale('en', 'US')], bool debugShowMaterialGrid = false, 
bool showPerformanceOverlay = false, bool 
checkerboardRasterCacheImages = false, bool 
checkerboardOffscreenLayers = false, bool 
showSemanticsDebugger = false, bool 
debugShowCheckedModeBanner = true, Map<ShortcutActivator, 
Intent>? shortcuts, Map<Type, Action<Intent>>? actions, 
String? restorationScopeId, ScrollBehavior? scrollBehavior, 
bool useInheritedMediaQuery = false})

이게 뭘까...??

쉽게 설명하면,

구글이 만들고, 지향하는 디자인인 Material Design을 사용할 수 있게 만들어주는 클래스이다.

Material Design이 궁금하다면?

iOS 스타일로 만들 수 있는 Cupertino와 함께, 보통 Android 스타일에서 대표적으로 쓰이고 있다.

저 위의 수 많은 파라미터중에서 필수적인 것은 home (widget) 이다.
home은 app을 실행할 때, 가장 먼저 나오는 페이지(위젯)이다.

예제에서는 Scaffold() 안에 여러가지 파라미터들이 많이 들어가 있다.
MaterialApp() 클래스를 사용하게 되면, Scaffold를 사용할 수 있는데, Material Design 안에서 Scaffold 라는 뼈대(?), 형태를 사용하겠다고 말하는 것이다.

많은 예제에서 사용되고는 있지만, 당연히 사용하지 않고도 앱을 만들 수 있다.

Scaffold

-> MaterialApp() 아래에 존재하며, 많은 기본 기능들을 제공한다. (Material Design의 AppBar, BottomNavigationBar, FloatingActionButton 등...)


참고 :
https://api.flutter.dev/flutter/material/MaterialApp-class.html
https://100sucoding.tistory.com/33

profile
내가 만들어낸 것들로 세계에 많은 가치를 창출해내고 싶어요.

0개의 댓글