`MaterialApp` 클래스는 Flutter에서 Material Design을 구현하는 데 사용되는 루트 위젯이다. Material Design은 Google에서 만든 UI 디자인 가이드라인입니다. 이 클래스는 앱의 시작점에서 `runApp()` 함수에 전달되며, 주로 앱의 기본 레이아웃, 테마, 라우트 등을 설정하는 데 사용된다.
주요 속성
아래는 `MaterialApp`의 주요 속성 몇 가지에 대한 설명이다.
- home: 앱이 시작될 때 표시되는 기본 라우트로, 일반적으로 스크린의 루트 위젯으로 사용된다.
- routes: 앱에서 사용되는 라우트 맵을 정의한다. 경로와 그에 해당하는 위젯을 매핑할 수 있다.
- initialRoute: 앱이 시작될 때 초기에 로드할 라우트의 이름이다.
- onGenerateRoute: 라우트가 생성될 때 호출되는 함수로, 동적 라우트 생성에 사용될 수 있다.
- theme: 앱의 전반적인 테마를 설정한다. `ThemeData` 객체를 사용하여 다양한 스타일링 요소를 설정할 수 있다.
- locale: 앱의 언어 설정 등을 수동으로 설정합니다.
- localizationsDelegates: 앱의 지역화를 위한 델리게이트를 설정한다.
- title: 앱의 제목을 설정한다. 일부 안드로이드 앱 스위처나 작업 관리자에서 확인할 수 있다.
예제
아래는 `MaterialApp`을 사용하여 앱의 제목, 홈 페이지, 기본 테마, 그리고 라우트를 설정하는 기본 예제이다.
void main() {
runApp(MaterialApp(
title: 'My App',
home: MyHomePage(),
theme: ThemeData(
primarySwatch: Colors.blue,
),
routes: {
'/second': (context) => SecondPage(),
},
));
}
`MaterialApp`은 통일된 디자인 레이어를 제공하므로 개발자가 세부적인 스타일링에 신경 쓰지 않고도 좋은 사용자 경험을 제공할 수 있다.