[flutter] 플러터(flutter) 위젯(widget)과 레이아웃(layout) 개념

플러터(Flutter)는 Google에서 개발한 사용자 인터페이스(UI) 소프트웨어 개발 킷입니다. 플러터는 단일 코드베이스로 iOS와 Android 모두에서 동작하는 고품질의 네이티브 앱을 만들 수 있도록 지원합니다. 이 때 핵심 요소인 위젯과 레이아웃에 대해 알아보겠습니다.

위젯(Widget)

플러터의 모든 것은 위젯으로 이루어져 있습니다. 위젯은 애플리케이션에서 화면에 그려지는 모든 부분을 나타냅니다. 플러터의 위젯은 UI의 여러 구성 요소들을 표현하고, 가시적인 부분을 제공하는 데 사용됩니다. 예를 들어, 버튼, 텍스트, 이미지 등 모두 위젯의 형태로 존재합니다.

플러터의 위젯은 불변(immutable)하며, 위젯은 계층 구조를 형성할 수 있습니다. 다시 말해, 더 작은 위젯들을 조합하여 복잡한 UI를 생성할 수 있습니다. 위젯들은 상태가 변경되면 화면을 다시 렌더링하여 UI를 업데이트합니다.

레이아웃(Layout)

레이아웃은 위젯들을 배치하고 조직화하는 방법을 나타냅니다. 플러터는 다양한 레이아웃을 제공하여 UI 요소들을 유연하게 배치할 수 있습니다.

  1. Column: 세로 방향으로 위젯을 배치하는 레이아웃입니다.
  2. Row: 가로 방향으로 위젯을 배치하는 레이아웃입니다.
  3. Stack: 위젯을 겹치거나 정렬할 수 있는 레이아웃입니다.
  4. Container: 크기와 속성을 설정할 수 있는 위젯입니다.
  5. Expanded: 사용 가능한 모든 공간을 차지하는 위젯입니다.
  6. ListView: 스크롤 가능한 목록을 표시하는 위젯입니다.

위 레이아웃들을 조합하여 복잡한 UI를 구성할 수 있습니다. 각각의 레이아웃에는 고유한 속성과 설정값들이 있으며, 위젯들을 효율적으로 배치하는 데 도움이 됩니다.

마무리

위젯과 레이아웃은 플러터 앱 개발에서 핵심적인 개념입니다. 위젯은 UI의 구성 요소들을 표현하고, 레이아웃은 위젯들을 조직화하여 UI를 배치합니다. 이를 통해 플러터를 사용하여 다양하고 유연한 UI를 손쉽게 개발할 수 있습니다.

플러터 공식 문서에서 위젯과 레이아웃에 대한 자세한 내용을 찾을 수 있으니 참고해보시기 바랍니다.