일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- design pattern
- 플러터
- 모멘텀 기반 지표
- RSI
- 구조패턴
- 비트코인
- 소프트웨어공학
- 추세 기반 지표
- frontend
- adx
- 어댑터 패턴
- Flutter
- 볼린저 밴드
- ccxt
- Python
- MACD
- 티스토리챌린지
- 행동패턴
- ai
- 변동성 기반 지표
- Design Patterns
- 디자인패턴
- 오블완
- behavioral pattern
- next.js
- LLM
- pyQT
- front-end
- pyqt6
- 디자인 패턴
변혁적인 삶
[Flutter] 플러터 진입점: main.dart 소개 본문
🚀 [Flutter] 플러터 진입점: main.dart 소개
목차
- 개요
- 1. Flutter 앱의 기본 구조(main.dart)
- 2. Flutter 앱이 실행되는 과정
- 요약
- 마무리
개요
안녕하세요! 오늘은 Flutter 앱의 진입점을 간단하 예시를 통하여 쉽게 설명 드리겠습니다.
Flutter 앱을 개발할 때, 가장 먼저 실행되는 파일이 바로 main.dart입니다. 이 파일은 앱의 진입점(entry point)으로, 모든 Flutter 애플리케이션은 이곳에서 시작됩니다.
Dart에서 프로그램이 실행될 때는 main() 함수가 반드시 있어야 하며, Flutter 앱도 예외가 아닙니다. 이 글에서는 main.dart 파일이 어떻게 동작하는지, 그리고 Flutter 앱을 실행하기 위한 최소한의 코드를 소개하겠습니다.
1. Flutter 앱의 기본 구조(main.dart)
Flutter 앱의 시작점은 main() 함수입니다. main() 함수는 애플리케이션이 시작될 때 호출되며, Flutter의 위젯 트리를 실행하는 역할을 합니다. 아래는 Flutter 앱의 가장 기본적인 코드입니다.
// lib/main.dart
import 'package:flutter/material.dart'; // Flutter에서 Material 디자인을 사용하기 위한 라이브러리
// 애플리케이션의 진입점: main() 함수
void main() {
runApp(MyApp()); // runApp() 함수로 Flutter 위젯 트리를 실행합니다.
}
// 앱의 기본 구조를 정의하는 MyApp 클래스
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo', // 앱의 제목
home: Scaffold(
appBar: AppBar(
title: Text('Welcome to Flutter'), // 앱 상단의 제목
),
body: Center(
child: Text('Hello, Flutter!'), // 화면 중앙에 표시될 텍스트
),
),
);
}
}
코드 설명
- main() 함수: Dart 프로그램의 진입점입니다. 이 함수는 Flutter 애플리케이션이 실행되면서 호출됩니다.
- runApp() 함수는 Flutter의 최상위 위젯을 실행하는 역할을 합니다. 여기서는 MyApp()이라는 위젯을 넘겨주고 있습니다.
- MyApp 클래스: 이 클래스는 Flutter 앱의 기본 구조를 정의합니다. 여기서는 StatelessWidget을 상속받아 상태가 변하지 않는 UI를 설정합니다.
- MaterialApp은 Flutter에서 Material Design을 사용하는 애플리케이션을 만드는데 필요한 기본 설정을 제공합니다.
- Scaffold는 앱의 레이아웃을 구성하는 위젯으로, 앱바(AppBar)와 본문(body) 등의 구조를 제공합니다.
- UI 구성:
- 상단에는 AppBar가 있어 제목이 표시되고, 본문에는 Center 위젯이 있어 "Hello, Flutter!"라는 텍스트가 화면의 중앙에 표시됩니다.
2. Flutter 앱이 실행되는 과정
1. main() 함수: 앱이 시작될 때 가장 먼저 실행됩니다.
2. runApp() 함수: Flutter 위젯 트리를 실행하여, 우리가 만든 위젯이 화면에 렌더링되도록 합니다.
3. 위젯 트리: MyApp부터 시작하여 MaterialApp -> Scaffold -> AppBar, Text 등의 위젯이 계층 구조로 렌더링됩니다.
요약
- main.dart 파일: Flutter 앱의 시작점이자 진입점입니다. Dart 언어로 작성된 모든 프로그램은 main() 함수에서 시작되며, 이 함수는 앱의 실행을 담당하는 가장 중요한 함수입니다. Flutter에서도 마찬가지로 이 파일에서 앱의 실행이 시작됩니다.
- main() 함수: 앱의 진입점(entry point)으로, Flutter 애플리케이션이 실행될 때 가장 먼저 호출되는 함수입니다. main() 함수의 이름은 Dart 규칙에 의해 반드시 main이어야 하며, 다른 이름으로 변경할 수 없습니다. 이 함수에서 runApp()을 호출하는데, 이 함수는 Flutter 위젯 트리를 시작하여 화면에 렌더링합니다.
- runApp() 함수: Flutter 애플리케이션의 핵심인 위젯 트리를 화면에 그려주는 함수입니다. runApp()은 최상위 위젯을 받아 이를 렌더링하고, 앱이 동작할 준비를 합니다. 예제에서 runApp()에 전달된 위젯은 MyApp()이므로, 앱은 이 위젯을 기반으로 구동됩니다.
- 위젯 트리와 계층 구조: Flutter에서 모든 것은 위젯으로 이루어져 있습니다. 위젯 트리는 앱의 레이아웃을 계층 구조로 만들어 렌더링합니다. 예를 들어, MyApp은 최상위 위젯으로서 그 아래에 MaterialApp을 포함하고, 그 안에 Scaffold, AppBar, Center, Text 등의 자식 위젯들이 계층적으로 존재합니다.
- MaterialApp: Flutter 앱의 전체 설정과 테마를 제공하는 위젯입니다. 앱의 제목, 테마 색상, 기본 경로 등을 설정하며, 모든 Flutter 앱은 MaterialApp이나 CupertinoApp과 같은 최상위 위젯으로 시작됩니다.
- Scaffold: Flutter 앱의 기본적인 레이아웃 구조를 제공하는 위젯입니다. 앱바(AppBar), 본문(body), 플로팅 액션 버튼(floating action button) 등을 쉽게 구성할 수 있는 틀을 제공합니다.
- 위젯 트리의 자식 위젯: AppBar는 앱의 상단바를 정의하고, Center는 자식 위젯을 화면의 중앙에 배치합니다. Text 위젯은 단순히 화면에 텍스트를 표시하는 역할을 합니다.
- 상태와 상태 관리: 이번 예제에서는 StatelessWidget만을 사용했기 때문에 앱의 상태가 변하지 않습니다. StatelessWidget은 고정된 UI를 나타내며, 상태 변화가 없는 화면을 렌더링합니다. 이와 달리, 상태 변화에 따라 UI를 업데이트하는 StatefulWidget은 사용자 인터랙션이나 데이터 변경에 반응할 수 있습니다. 이를 통해 앱의 동적인 기능을 구현할 수 있습니다. StatefulWidget과StatelessWidget에 관한 자세한 설명은 하기 포스트 참고 바랍니다.
[Flutter] 위젯(Widget)이란? | Stateful과 Stateless의 차이
🚀 [Flutter] 위젯(Widget)이란? | Stateful과 Stateless의 차이목차개요1. 위젯(Widget)이란?1.1 위젯의 역할과 구조1.2 위젯 사용 예시2. Stateful과 Stateless 위젯2.1 StatelessWidget2.2 StatefulWidget2.3 두 위젯의 차이점
revolutionarylife.tistory.com
- Flutter의 핵심 철학: Flutter는 "모든 것이 위젯이다"라는 철학을 가지고 있습니다. 작은 텍스트부터 전체 화면까지 모든 UI 요소가 위젯으로 구성됩니다. 이 위젯들이 트리 구조로 상호 연결되며, 이 트리가 업데이트될 때 Flutter는 화면을 다시 그려줍니다. 이 구조 덕분에 Flutter는 유연한 UI 설계와 빠른 성능을 제공합니다.
마무리
Flutter를 처음 시작하는 분들에게 main.dart 파일의 구조를 이해하는 것은 매우 중요합니다. 이 기본 구조를 바탕으로 다양한 위젯을 추가하고, 상태 관리를 도입하면 점점 더 복잡하고 강력한 앱을 개발할 수 있습니다. 이제, 이 첫걸음을 통해 Flutter 개발을 시작해보세요! 🚀
'App > Flutter' 카테고리의 다른 글
[Flutter] 폴더 및 파일 구조 (2) | 2024.10.24 |
---|---|
[Flutter] 위젯(Widget)이란? | Stateful과 Stateless의 차이 (0) | 2024.10.24 |
[Flutter] 플러터란? | 빠르고 강력한 크로스 플랫폼 앱 개발 툴 (0) | 2024.10.23 |