Flutter 기초 - main.dart와 MaterialApp의 이해
이 포스트에서는 Flutter 앱의 구조, main.dart 파일의 역할, materialApp 위젯의 중요성에 대한 내용을 작성하였다.
Flutter 앱의 시작점:main.dart
Dart 프로그램은 main() 함수에서 시작된다. Flutter 앱도 마찬가지로 main.dart파일이 entry point가 되고 앱의 전체적인 테마, 라우트 설정 등이 이루어지며, 이 파일에서 runApp()이 가장 중요한 함수가 된다.
runApp() 함수의 역할
runApp()함수는 Flutter 앱의 루트 위젯을 설정한다. 이 함수에 전달된 위젯은 앱의 최상위 위젯이 되며, 전체 앱UI의 기초가 된다. 일반적으로 MaterialApp, CupertinoApp, WidgetsApp의 인스턴스가 사용된다.
인스턴스는 객체와 같은 의미로 사용되지만, 좀 더 구체적인 상황을 나타내는 데 사용된다. 클래스로부터 객체가 생성될 때, 그 객체를 인스턴스라고 부른다.
1
2
3
void main() {
runApp(MyApp());
}
여기서 MyApp()은 최상위 루트 위젯이다. 앱의 기본적인 스타일과 레이아웃을 설정한다.
MaterialApp 위젯의 중요성
MaterialApp위젯은 Flutter의 머터리얼 디자인 구현의 핵심이다. 이 위젯은 앱의 루트에 위치하며, 여러 중요한 기능과 속성을 제공한다.
주요 속성 알아두기
title: 앱의 이름을 정의theme: 전역적으로 적용되는 앱의 테마를 설정. 색상, 폰트 스타일 등home: 앱이 시작할 때 사용자에게 보여질 첫 화면을 지정routes: 앱의 다양한 화면 간 네비게이션 경로를 정의initialRoute: 초기에 보여질 화면의 경로를 지정onGenerateRoute: 동적으로 라우트를 생성할 때 사용되는 콜백locale&localizationsDelegates: 다국어 지원과 지역화를 위한 설정debugShowCheckedModeBanner: 개발 모드에서”Dubug”배너의 표시 여부 결정
MaterialApp 사용 예시
1
2
3
4
5
6
7
8
MaterialApp(
title: '블라블라블라', // 앱의 타이틀 설정
theme: ThemeData(
primarySwatch: Colors.blue, // 앱의 기본 색상 테마 설정
),
home: MyHomePage(), // 앱의 홈 화면 설정
// 여기에 더 많은 설정을 추가할 수 있다....
)
Flutter는 모바일 앱 개발을 간소화하고, 빠르게 멋진 앱을 만들 수 있는 강력한 프레임워크이다. 특히 많은 부분이 간소화 되었기에 1인 개발에 좋은 프레임워크라고 생각한다. 내가 생각한 장점은 아래와 같다.
- Flutter는 ‘모든 것이 위젯이다’라는 직관적이고 모듈화된 방식인 점
- 단일 코드로 iOS & Android 앱을 동시에 개발할 수 있다는 점
- 핫 리로드 기능으로 빠른 개발과 테스트가 가능하다는 점
이러한 장점들 때문에 나는 네이티브가 아닌 Flutter를 선택했고, 배워 나가고 있다.
This post is licensed under CC BY 4.0 by the author.
