Flutter 기초 (Widget ~ Architecture)

원장·2024년 6월 18일

플러터 기초

목록 보기
2/36

Widget

Flutter UI 의 가장 기본적인 단위는 Widget

Widget Tree

Flutter의 Widget들과의 관계

Hot restart / Hot reload

상태 관리 차이

디자인 가이드

별도의 디자이너 직군이 없는 소규모 앱 개발 인원만 있다면 디자인 가이드를 지키는 것이 앱의 완성도를 높이는데 유리하다.

Layout

  • Column과 Row로 Layout 구성
  • Flexible로 Layout 구성
  • Expanded를 Column 높이가 정해지지않았는데 쓰지 않기 주의
  • Stack위에 Container 쌓기 => 특정 UI가 존재하지 않을 때 겹쳐서 만들면 좋음

Constraints

BoxConstraints

부모로부터 제약 걸기

Container안에 Container있을 때 안에 있는 Container가 가로,세로가 작더라도 상위color를 먹는 경우가 있음.

그 때 Constraints로 제한 걸기

UnconstrainedBox

부모의 제약조건에서 벗어날 수 있음

OverflowBox

얘로 overflow나더라도 제한된 영역에서만 보이게 할 수 있음.

State < 한번 더 복습 필요할듯

initState 없이도 초기값을 설정 가능.

classLevel에서 변수 선언하면 해당 변수는 클래스의 인스턴스가 생성될 때 초기화.

initState에서 변수 선언하면 해당 변수는 위젯이 처음 빌드 될때 = State 객체가 초기화 될 때 실행 < 1번만 실행.

controller들은 dispose시 반드시 dispose해주기.

Lifecycle

Stateless

Create > build() > dispose

위젯이 1번 빌드되면 바뀌지 않음

Stateful

Create Widget > Create State < Widget > > initState() > build() > setState(), didUpdatedWidget() or deactivate > dispose() > Dispose

Stateful에서 dispose하지 않으면 채팅의 경우 스트림데이터가 쌓여서 앱의 성능 따운, 최적화x

쉽지않은 상태관리로 Riverpod / BLoC / GetX / Provider / Redux 이용

Architecture

Embedder 위에 Engine 위에 Framework

profile
나 원장이 아니다

0개의 댓글