플러터(Flutter)로 새 프로젝트를 시작하는 개발자라면 flutter create 명령어는 가장 먼저 마주하게 되는 관문입니다. 이 명령어는 단순히 프로젝트 폴더를 만드는 것을 넘어, 개발의 첫 단추를 끼우는 중요한 과정입니다.
이 글에서는 기본 명령어만 사용하는 것을 넘어, 처음부터 효율적이고 깔끔한 프로젝트를 설정하는 데 도움이 되는 flutter create의 필수 옵션들을 소개합니다.
1. 기본 flutter create 명령어
옵션 없이 flutter create [프로젝트_이름] 명령어를 실행하면, 기본적으로 다음과 같은 특징을 가진 프로젝트가 생성됩니다.
- 카운터 예제 앱: 화면의 버튼을 누르면 숫자가 증가하는 간단한 샘플 코드가 포함됩니다.
- 모든 플랫폼 지원: Android, iOS, Web, macOS, Linux, Windows를 모두 지원하는 설정 파일과 폴더가 생성됩니다.
이제 프로젝트의 목적에 맞게 처음부터 설정을 최적화할 수 있는 유용한 옵션들을 알아보겠습니다.
2. --org (조직 식별자 지정)
가장 중요한 옵션입니다. App Store나 Google Play에 앱을 출시할 때 필요한 **고유 패키지 이름(Bundle ID)**을 설정합니다. 보통 회사의 도메인을 거꾸로 사용하는 컨벤션(com.mycompany)을 따릅니다.
이 옵션을 생략하면 기본값인 com.example로 생성되는데, 이 상태로는 스토어에 앱을 배포할 수 없습니다. 나중에 Xcode나 Android Studio에서 직접 수정하는 것은 번거로우므로, 프로젝트 생성 시점에 정확히 설정하는 것이 매우 편리합니다.
💡 왜 중요한가요? 이 ID는 프로젝트의 핵심 식별자로 사용됩니다. 예를 들어, Android의 경우 android/app/src/main/kotlin/com/mycompany/my_app과 같은 폴더 구조에, **iOS 프로젝트의 경우 PRODUCT_BUNDLE_IDENTIFIER**에 직접 반영됩니다.
flutter create --org com.mycompany my_app
3. --platforms (지원 플랫폼 지정)
프로젝트가 지원할 플랫폼을 쉼표(,)로 구분하여 미리 지정합니다. 이를 통해 개발하지 않을 플랫폼의 폴더와 설정 파일이 생성되는 것을 막아, 프로젝트 구조를 깔끔하게 유지할 수 있습니다.
예를 들어 모바일 앱만 개발할 계획이라면, web이나 데스크톱 관련 폴더들은 불필요하게 혼란을 주거나 프로젝트 용량을 차지할 수 있습니다.
# iOS와 Android만 지원하는 프로젝트 생성
flutter create --platforms=android,ios --org com.mycompany my_app
4. --template (프로젝트 템플릿 지정)
기본 카운터 앱이 아닌, 특정 목적에 맞는 구조의 프로젝트를 생성할 수 있습니다.
- --template=skeleton: 단순한 카운터 앱보다 더 체계적인 구조(여러 화면, 테마 설정, 라우팅 등)를 가진 샘플 프로젝트를 생성합니다. 잘 짜인 앱의 구조를 학습하는 데 참고하기 좋습니다.
- --template=package: 다른 프로젝트에서 재사용할 수 있는 다트(Dart) 패키지를 만들 때 사용합니다.
- --template=plugin: 네이티브 코드(Kotlin/Swift)와 통신이 필요한 플러그인을 만들 때 사용합니다.
# 스켈레톤 템플릿으로 체계적인 구조의 앱 생성
flutter create --template=skeleton --org com.mycompany my_structured_app
5. --description (프로젝트 설명 추가)
프로젝트의 pubspec.yaml 파일에 설명을 추가하는 옵션입니다. 특히 다른 사람들과 협업하거나 오픈소스로 패키지를 배포할 때 유용합니다.
flutter create --org com.mycompany --description "My awesome new app." my_app
6. --empty (빈 프로젝트 생성)
샘플 코드가 전혀 없는, 최소한의 main.dart 파일만 포함된 프로젝트를 생성합니다. Hello, World!만 출력되는 상태로, 처음부터 모든 것을 직접 구성하고 싶은 숙련된 개발자에게 유용합니다.
flutter create --empty --org com.mycompany my_blank_app
추천하는 최종 명령어
지금까지 살펴본 옵션들을 조합하면 나만의 최적화된 프로젝트 생성 명령어를 만들 수 있습니다.
예를 들어, iOS와 Android만 지원하는 앱을 고유한 조직 ID와 설명을 붙여 생성하고 싶다면 아래와 같이 사용할 수 있습니다.
flutter create --org com.mycompany --platforms=android,ios --description "My new awesome Flutter project." my_awesome_app
결론
flutter create는 단순히 시작을 위한 명령어가 아닙니다. 프로젝트의 목적과 대상 플랫폼을 명확히 하여 처음부터 올바른 옵션을 사용한다면, 개발 과정에서 마주할 불필요한 수고를 크게 줄이고 더 견고한 기반 위에서 프로젝트를 시작할 수 있습니다.
참고
https://totheeden.ddnsgeek.com/flutter-ai-chat-example-step-1/
Flutter AI Chat Example Step 1: HTTP REST API, JSON, Gemini API, Isar DB - 삶
구글의 제미나이를 이용한 AI 채팅 앱을 만들어 보자. 주요 기능으로는 HTTP REST API, Gemini API, Isar Database, JSON 을 주로 사용한다. [Flutter Plugin] isar isar_flutter_libs path_provider google_generative_ai get_it build_ru
totheeden.ddnsgeek.com
2025.06.30 - [분류 전체보기] - 플러터(Flutter) Android Gradle 8 버전의 요구사항인 namespace를 자동으로 추가하는 방법
플러터(Flutter) Android Gradle 8 버전의 요구사항인 namespace를 자동으로 추가하는 방법
최신 플러터 버전에서는 그래들 8 버전 이상을 사용하고 있기 때문에 최신 플러터 버전을 지원하려면 플러터 플러그인들의 대응이 필요합니다. 모든 플러그인들이 최신 업데이트 요구사항을 반
heavenly.tistory.com
'삶' 카테고리의 다른 글
Flutter와 watchOS 연동 개발: 좌충우돌 문제 해결 과정 총정리 (8) | 2025.07.07 |
---|---|
김포 구래동 쌀국수 볶음밥 맛집 빅포1982 (4) | 2025.07.06 |
명동 점심 김치찌개 부뚜막 (21) | 2025.07.05 |
충무로 을지로3가역 오도독살 꼬들살 생고기모듬 식껍 (5) | 2025.07.04 |
을지로 점심 메밀 막국수 맛집 잘빠진메밀 을지로직영점 (7) | 2025.07.02 |