본문 바로가기

Flutter CLI: flutter create 필수 옵션 가이드

by Rico0101 2025. 7. 6.
반응형

flutter-command-create

 

플러터(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**에 직접 반영됩니다.

Bash
 
flutter create --org com.mycompany my_app

3. --platforms (지원 플랫폼 지정)

프로젝트가 지원할 플랫폼을 쉼표(,)로 구분하여 미리 지정합니다. 이를 통해 개발하지 않을 플랫폼의 폴더와 설정 파일이 생성되는 것을 막아, 프로젝트 구조를 깔끔하게 유지할 수 있습니다.

예를 들어 모바일 앱만 개발할 계획이라면, web이나 데스크톱 관련 폴더들은 불필요하게 혼란을 주거나 프로젝트 용량을 차지할 수 있습니다.

Bash
 
# iOS와 Android만 지원하는 프로젝트 생성
flutter create --platforms=android,ios --org com.mycompany my_app

4. --template (프로젝트 템플릿 지정)

기본 카운터 앱이 아닌, 특정 목적에 맞는 구조의 프로젝트를 생성할 수 있습니다.

  • --template=skeleton: 단순한 카운터 앱보다 더 체계적인 구조(여러 화면, 테마 설정, 라우팅 등)를 가진 샘플 프로젝트를 생성합니다. 잘 짜인 앱의 구조를 학습하는 데 참고하기 좋습니다.
  • --template=package: 다른 프로젝트에서 재사용할 수 있는 다트(Dart) 패키지를 만들 때 사용합니다.
  • --template=plugin: 네이티브 코드(Kotlin/Swift)와 통신이 필요한 플러그인을 만들 때 사용합니다.
Bash
 
# 스켈레톤 템플릿으로 체계적인 구조의 앱 생성
flutter create --template=skeleton --org com.mycompany my_structured_app

5. --description (프로젝트 설명 추가)

프로젝트의 pubspec.yaml 파일에 설명을 추가하는 옵션입니다. 특히 다른 사람들과 협업하거나 오픈소스로 패키지를 배포할 때 유용합니다.

Bash
 
flutter create --org com.mycompany --description "My awesome new app." my_app

6. --empty (빈 프로젝트 생성)

샘플 코드가 전혀 없는, 최소한의 main.dart 파일만 포함된 프로젝트를 생성합니다. Hello, World!만 출력되는 상태로, 처음부터 모든 것을 직접 구성하고 싶은 숙련된 개발자에게 유용합니다.

Bash
 
flutter create --empty --org com.mycompany my_blank_app

추천하는 최종 명령어

지금까지 살펴본 옵션들을 조합하면 나만의 최적화된 프로젝트 생성 명령어를 만들 수 있습니다.

예를 들어, iOS와 Android만 지원하는 앱 고유한 조직 ID 설명을 붙여 생성하고 싶다면 아래와 같이 사용할 수 있습니다.

Bash
 
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

 

반응형