반응형
질문
Flutter 앱이 디버그 모드 일 때 코드를 실행하는 방법을 찾고 있습니다. Flutter에서 가능한가요? 문서 어디에서도 찾을 수 없습니다.
다음과 같은 것
If(app.inDebugMode) {
print("Print only in debug mode");
}
Flutter 애플리케이션이 디버그 모드 또는 릴리스 모드에서 실행 중인지 확인하는 방법은 무엇인가요?
답변
나중 버전에서는 kDebugMode
를 사용할 수 있습니다:
if (kDebugMode)
doSomething();
어설션(asserts)은 수동으로 "디버그 모드" 변수를 만들 수 있지만, 그것을 피해야합니다.
대신, package:flutter/foundation.dart
에서 상수 kReleaseMode
를 사용하십시오.
차이점은 모두 트리 쉐이킹(tree shaking)과 관련이 있습니다.
트리 쉐이킹(사용되지 않는 코드를 컴파일러가 제거하는 것)은 변수가 상수인지에 따라 달려 있습니다.
문제는, 어설션(asserts)에서 우리의 isInReleaseMode
부울이 상수가 아니기 때문입니다. 따라서 앱을 출시할 때 개발 및 릴리스 코드가 모두 포함됩니다.
반면, kReleaseMode
는 상수입니다. 따라서 컴파일러는 사용되지 않는 코드를 올바르게 제거할 수 있으며, 우리는 안전하게 다음을 수행할 수 있습니다:
if (kReleaseMode) {
} else {
// 릴리스 빌드에서 트리 쉐이크 될 것입니다.
}
반응형
댓글