[Flutter] 위젯이란?

이지우·2022년 10월 20일
0

플러터

목록 보기
1/2
  1. Flutter 상에서의 위젯이란?
  2. Stateless widgets vs. Stateful widgets
  3. Widget tree

Widget

◎ 위젯이란?

  1. 독립적으로 실행되는 작은 프로그램
  2. 주로 바탕화면 등에서 날씨나 뉴스, 생활정보 등을 보여줌
  3. 그래픽이나 데이터 요소를 처리하는 함수를 가지고 있음

◎ 플러터에서 위젯이란?

  1. UI를 만들고 구성하는 모든 기본 단위 요소
    ex) 로그인 앱 화면에서 이미지, 텍스트, 아이콘, 텍스트필드, 버튼
  2. 눈에 보이는 요소 + 눈에 보이지 않는 요소
    ex) 요소들을 가운데에 위치 시키는 center, 세로로 배치시키는 column, 세세하게 위치 지정하는 padding
  3. 플러터에서는 모든 요소가 위젯임
    위젯에서 시작해서 위젯으로 끝남

◎ 위젯 종류

  1. Stateless Widget
  2. Stateful Widget
  3. Inherited Widget

Stateless widgets vs. Stateful widgets

  1. Stateful => Value 값을 지속적으로 추적 보존
  2. Stateless => 이전 상호작용의 어떠한 값도 저장하지 않음

Stateless Widgets

상대가 없는 정적인 위젯
움직임이나 변화가 없음

  1. 스크린상에 존재만 할 뿐 아무것도 하지 않음
  2. 어떠한 실시간 데이터도 저장하지 않음
  3. 어떤 변화(모양, 상태)를 유발시키는 value값을 가지지 않음
    ex) 텍스트, 이미지

Stateful Widgets

계속 움직임이나 변화가 있는 동적인 위젯

  1. 사용자의 interaction에 따라서 모양이 바뀜
    ex) 체크박스, 라디오 버튼
  2. 데이터를 받게 되었을 때 모양이 바뀜
    ex) 텍스트 필드

Flutter Widget tree

위젯들을 나열하여 앱을 만들어가는 과정에서 계층구조를 가지게 됨

  1. Widget들은 tree 구조로 정리될 수 있음
  2. 한 Widget 내에 얼마든지 다른 widget들이 포함될 수 있음
  3. Widget은 부모 위젯과 자식 위젯으로 구성
  4. Parent widget을 widget container라고 부르기도 함

  1. MyApp
    커스텀 위젯, MaterialApp 위젯이 빌드됨

  2. MaterialApp
    실질적으로 전체 위젯을 감싸고 있는 위젯, 이 위젯을 통해 SDK에서 제공하는 위젯이라고 이름 붙여진 모든 위젯 사용 가능하게 됨

  3. MyHomePage
    커스텀 위젯, 여기부터 앱의 디자인과 기능이 만들어짐

  4. Scaffold
    앱 화면과 기능을 구성하기 위한 빈 페이지를 준비해주는 위젯, 이 밑으로 본격적으로 모든 앱의 구성 요소들이 사용됨

  5. AppBar
    앱 화면의 가장 상단에 위치함

  6. Text
    AppBar에 입력될 텍스트

▼ 페이지의 body부분에 해당하는 요소들

  1. Center
    요소들을 화면 중앙에 위치시키기 위함

  2. Column
    요소들을 세로로 위치시키기 위함

  3. Image, TexField, Button


요약

  1. Flutter의 모든 것은 widget
  2. 위젯이 전혀 변화가 없으면 stateless widgets
  3. 위젯의 모양이나 상태가 바뀐다면 stateful widgets
  4. 위젯은 트리구조로 구성되어 있음
profile
노력형 인간

0개의 댓글