Flutter를 공부하기 위해서 책을 볼까하고 고민하던중에 서울도서관에서 '(처음 배우는) 플러터'라는 책을 보게 되어 전자책으로 대출을 받아 공식문서와 함께 참고하면서 공부를 해보려고 한다.
이것저것 앞부분은 설치에 관한 것이라 건너 뛰고 flutter project 를 create 하면 생기는 main.dart 와는 별개로 simple_main.dart를 만들어보고 위젯 개념에 대한 설명을 읽고 기록해보려고 한다.
1. main()
dart의 모든 함수는 void main() 함수에서 시작한다고한다. dart언어를 사용하는 flutter 도 main() 함수를 가지고있는 main.dart 파일에서 실행을 하면 시뮬레이터에 해당 앱이 실행되게 된다. main.dart와 다른 이름을 가지는 파일을 만들어서 main함수를 정의 하면 똑같이 실행 시킬수 있고 해당 main함수로 실행되는 앱이 나타나게 된다. main함수가있어야 한다는건 java나 c언어와 똑같은거같다. 주로 파이썬이나 JS를 다루고 있는데 이런점에서는 다른부분인듯?
2.simple_main.dart
책에서는 simple_main.dart 파일에 main-> runApp -> materialApp -> scatfold-> AppBar + Text 로 정의된 코드를 설명해준다.
main() 가 필요하다는 것은 알았고, 이 중에 빠지는 것이 있다면 어떻게 되는지 궁금했다.
void main(){
}
만 정의하고 실행하면 어떻게 될까?
앱은 실행되지만, 아무것도 없는 흰바탕으로 나온다.
main() 함수는 runApp() 을 return 해야하는데 그냥 아무것도 return 하지 않아도 같은 상황이 된다.
그럼 runApp에 아무 arguments 도 입력하지 않는다면??
우선 vscode 에서도 에러를 표시해주지만, 무시하고 실행하면
arguments 가 1개 필요하다고 나온다.
에러 로그의 문장들은 python이랑 비슷한듯하다.
runApp()를 보면
voidrunApp(Widget app)
Type:void Function(Widget)
package:flutter/src/widgets/binding.dart
returnType이 void 인 함수로 parmeterType이 Widget이다 optional parameter가 아닌걸로보아 Type 이 Widget인 객체를 argument로 입력해 주면 될거 같다.
그럼 MaterialApp은 Widget이라는 소리인데 Text widget을 넣으면 어떻게 될까