그 동안 너무 노마드코더 강의 따라가는 데만 집중한 나머지
제대로 복습을 해 본 적이 없었다.
내 눈에는 매우 익숙하지만 아직도 개념이 모호한 것들을 정리하는 시간을
가지려 한다.
1. Mediaquery
- 화면 크기 등 현재 프로그램이 돌아가고 있는 디바이스에 대한 정보를 제공하는 클래스.
2. context
class MyWidget extends StatelessWidget {
const MyWidget({super.key});
@override
Widget build(BuildContext context) {
return const Placeholder();
}
}
위와 같이 statelessWidget을 처음 만들면 맨 위의 생성자와 함께 build 메서드가 생긴다. build 메서드는 인자로 BuildContext형의 context를 받고 Widget을 리턴한다. build 메서드는 대충 화면을 그려주는 역할을 한다고 알고 있고, 화면을 그려주는 역할을 하니까 당연히 Widget을 리턴한다는 것까지는 알고 있다. 그런데 인자로 받는 context의 정체는 무엇일까? 플러터 공식 문서의 설명은 이러하다.
The given [BuildContext] contains information about the location in the tree at which this widget is being built.
int 타입이 정수 데이터를 저장하고, String 타입이 문자열 데이터를 저장하듯, BuildContext 타입은 위젯 트리 상에서 현재 위젯의 위치 데이터를 저장한다. 어떤 블로그에서는 부모 위젯에 대한 현재 위젯의 위치 정보라던데 그게 맞는지는 잘 모르겠으니 이 글의 맨 아래 참고 항목의 링크를 타고 들어가 직접 확인하길 바란다.
요약:
context는 현재 위젯의 위젯 트리 상 위치를 담는 역할을 한다.
3. Fat arrow syntax
별것도 아닌 건데 자꾸 헷갈렸다.
int add(int a, int b) {
return (a + b);
}
이 함수는 a랑 b를 받아서 그 합을 리턴하는 단순한 코드다.
그런데 별것도 아닌 코드인데 세 줄씩이나 잡아먹는다.
이게 못마땅하면 아래와 같이 Fat arrow를 사용해서 한 줄로 줄일 수 있는 것이다.
int add(int a, int b) => a + b;
4. builder
void _onSubmit() {
if (!_isPasswordValid()) return;
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => const BirthdayScreen(),
),
);
}
제일 이해가 안 됐던 것 중에 하나가 builder다.
참고:
'프레임워크 > flutter' 카테고리의 다른 글
[꿀팁] 디지털 노가다에서 해방되기 (0) | 2024.07.05 |
---|---|
[아이디어]본격적으로 코드를 짜기 전에 이렇게 하면? (0) | 2023.12.24 |
[Error]app_time_stats (0) | 2023.12.08 |
[Error]FontawesomeIcon 인식 안됨 (0) | 2023.12.05 |
[개념]mainaxisalignment? crossaxisalignment? (0) | 2023.12.02 |