플러터 내부 구조 살펴보기

해버니·2022년 7월 2일
0

flutter

목록 보기
3/3
post-thumbnail

폴더&파일들 살펴보기

플러터 프로젝트를 만들면 자동으로 많은 파일이 생성됩니다. 기본적으로 안드로이드용 앱과 iOS용 앱을 만드는 프로젝트 폴더가 각각 생성되고, 플러터 앱을 구현하는 소스 파일과 프로젝트 설정, 테스트 등을 수행하는 파일도 생성됩니다.
플러터 프로젝트를 구성하는 핵심적인 폴더와 파일을 살펴보고, 그중 메인 소스 파일의 구조도 살펴보겠습니다.


플러터는 많은 파일로 구성되지만 우선은 lib 폴더에만 집중하면 됩니다.

build 폴더 등은 앱의 설정값을 바꾸면 자동으로 변경되므로 직접 수정하지 않아도 됩니다.

일반적으로 함수를 테스트하려면 앱을 다시 실행해야 해서 시간이 걸리는데, 플러터 프로젝트는 test 폴더를 제공하므로 편리하게 테스트할 수 있습니다.






플러터의 메인 소스 파일


import는 해당 소스 파일에서 사용하려는 패키지를 불러올 때 사용하는 구문입니다.

자바 import와 똑같습니다.
다른 다트 클래스나 pubspec.yaml 파일에서 내려받은 패키지를 불러올 때도 사용합니다.

여기서는 material.dart 패키지를 불러왔습니다.
이 패키지에는 플러터의 UI와 관련된 거의 모든 클래스가 포함되어 있어서 자주 사용합니다.






main() 함수

main() 함수에서는 runApp() 함수를 호출합니다.

runApp() 함수는 binding.dart 클래스에 정의되어 있으며 플러터 앱을 시작하는 역할을 합니다. 이 함수에 플러터 앱을 시작하면서 화면에 표시할 위젯을 전달합니다. 예에서는 MyApp이라는 위젯을 전달했습니다.






MyApp 클래스

클래스 이름 뒤의 extends는 다트에서 상속을 의미하는 키워드입니다. 여기서는 StatelessWidget이라는 클래스를 상속받았는데 일단 상태가 변경되지 않는 위젯을 상속받았다고 생각하면 됩니다.

MyApp 클래스에서는 @override 애너테이션을 이용해서 build()라는 함수를 재정의했습니다. build() 함수에는 어떠한 위젯을 만들 것인지를 정의합니다. materialApp은 그림을 그리는데 필요한 도화지라고 생각하면 됩니다. MaterialApp() 함수에는 그림을 그리는 도구에 속하는 title, theme 그리고 home 등이 정의되어 있습니다.

visualDensity 속성은 앱이 모바일이나 웹, 데스크톱, 맥 등 어떤 플랫폼에서도 자연스럽게 보이도록 지원합니다.

0개의 댓글