Flutter 개발은 Dart 라는 언어를 사용한다.
Dart로 상수를 선언할 때 사용하는 키워드로는 const와 final이 있다.
먼저 상수란, 한 번 값을 대입하면 변경할 수 없는 값을 말한다.
const는 컴파일 타임에 값이 초기화되는 반면, final은 실행 중(런타임)에 값이 초기화된다는 차이점이 있다.
가장 많이 사용하는 예시로 DateTime.now() 를 활용한 코드가 있다.
//DateTime.now()는 실행되는 시간을 출력할 때 사용
//final은 실행 중 값이 초기화. 정상 출력
final finalLog = DateTime.now()
//const는 컴파일 시 값이 초기화. 실행을 언제할지 모르기 때문에 컴파일 시간은 담을 수 없음. 에러 발생
const constLog = DateTime.now()
이러한 상수를 활용하여 상수 전용 파일을 만들 수 있다.
lib 폴더 아래에 constants.dart 파일을 만들어, 자주 사용하는 색상과 텍스트 스타일과 관련한 값들을 상수화시켜줬다.
(변수를 _로 시작하면 지역변수로 인식하기 때문에 다른 클래스에서 사용이 불가능하다. 주의하도록 하자.
또한, 모든 변수가 소문자 k로 시작하는 이유는 구글 flutter 팀에서 공통적으로 사용하는 코딩 컨벤션이다.)
/* constants.dart */
import 'package:flutter/material.dart';
class ConstantStyles {
//다른 클래스에서 사용할 수 있도록 static 키워드 사용
static const Color kDartGrey = Color(0xFF111111);
static const Color kLightGrey = Color(0xFFEEEEEE);
static const kBoldTextStyle = TextStyle(color: Colors.white, fontWeight: FontWeight.bold);
static const kTitleTextStyle = TextStyle(color: kLightGrey, fontSize: 20);
}
위와 같이 작성한 상수를 사용하다보면, 특정 값만 바꿔야 되는 상황이 생기기도 한다.
상수를 하나 더 작성해주거나 아래와 같이 .copyWith() 메소드를 사용하여 특정 값만을 바꿀 수 있다.
Text(
"textStyle 사용",
//kTitleTextStyle을 사용하되, fontSize를 25로 변경하고 싶은 경우
style: ConstantStyles.kTitleTextStyle.copyWith(fontSize: 25),
), ...
'Flutter' 카테고리의 다른 글
[Flutter] 구글 admob 적용 (0) | 2023.07.19 |
---|---|
[Flutter] Google Book API 사용법 (0) | 2023.07.19 |
[Flutter] 기기에 데이터 저장 (shared_preferences) (0) | 2023.07.19 |
[Flutter] 상태관리 패키지(provider) 사용법 (0) | 2023.07.18 |
[Flutter] Text 클릭하여 화면 이동 (GestureDetector, Navigator) (0) | 2023.07.18 |