인프런 커뮤니티 질문&답변

김태원님의 프로필 이미지
김태원

작성한 질문수

Flutter 초입문 왕초보편

051. 비만도 계산기 프로젝트 작성

main_screen 질문

작성

·

402

·

수정됨

0

051.비만도계산기프로젝트 강의영상 2:58에서요

 

class MainScreen extends StatefulWidget { const MainScreen({Key? key}) : super(key: key); @override State<MainScreen> createState() => _MainScreenState(); } class _MainScreenState extends State<MainScreen> { @override Widget build(BuildContext context) { return Container(); } }

 

이렇게 입력을 한 이유가 뭔가요? MainScreen 하고 Container이요

답변 2

1

오준석님의 프로필 이미지
오준석
지식공유자

상태가 있는 화면을 만드는 기본 코드입니다.

별다른 이유가 있다기 보다는 구글에서 이렇게 쓰면 된다고 정해둔 코드로서 이런 의미없는 코드를 상용구라고도 부릅니다.

그래서 '상태가 있는 화면을 만드는 상용구 코드'입니다.

Container() 는 빈 공간이고요. 기본적으로 뭐라도 있어야 하기 때문입니다. 요즘 버전에서는 PlaceHolder() 가 자동으로 생길겁니다. 이건 빈공간인데 X 표시까지 보여주는 의미없는 위젯중 하나입니다.

MainScreen은 클래스의 이름을 정해 준 것입니다.

김태원님의 프로필 이미지
김태원
질문자

2:40에서 const는 왜 붙이나요?

책에 있다면 몇페이지인지알려주세요

오준석님의 프로필 이미지
오준석
지식공유자

상용구 코드를 쓸 때는 코드의 작은부분 하나하나를 이해하면서 쓸 필요가 없습니다. 그냥 이 코드 덩어리가 무엇을 하는 거다 정도로 넘어가도 무방합니다.

final 이 실행중에 결정되는 상수라면, const 키워드의 역할은 컴파일타임 상수를 정의하는 키워드입니다.

변수가 없는 Widget 은 생성자에 const 키워드를 두면 상수화 하여 성능을 좋게 할 수 있습니다. 한번 메모리에 생성된 것을 재활용하기 때문입니다.

책의 맨 뒤쪽 index 에 보시면 찾는 키워드를 검색할 수 있는데요. 책에서는 자세한 설명 없이 padding 코드에 들어간다 정도의 느낌으로 지나갑니다.

0

김태원님의 프로필 이미지
김태원
질문자

기본코드로 세팅할때 찾아보니까 기본코드들이 약간씩 다르던데 상관없는건가요?

개발할때도 그냥 복사해서 쓰면되나요?

오준석님의 프로필 이미지
오준석
지식공유자

인터넷 검색 등을 통해서 다른 곳의 코드들을 보신 것이라면 버전에 따라서 약간씩 다를 수는 있으나 중요한 부분은 동일할 겁니다.

처음에는 그냥 복사해서 써도 무방하지만 기능을 추가할 때는 정확한 의미를 알고 수정해야 합니다. 그 때는 Dart 문법이나 Flutter를 깊이 공부할 필요가 있습니다.

김태원님의 프로필 이미지
김태원

작성한 질문수

질문하기