2025-10-21

개발하며 새로 알게된 것들

  1. 위젯 생성자에 const를 쓰는 이유
  2. Spacer와 GestureDetector
  3. Column 화면 깨짐
  4. 플러터 위젯에서의 key


위젯 생성자에 const를 쓰는 이유

  • 위젯을 컴파일 타임에 미리 만들어서 성능을 높이기 위해서다
  • 이렇게 하면 위젯이 한 번만 생성되고, 빌드가 다시 일어나도 재사용됨

-> 성능 향상


Spacer와 GestureDetector

  • Spacer는 공간을 벌리는 역할일 뿐 실체가 없는 위젯
  • 따라서 onTap이 적용되지 않는다
  • 이때 최상단 위젯에 배경색을 적용해주면 실체를 갖게되어 Spacer 부분을 클릭해도 onTap이 적용


Column 화면 깨짐

RowColumn은 자식에게 명확한 크기 제한을 주지 않으면
무한한 공간으로 간주하기 때문에 Expanded 등으로 제약을 줘야 한다

  • TextField 등 자식이 스스로 사이즈를 정할 수 없는 경우 무한한 크기를 가진다
  • 이걸 Column 단독으로 감쌌을 경우에는 줄이 길어지면 화면이 깨진다
  • 따라서 자식을 유한한 크기로 만들어 주어야한다
  • Expanded는 자식에게 명확한 크기 제약을 부여하는 역할을 한다

Expanded가 하는 일은
“스크린(부모 위젯)의 남은 공간 중 이만큼을 너한테 줄게, 그 높이(너비) 안에서만 크기 정해”


플러터 위젯에서의 key

  • 위젯이 위젯트리 상에서 이동을 하는 과정에서
  • 위젯의 State를 보존하기 위해 위젯을 유니크하게 식별해주는 역할이다
  • 기본적으로 플러터 프레임워크에서 제공해주는 위젯들은 Build Time 에 key를 부여받게 된다



태그:

카테고리:

업데이트: