프로젝트 구조
Flutter 프로젝트를 생성하고
IDE를 통해 열면 아래와 같은 프로젝트 구조가 나타난다.
1. .dart_tool/
Dart 2에서부터 .pub 폴더를 대체하는 폴더로,
Dart tool과 Flutter에서 사용하는 파일을 포함하고 있다.
보통 이 폴더에서 아무것도 변경하지 않는다.
2. .idea/
개발도구에 필요한 설정 파일이다.
보통 이 폴더에서 아무것도 변경하지 않는다.
3. android/
Android 빌드시 필요한 파일과 코틀린 코드들이 생성되어있는 폴더이다.
Android 네이티브 코드 작성하게 되면 이 폴더에서 작업하게 된다.
그외 개발 중 이 폴더에서 사용해야하는 파일은 보통 아래와 같다.
- android/app/build.gradle : 구글 플레이 스토어에 제출할 applicationId 작성
- android/app/src/main/AndroidManifest.xml : 앱에서 사용할 intent, capability 설정
4. build/
빌드시 자동 생성되는 폴더이다.
한 프로젝트가 각기 다른 플랫폼에서 앱을 실행하는 데 필요한 파일이 포함되어 있어
각 플랫폼마다 하위 폴더가 존재한다.
5. ios/
iOS 빌드시 필요한 파일과 swift 코드들이 생성되어있는 폴더이다.
iOS 네이티브 코드 작성하게 되면 이 폴더에서 작업하게 된다.
그외 개발 중 이 폴더에서 사용해야하는 파일은 보통 아래와 같다.
- ios/Runner/AppDelegate.swift : ios 앱의 진입점을 작성한 파일로 일부 package에서 초기화 로직이 포함되는 경우 작성
- ios/Runner/info.plist : ios 앱 관련 설정 파일로 일부 권한 요청과 내장된 기능을 사용하기 위해 작성
6. lib/
기본 플러터 앱 코드가 작성된 main.dart 파일이 존재하며
개발을 위한 코드 구현은 거의 이 폴더 내에서 작성하게 된다.
7. linux / windows / macos
현재 사용 중인 플랫폼에 따라 생성되는 폴더이다.
8. test/
테스트 코드가 작성된 파일이 포함된 폴더이다.
flutter --test
위 명령어를 통해 실행되게 되며,
flutter에서 테스트 코드 파일을 찾기 위해서 파일명을 _test.dart 로 명명해야한다.
9. web/
시스템이 웹에서 작동하도록 설정한 경우에만 표시되는 폴더이다.
10. .gitignore
git으로 작업할 때 무시해야하는 폴더 또는 파일을 작성한 텍스트 파일이다.
11. .metadata
Flutter에 의해 자동으로 관리되는 파일로
보통 임의로 수정하지 않는다.
12. analysis_options.yaml
dart 코드 분석을 위한 ruleset 파일이다.
자세한 설정 방법은 아래 사이트 참고
https://dart.dev/guides/language/analysis-options
13. [project-name].iml
Flutter 프로젝트의 추가 설정(주로 폴더 위치 등)이 포함된 파일로 프로젝트 이름을 따라 명명된다.
보통 임의로 수정하지 않는다.
14. pubspec.lock
pudspec.yaml을 기반으로 생성된 파일로
이 파일을 삭제하면 pubspec.yaml을 이용해서 다시 생성할 수 있습니다.
15. pubspec.yaml
js의 경우 package.json과 동일한 역할로 아래 정보들이 등록되어있는 파일이다.
- 프로젝트의 이름, 설명 및 버전과 같은 일반 프로젝트 설정
- 프로젝트 종속성
- Flutter 프로젝트에서 사용할 수 있어야 하는 자산 (ex. image, font)
'💻 개발IT > Flutter' 카테고리의 다른 글
Flutter 앱 배포 자동화하기 ② (with. Fastlane) (0) | 2024.11.11 |
---|---|
Flutter 앱 배포 자동화하기 ① (with. Fastlane) (4) | 2024.11.10 |
[Flutter] .pub-cache/hosted/pub.dev/http-0.13.5/lib/src/io_client.dart 에러 (0) | 2023.03.30 |
[Flutter] 앱 배포 전 설정 정리! (ios, android) (0) | 2023.03.19 |
[Flutter] hot reload 안 될 때 (0) | 2023.03.12 |
[Flutter] Unable to boot the simulator 에러 (0) | 2023.03.10 |
[Flutter] main.dart 구조 분석 (0) | 2023.01.25 |