반응형
플러터(Flutter)는 UI를 구성할 때 위젯(widget)이라는 기본 단위를 사용합니다. 위젯은 사용자 인터페이스의 모든 요소를 나타내며, 이러한 위젯들이 트리 구조로 구성된 것을 위젯 트리(widget tree)라고 합니다. 위젯 트리는 플러터 애플리케이션의 시각적 구조와 계층을 정의합니다.
왜 위젯 트리를 사용할까요?
- 구조적 구성: 위젯 트리를 사용하면 애플리케이션의 UI를 구조적으로 구성할 수 있습니다. 위젯은 부모-자식 관계로 연결되며, 이를 통해 복잡한 UI를 체계적으로 관리할 수 있습니다.
- 재사용성: 위젯을 재사용하여 코드 중복을 줄이고, 유지보수를 쉽게 할 수 있습니다.
- 동적 UI 구성: 위젯 트리를 동적으로 변경하여 사용자의 입력이나 상태 변화에 따라 UI를 업데이트할 수 있습니다.
위젯 트리 사용법
플러터에서 위젯 트리를 사용하는 방법을 단계별로 설명하겠습니다.
1. 기본 위젯 트리 예제
먼저, 간단한 위젯 트리를 만들어보겠습니다.
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('My First Flutter App'),
),
body: Center(
child: Text('Hello, Flutter!'),
),
),
);
}
}
예제 설명
- MyApp 클래스: StatelessWidget을 상속받아 기본 애플리케이션 구조를 정의합니다.
- MaterialApp 위젯: 플러터 앱의 루트 위젯으로, 앱의 기본 테마와 라우팅을 설정합니다.
- Scaffold 위젯: 앱의 기본 레이아웃 구조를 제공합니다. 앱 바(app bar), 본문(body) 등을 포함합니다.
- AppBar 위젯: 앱의 상단 바를 구성합니다.
- Center 위젯: 자식 위젯을 중앙에 배치합니다.
- Text 위젯: 화면에 텍스트를 표시합니다.
2. 위젯 트리 확장하기
위젯 트리를 확장하여 더 복잡한 UI를 만들어보겠습니다.
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('My Flutter App'),
),
body: Column(
children: <Widget>[
Text(
'Hello, Flutter!',
style: TextStyle(fontSize: 24),
),
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Icon(Icons.favorite, color: Colors.red),
SizedBox(width: 10),
Text('I love Flutter'),
],
),
Expanded(
child: Container(
color: Colors.blue,
child: Center(
child: Text(
'This is an expanded widget',
style: TextStyle(color: Colors.white),
),
),
),
),
],
),
),
);
}
}
예제 설명
- Column 위젯: 수직으로 자식 위젯을 배치합니다.
- Row 위젯: 수평으로 자식 위젯을 배치합니다. mainAxisAlignment 속성을 사용하여 자식 위젯을 중앙에 배치합니다.
- Icon 위젯: 화면에 아이콘을 표시합니다.
- SizedBox 위젯: 고정된 크기의 빈 공간을 만듭니다.
- Expanded 위젯: 남은 공간을 차지하도록 자식 위젯을 확장합니다.
- Container 위젯: 레이아웃을 위한 다양한 속성을 제공하는 위젯입니다.
결론
플러터에서 위젯 트리는 UI를 구성하는 핵심 요소입니다.
위젯 트리를 사용하면 애플리케이션의 구조를 체계적으로 구성하고, 재사용 가능한 컴포넌트를 만들며, 동적으로 UI를 업데이트할 수 있습니다.
위젯 트리를 이해하고 활용하는 것은 플러터 애플리케이션 개발의 기본이자 핵심입니다.
반응형
'Flutter > Flutter Programming' 카테고리의 다른 글
Flutter에서 비동기 처리: Return, then, 그리고 try-catch 사용법 (0) | 2024.07.04 |
---|---|
Flutter에서 StatefulWidget의 생명주기와 setState 사용법 (0) | 2024.07.04 |
플러터에서 enum이란 무엇인가요? (0) | 2024.07.04 |
플러터에서 싱글톤 패턴이란 무엇인가요? (0) | 2024.07.04 |
플러터에서 Factory Constructor란 무엇인가요? (0) | 2024.07.04 |