백엔드에서 nodemon
의 기능처럼 코드가 바뀔경우 굳이 재시작 할 필요없이 구동할 수 있는것이 바로 flutter의 Hot Reload
이다. 하지만 Hot Reload
는 만능이 아니다. 다시말해 핫 리로딩이 되는것도 있지만, 핫 리로딩이 되지않는것이 있다는 뜻이다.
기본적으로 많은 상황에서 Hot Reload
를 통해 즉각적으로 결과를 확인할 수 있지만 특정 케이스에서는 Hot restart
,Full restart
를 활용해야 할 수 있다. 동작하지 않는 경우는 다음과 같다.
앱이 종료된 경우
변경된 부분 지점에서 에러가 발생한 경우
- Compilation Error가 발생한 경우 동작하지 않을 수 있다. 해당 Error를 수정한다면 바로 결과를 확인 할 수 있다.
Enumerated types(열거형 타입)
- 열거형 타입을 클래스로 변경하여 클래스를 열거형 타입으로 변경할 경우
폰트변경
- 대부분 assets에 대해 Hot reload
를 지원하지만 font 변경의 경우 Hot restart
를 해야한다.
Generic Types
- type의 정의가 변경된 경우에 동작하지 않는다.
Native Code
- 스위프트, 코틀린, 자바등의 native 코드를 수정한경우 Full Restart를 진행해야한다.
최종적으로 Hot Reload
는 main()
혹은 initState()
를 다시 실행하지 않기 때문에 MyApp 변경점은 보이지 않게된다. 다만 Hot Restart를 통해서는 main()
을 다시 실행하기 때문에 기대와 같이 변경사항이 반영됨.
출처 :