StatefulWidget은 상태를 유지하는 위젯입니다. 상태란 화면에서 갱신해야 하는 데이터를 의미합니다. 동적인 화면을 만들려면 StatefulWidget을 상속받은 클래스와 State를 상속받은 클래스가 필요합니다.StatefulWidget: 위젯 클래스State: StatefulWidget의 상탯값을 유지하고 화면을 구성하는 클래스StatefulWidget을 상속받은 클래스에는 build() 함수가 없습니다. 대신 createState() 함수를 꼭 재정의해야 합니다. 그리고 이 함수의 반환값은 State를 상속받은 클래스여야 합니다. StatefulWidget에도 변수나 함수를 정의할 수 있지만 이 클래스에서 화면을 구성하지는 않으므로 보통은 단순하게 작성합니다.class MyWidget ext..
Flutter
개발자가 만드는 위젯은 다음 3가지 클래스 가운데 하나를 상속받아 작성합니다. 여기서 InheritedWidget은 상태 관리와 관련이 있으므로 18장에서 자세히 다루기로 하고, 여기서는 StatelessWidget과 StatefulWidget을 살펴보겠습니다.StatelessWidget: 상태를 관리하지 않는 정적인 위젯StatefulWidget: 상태를 관리하는 동적인 위젯InheritedWidget: 여러 위젯에서 공통으로 이용할 상태 관리 위젯StatelessWidget은 상태와 연결되지 않는 위젯을 만드는 클래스입니다. 여기서 상태는 화면에 업데이트되는 데이터를 의미합니다. 즉, StatelessWidget 클래스는 화면에 업데이트 되는 데이터와 연결할 수 없으므로 처음 생성할 때의 정보로만 화..

위젯의 트리 구조대부분의 앱의 화면은 위젯을 여러 개 조합해서 구성합니다. 그런데 한 화면을 구성하는 모든 위젯을 단일 트리 구조를 이룹니다. 화면을 구성하는 3개 트리 구조앞에서 위젯의 트리 구조를 알아봤는데 사실 플러터 프레임워크가 화면을 만들 때 2개의 트리 구조를 더 만듭니다. 바로 엘리먼트 트리와 렌더 트리 입니다. 개발자는 위젯을 작성해야 하므로 위젯 트리마 알고 있으면 되지만, 프레임워크를 이해하는 차원으로 알아 두면 좋습니다.앞에서 살펴봤듯이 위젯은 화면에 보일 뷰를 설명만 할 뿐 실제 화면에 출력할 대상은 아닙니다. 따라서 프레임워크에서 뷰 설명을 보고 위젯 트리를 참조해 실제 화면에 출력할 객체들을 별도의 트리 구조로 만듭니다. 예를 들어 위젯을 아래 처럼 구성했다고 가정해 보겠습니다...
위젯은 화면에 보일 뷰를 설명하는 객체입니다. 즉, 화면과 관련된 모든 것이 위젯입니다. 플러터로 앱을 만들 때 기본 위젯과 사용자가 작성하는 위젯을 조합해서 화면을 구성합니다. 아래 코드에서는 runApp() 함수에 플러터가 기본으로 제공하는 Center라는 위젯을 전달했습니다. Center 위젯에 텍스트를 나타내는 Text 위젯을 포함했습니다.// runApp() 함수로 루트 위젯 등록하기import 'package:flutter/material.dart';void main() { runApp( Center( child: Text( 'Hello, world!', ), ), );} runApp() 함수는 전달받은 위젯을 위젯 트리의 루트로 만듭니다. 그리고 ..