📖 Flutter 기초 다지기
📌 프로젝트 구조
----------------------------------------------------------------
📌 lib 폴더
└── 앱을 수정하거나 기능을 추가할 때 거의 이 폴더에서 작업함
----------------------------------------------------------------
📌 android, ios, Linux, Web, windows 폴더
└── 네이티브 코드가 들어가는 공간
----------------------------------------------------------------
📌 test 폴더
└── lib에서 작성한 코드가 정상적으로 작동하는지 확인하는 테스트 코드를 넣는 곳
----------------------------------------------------------------
📌 pubspec.yaml 폴더
└── 어떤 패키지를 쓸 지 적어둠
----------------------------------------------------------------
📌 pubspec.lock 폴더
└── 패키지가 어떤 버전으로 설치됐는지 기록
----------------------------------------------------------------
📌 .gitignore 폴더
└── 올리면 안 되는 파일
----------------------------------------------------------------
📌 analysis_options.yaml 폴더
└── 코드 스타일이나 에러를 자동으로 체크해주는 규칙이 적혀있음
----------------------------------------------------------------
📌 .metadata 폴더
└── 프로젝트의 속성 정보 기록장
----------------------------------------------------------------
📌 .dart_tool 폴더
└── 도구 상자 같은 폴더로 GitHub에 올릴 필요 없음
----------------------------------------------------------------
📌 .idea 폴더
└── IDE 전용 설정 폴더
----------------------------------------------------------------
📌 .iml 폴더
└── Android Studio에서 쓰는 프로젝트 관리 파일
----------------------------------------------------------------
📌 README.md 폴더
└── 무슨 앱인지 설치 방법은 어떻게 되는지 적힘
----------------------------------------------------------------
📌 패키지
└── 개발자들이 자주 쓰는 기능들을 미리 만들어 둔 도구 상자
----------------------------------------------------------------
📌 패키지 추가 방법
├── Pubspec.yaml 직접 수정
└── 터미널에서 명령어로 추가
----------------------------------------------------------------
📌 Widget
├── StatelessWidget
└── StatefulWidget
----------------------------------------------------------------
📌 main.dart 실행 흐름
├── 앱 실행 시 main() 함수 호출
├── runApp() 함수가 불리면 화면 만들기 시작
└── MyApp 안에서는 보통 MaterialApp이라는 Widget 리턴
----------------------------------------------------------------
📌 MaterialApp
├── 앱을 만들 때 제일 최상단에 두는 틀
└── CupertinoApp은 애플 디자인을 따라감
----------------------------------------------------------------
📌 Scaffold
└── 각 화면의 기본 틀을 잡아주는 위젯