[Flutter/플러터] 기본 클래스 정리

isojng·2022년 1월 22일
1
post-thumbnail

플러터 앱 구조 <클래스>

StatelessWidget 클래스

상태(State)를 가지지 않는 위젯을 구성하는 기본 클래스. 상태를 가지지 않는다는 것은 한 번 그려진 후 다시 그리지 않는 경우이다.
StatelessWidget 클래스는 build() 메서드를 가지고 있다. build() 메서드는 위젯을 생성할 때 호출되는데, 실제로 화면에 그릴 위젯을 작성해 반환한다.

MaterialApp 클래스

return MaterialApp(
    title: 'Flutter Demo',
    theme: ThemeData(
    	primarySwatch: Colors.blue,
    ),
    home: MyHomePage(title: 'Flutter Demo Home Page'),
);

title, theme, home 프로퍼티를 설정하여 위젯의 속성을 표현한다.

title: 제목
theme: 테마
home: 실제로 앱이 표시하는 위젯

StatefulWidget 클래스

상태(State)가 있는 위젯을 정의할 때 사용하는 클래스.

class MyHomePage extends Statefulwidget {
    MyHomePage({Key key, this.title}) : super(key: key); //(1)
    
    final String title;
    
    @override
    _MyHomePageState createState() => _MyHomePageState(); //(2)
}

class _MyHomePageState extends State<MyHomePage> {
    int _counter = 0; //변경 가능한 상태 (3)

    ...

    @override
    Widget build(BuildContext context) { //(4)
        return Scaffold(...)
    }
}

(1): MyHomePage 클래스의 생성자는 key와 title 프로퍼티를 옵션으로 받아서 super 키워드로 부모 클래스의 생성자에 key를 전달한다.
(2): 상속받은 createState() 메서드를 재정의하여 _MyHomePageState 클래스의 인스턴스를 반환한다. StatefulWidget이 생성될 때 한 번만 실행된다.
(3): State 클래스를 상속받은 클래스를 상태 클래스라고 한다. 상태 클래스는 변경 가능한 상태를 프로퍼티 변수로 표현한다.
(4): _MyHomePageState 클래스의 상태에 따라 화면에 그려질 코드를 작성한다.

Scaffold 클래스

머티리얼 디자인 앱을 만들 때 뼈대가 되는 위젯.

0개의 댓글

관련 채용 정보