Equatable 을 사용하여 여러 final 속성을 props 에 포함시키려면, 해당 속성들을 List<Object> 로 반환해 주면 됩니다. 여러 개의 속성을 사용하고 싶다면, 간단하게 리스트에 각 속성을 추가하면 됩니다. 예를 들어, final int a 와 final int b 가 있을 때는 다음과 같이 처리할 수 있습니다~ fina…
만약 하위 클래스 에서 부모 클래스의 props 를 사용하지 않고 항상 오버라이드하여 자신의 상태만을 비교한다면, Equatable 을 직접 상속하는 것과 큰 차이가 없습니다. 기본 예시 코드~ abstract class SleepTimeState extends Equatable { const SleepTimeState(); @override …
Equatable 을 상속받을 때, 하위 클래스는 반드시 props 를 오버라이드할 필요는 없습니다. 하지만, 만약 하위 클래스에서 객체의 동등성을 판단하는 데 필요한 추가적인 프로퍼티가 있다면, 그 프로퍼티를 props 에 포함시켜야 합니다. 예시코드~ abstract class SleepTimeState extends Equatable { con…
Flutter 개발을 하면서 가장 자주 마주치는 두 키워드가 바로 const 와 final 입니다. Dart에서 const 와 final 은 변수 선언 시 변경 불가능한 값을 정의하는 데 사용됩니다. 하지만 이 둘은 미묘한 차이점을 가지고 있고, 사용 목적과 상황에 따라 다르게 적용되어야 합니다. 이 글에서는 const 와 final 의 공통점과 차이점을…
runApp(const MyApp()); 와 runApp(MyApp()); 사이의 차이는 const 키워드의 사용 여부에 따른 차이입니다. 이 차이는 성능 최적화와 불변 객체와 관련이 있습니다. 1. const MyApp() 사용 runApp(const MyApp()); const 키워드를 사용하면, MyApp 위젯이 불변 객체로 만들어집니다. 컴파…
Flutter에서 AxisAlignment는 main과 cross가 있습니다. 2개의 차이는 Row에 대해 적용하느냐, Column에 대해 적용하느냐에 따라 차이가 있는데요, main은 기본을 뜻하지요? 그리하여 row와 같이 행, 가로가 기준일 때에는 가로방향을 뜻하고요, column과 같이 열, 세로가 기준일 때에는 세로방향을 뜻해요. Row 위젯 m…
플러터에서 async async* yield yield* 에 대해 알아보도록 합시다. 애스터리스크(*)가 마치 포인터처럼 보이는데, 그건 아니고요, 😊 특수문자가 없으면 계산 결과(result of an asynchronous computation), 특수문자가 있으면 스트림과 같은 데이터의 연속(sequence of data)을 반환한다는 뜻입니다. …
... 으로 시작하는 연산자가 궁금하신가요? 스프레드 연산자(spread operator)라고 하는데요, 여러 항목을 컬렉션에 추가할 때에 사용할 수 있습니다. 살펴보시지요. ... operator (스프레드 연산자) '다트'에서 스프레드 연산자('...')를 유용하게 사용할 수 있는 곳은 특히 리스트(List)입니다! 😊…
FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':gradle:compileGroovy'. > BUG! exception in phase 'semantic analysis' in source unit 'C:…
Error: No Windows desktop project configured. See https://docs.flutter.dev/desktop#add-desktop-support-to-an-existing-flutter-app to learn about adding Windows support to a project. 오류가 나타나는 이유 위의 오류…
안드로이드 스튜디오에서 Gemini 사용 중 "unexpected network error" 오류가 발생했나요? 다음의 방법을 시도해 보세요. 이 오류가 API 키 미등록 또는 구버전 Android Studio 사용 때문이기도 하니까요. Android Studio 최신 버전으로 업데이트 Gemini 기능은 최신 버전에서 안정적으로 작동하…
플러터에서 Building with plugins requires symlink support 오류가 발생하였을 때, 해결 방법에 대해 알아보도록 합시다. Launching lib\main.dart on Windows in debug mode... Exception: Building with plugins requires symlink support. …