Development Artist

[Flutter] Flutter Life Cycle ( 플러터 라이프 사이클 ) 본문

Research/Flutter

[Flutter] Flutter Life Cycle ( 플러터 라이프 사이클 )

JMcunst 2022. 1. 17. 15:05
728x90
반응형

Intro

 라이프 사이클이란 개념이 나오게된 배경에는 정확하지는 않지만, 개발을 체계적으로하고, 운영 및 유지보수를 효율적으로 하기위함일 것이다.

 

 필자는 새로운 프레임워크 또는 언어를 배울때 '라이프사이클'이란 키워드로 그 대상을 검색해본다. 그 이유는 어떻게 프레임워크가 돌아가는지 쉽게 파악할 수 있기 때문이다. 처리 순서를 파악할 수 있게 되는데, 이것을 알고 모르고의 차이는 퍼포먼스에서 큰 차이가 난다. 

 

 처음 시작은, 안드로이드 앱을 만들 때 였다. 그 당시에는 라이프 사이클 개념의 존재도 몰랐었고, 어떻게 앱이 처리하는지 직접 코드에 넣어보며 삽질을 하던 때였다. 그러다가 우연히 라이프 사이클 개념을 찾아보게 되었고, 아이고 이걸 왜 지금 봤나 하면서 한탄을 했었다. 

 

 그래서 이번에 Flutter로 프로젝트를 하나 진행해보면서 똑같이 Flutter Life cycle을 검색해보았다.


Flutter Life Cycle

플러터의 생명주기는 2가지의 경우로 분리시켜서 생각해볼 수 있다. 

첫 번째는 Stateful, 두 번재는 Stateless이다.

State<T extends StatefulWidget>https://api.flutter.dev/flutter/widgets/State-class.html

Stateless : https://api.flutter.dev/flutter/widgets/StatelessWidget-class.html

 

createState : 트리의 지정된 위치에 이 위젯을 변경 가능한 상태로 만든다.

InitState : 라이프 사이클의 첫 번째 method. build 앞에 호출된다. 필요한 모든 종류의 초기화를 수행.

DidChangeDependencies : 두 번째 method. dependency가 변경될 때마다 호출된다. 여기서 상속된 위젯과 같은 항목에 대한 변수를 다시 할당할 수 있다.

DidUpdateWidget : 위젯 환경이 변경될 때마다 호출된다. 예를 들어, 애니메이션 컨트롤러의 기간을 넘길 때.

setState : 개체의 내부 상태가 변경되었음을 프레임워크에 알린다.

deactivate : tree에서 개체가 제거되면 호출된다.

activate : deactivate를 통해 이 개체를 제거한 후 트리에 다시 삽입하면 호출된다.

dispose : tree에서 개체가 영구적으로 제거되면 호출된다. 예를 들어 Navigator.pushRelacement을 사용하여 위젯을 다른 위젯과 복제할 때.


Flutter Stateless, Stateful Life cycle

 

728x90
반응형
Comments