본문 바로가기
모바일/Flutter

[Flutter] 03 플러터 내부 구조 - 플러터 프로젝트, 위젯

by 푸_푸 2023. 1. 6.
728x90

플러터 프로젝트의 폴더

 

주요 폴더 소개

폴더 내용 비고
android 안드로이드 프로젝트 관련 파일 안드로이드 스튜디오로 실행 가능
ios iOS 프로젝트 관련 파일 엑스코드로 실행 가능(맥 전용)
lib 플러터 앱 개발을 위한 다트 파일 플러터 SDK 설치 필요
test 플러터 앱 개발 중 테스트 파일 테스트 편의성 제공

루트 안 파일 소개

파일 내용 비고
pubspec.yaml 패키지, 이미지, 폰트 설정 직접관리
README.md 프로젝트 소개
.gitignore 깃(git)에 커밋, 푸시 등 소스 코드를 업로드할 때 필요 없는 파일 기록
.metadata Flutter SDK 정보 자동 관리
.pakages Flutter SDK에 사용하는 기본 페이지 경로
first_flutter_app.imi 파일이 자동으로 생성될 때 만들어지는 폴더 위치
pubspec.lock pubspec.yaml 파일에 적용된 패키지 위치

 

플러터 메인 소스 파일 구성

 

import 구문

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

main() 함수

플러터 앱을 main() 함수에서 시작

MyApp 클래스

main() 함수에서 runApp() 함수로 플러터 앱을 실행할 때 화면에 표시할 위젯으로 전달한 MyApp클래스를 정의한 부분

 

위젯

앱에서 위젯은 자동차 부품처럼 특정한 기능을 담당하면서 앱을 편리하고 아름답게 만드는 부품이라고 생각할 수 있다.

앱에서 위젯은 클래스로 구현하며 이를 상속받는 다양한 위젯이 있다.

예를 들어 Text 클래스는 글자를 전문적으로 표시하는 위젯, Image 클래스는 이미지, Button 클래스는 버튼을 전문적으로 표시하는 위젯이이다.

 

상태 연결에 따른 위젯 구분

스테이트리스(stateless) : 내용을 갱신할 필요가 없는 정적인 위젯

상태를 연결할 필요가 없는 위젯. StatelessWidget 클래스를 상속받음

스테이트풀(stateful) : 앱이 위젯의 상태를 감시하다가 특정 상태가 되면 알맞은 처리를 수행하야 하는 위젯

상태가 연결된 동적인 위젯. StatefulWidget 클래스를 상속 받음

스테이트풀 위젯은 메모리나 CPU 등 자원을 많이 소비하지만, 스테이트리스 위젯은 적은 자원으로 화면을 구성할 수 있다.

728x90

댓글