[Dart] RunApp(const MyApp()); vs runApp(MyApp()); (flutter)

runApp(const MyApp());runApp(MyApp()); 사이의 차이는 const 키워드의 사용 여부에 따른 차이입니다. 이 차이는 성능 최적화와 불변 객체와 관련이 있습니다.

1. const MyApp() 사용

runApp(const MyApp());
  • const 키워드를 사용하면, MyApp 위젯이 불변 객체로 만들어집니다.
  • 컴파일 시점에 MyApp이 변하지 않는다는 것을 알려주며, 해당 위젯이 여러 번 다시 그려지더라도 동일한 값을 가진다면 Flutter는 해당 위젯을 다시 생성하지 않고 캐싱된 위젯을 사용합니다.
  • 결과적으로, 성능 최적화에 도움이 됩니다. 불변의 위젯은 필요할 때만 다시 그려지고, 변경되지 않는 위젯은 재구성되지 않기 때문에 렌더링 성능이 향상됩니다.

2. MyApp() 사용

runApp(MyApp());
  • const 키워드를 사용하지 않으면, 매번 새로운 인스턴스가 생성됩니다.
  • Flutter는 MyApp 위젯이 변경될 수 있다고 생각하여, 해당 위젯을 매번 다시 렌더링할 수 있습니다. 이는 성능 최적화에 불리할 수 있습니다.

결론

  • const MyApp()는 위젯의 상태가 변하지 않는다면, 불필요한 위젯 재생성을 방지하고 Flutter 앱의 성능을 향상시킵니다.
  • MyApp()은 필요할 때 새로운 인스턴스를 생성하지만, 만약 위젯이 불변이라면 const를 붙여주는 것이 더 나은 선택입니다.

즉, MyApp이 변하지 않는다면 const MyApp()을 사용하는 것이 좋습니다. Flutter는 불변성을 적극적으로 사용하여 최적화를 수행하는 프레임워크이므로, const를 활용하는 것이 최적화 측면에서 이점이 많습니다.

댓글 쓰기
가져가실 때, 출처 표시 부탁드려요! 감사합니다. 💗