객체 지향 프로그래밍의 핵심 중 하나인 클래스를 사용하는 코드의 예시는 아래와 같으며 크게 4부분으로 나누어 살펴본다.
import 'package:flutter/material.dart'; //1. Import문
class MyWidget extends StatelessWidget { //2. MyWidget 클래스 정의
@override
Widget build(BuildContext context) { //3. build 매서드 정의
return Container(
color: Colors.blue,
child: Center(
child: Text(
'Hello, Flutter!',
style: TextStyle(fontSize: 24, color: Colors.white),
),
),
);
}
}
void main() { //4. main함수 정의
runApp(MaterialApp(
home: MyWidget(),
));
}
1. Import문
import 'package:flutter/material.dart';
필요한 패키지나 라이브러리를 가져온다.
2. MyWidget 클래스 정의
class MyWidget extends StatelessWidget
직역하면 MyWidget 클래스가 StatelessWidget 클래스를 확장하고 있다는 것을 나타낸다.
다르게 표현하면 Mywidget 클래스가 StatelessWidget의 특성을 상속하고 있다고도 표현할 수 있다.
그렇다면 StatelessWidget의 특성은 무엇일까?
Flutter에서 상태가 없는(Stateless) 위젯으로 동작하는 특성을 갖고 있다.
즉, Mywidget 클래스가 StatelessWidget의 특성을 상속한다는 건 Mywidget이 Flutter에서 상태가 없는(Stateless) 위젯으로 동작한다는 것을 의미한다.
한 번 만들어진 후에는 내부 상태를 변경하지 않는 위젯이라는 뜻이다.
3. build method 정의
Widget build(BuildContext context) {
return Container(
build 메서드는 Flutter 프레임워크에서 사용되는 중요한 메서드 중 하나이며, 모든 위젯 클래스에서 오버라이드(재정의)되어야 한다.
build 메서드의 역할은 해당 위젯의 구조를 정의하고 반환하는 것이다.
앱을 만들기 위해서 필요한 실질적인 기능을 하는 구현부라고 볼 수 있다.
위 코드의 경우 Container 이하의 위젯의 구조와 내용을 반환한다.
4. main함수 정의
void main() {
runApp(MaterialApp(
home: MyWidget(),
));
}
main 함수는 Dart 애플리케이션의 시작점이다.
이 함수에서는 runApp 함수를 호출하여 Flutter 앱을 시작한다.
MaterialApp은 기본적인 앱 레이아웃 및 디자인을 설정하며, home 속성을 통해 앱의 초기 화면으로 MyWidget 클래스를 사용한다.
'프로그래밍 언어 > 다트' 카테고리의 다른 글
다트 기초(C언어와의 차이점을 중심으로) (0) | 2023.09.03 |
---|