플러터 개발환경에는 여러가지가 있다. 안드로이드 스튜디오, VSCODE, IntelliJ IDEA,
심지어 웹에서 개발 등등..
하지만 플러터를 개발함에 있어 근본이 되는 개발환경은 "flutter doctor" 를 실행해보면
알수있다.. 어쩌구 저쩌구 나오면서 결론적으로 SDK툴체인으로는 안드로이드 스튜디오
그리고 비쥬얼스튜디오 코드를 조사하고 있다..
처음에는 그렇구나 하면서 안드로이드 스튜디오만 있으면 되것지.. 라고 생각하고
안드로이드 스튜디오에다가 플러터 플러그인 설치해서 작업을 했다.. 물론 잘되고
헌데.. 문제가 발생하기 시작했다. 안드로이드 배포할때 그리들이라는 배포툴이 동작하는데
이 설정을 안드로이드 스튜디오를 통해서 처리하고 자동 sync처리를 하는등으로 해서
안드로이드 스튜디오에 복잡성이 확올라갔다.. 그리들 빌드에 문제가 생기면
'이게.. 안드로이드 스튜디오 설정잘못인가? 그리들 설정파일 잘못인가?'
혼동되기 시작한다. 이런 문제때문에 나는 플러터 개발을 할때 안드로이드 스튜디오를
사용안한다.. 안드로이드 스튜디오는 안드로이드SDK 툴체인 설치용도로만 사용하고
플러터와 다트 플러그인 설치해서 애뮬레이터로 플러터 기본프로젝트인 카운터 프로그램만
빌드하여 실행되는거 보고 바로 종료하고 VSCODE로 넘어와서 새로 개발을 시작해야 한다.
왜냐면 이런 flutter doctor로 인한 개발환경 설정이 완료되면 문제해결이 쉬워질수 있다.
단적으로 윈도우 환경에서는 메모장과 명령프롬프트만으로 리눅스는 vim과 터미널만으로
개발할수 있다. 이게 허세가 아니라 개발환경은 단순화하면 flutter의 문제해결을 할때 IDE가
빠짐으로 인해서 문제를 좀더 직관적으로 볼수 있는 장점이 있다.
그래서 결론은 플러터는 개발환경설정만 하고 실제 개발은 VSCODE로 해라 이거다.
그런 의미에서 VSCODE로 개발할때의 자주사용하는 터미널 명령을 요약한다.
flutter doctor
(플러터 개발환경이 제대로 설치되어 있는지 검사)
flutter create [프로젝트이름]
(플러터 프로젝트를 만든다.. 프로젝트 이름으로 폴더까지 만든다.
그리고 타겟 플렛폼을 선별하여 생성할수 있다. 예를 들어 안드로이드,IOS,웹만
타겟 플렛폼으로 잡을꺼면 다음처럼
flutter create --platforms=android,ios,web [프로젝트이름]
이렇게 하면된다.)
flutter devices
(플러터를 실행할수 있는 타겟플렛폼의 종류를 나열한다.
핸드폰을 연결하면 핸드폰의 ID도 표시된다.)
flutter clean
(플러터 프로젝트의 빌드 캐시 및 임시파일들을 삭제한다.)
flutter pub get
(pubspec.yaml에 등록된 라이브러리들을 로드처리함)
flutter run
(플로터 프로젝트를 빌드하여 디버그 모드로 실행한다.
안드로이드 그리들도 이때 빌드된다.
특정 타겟을 대상으로 실행하고 싶을때는 -d 옵션 다음에 표시하면 된다.
크롬에서 실행 해보고 싶으면 flutter run -d chrome
디바이스아이디가 [123456]인 핸드폰에서 실행해보고 싶으면
flutter run -d 123456 이라고 하면 된다.)
flutter test
(test폴더에 생성된 내용을 단위 테스트 및 위젯테스트 한다.)
flutter upgrade
(플러터 sdk를 최신 버전으로 업데이트함.. 잘생각하고 해야함 -_-)
flutter build [타겟빌드]
(플러터를 릴리즈 모드로 만들때 사용한다 타겟빌드의 종류에는 apk, appbundle,
ios, web등이 있다. 안드로이드를 빌드하고 싶을때 apk,aab 는 다음처럼 하면된다.
flutter build apk --release
flutter build appbundle --release
)
그리고 주제와 직접적인 관련이 있는것은 아니지만
플러터 프로젝트를 시작할때 반드시 추가해야 하는 라이브러리와 설정이 있다.
1. 폰트설정 - 제일 처음은 폰트를 설정하는 것이다. UI에서 글자를 사용하지 않을 거라면
모르겠지만 대부분의 App을 글자를 사용한다.. 그때 margin이나 padding으로 인해서
폰트가 다른 배포환경에서 지원되지 않고 시스템 글꼴로 처리된다고 했을때 치뤄야 되는
UI 의 빛이 상당히 올라갈 수 있기 때문에 pubspack.yaml에 폰트 관련 설정을
아예 초장에 박고 시작 해야 한다.
2. intl 패키지 - 사실상 이거는 왜?? 외부 라이브러리로 빠졌는지 자체가 의문이다.
string format처리 한국통화나 3자리 컴마, 시간포멧 설정등 시스템이 숫자를 표현할때
기본적으로 가져야 할 사항들을 정리해 놓은 라이브러리 이므로 반드시 설치..
이해가 안되는게 math는 기본으로 넣으면서 이건 왜? sdk차원에서 삽입이 안됐는지
이해할 수 없다.
3. GetX - 상태 관리를 하기 위한 기본적인 패키지 이다. 다른 페이지를 보여주다가
이동을 한다던가 했을때 그 상태 그대로 보여주기 위한 패키지 필수중에 필수이다.
물론 상태관리를 하는 패키지에는 프로바이더나 블럭도 있지만.. 아직까지 GetX만큼의
편의성을 제공하고 있지는 못하다. pub dev에서도 패키지로 1위 자리를 내려놓고 있지
않는것 만으로도 이 패키지의 설치는 당연하다고 하면 당연할 터이다.
상태관리 이외에 페이지 이동 이라던가 팝업 다이얼로그 구성 등의 편의를 제공하고
메테리얼이나 쿠퍼티노앱을 Get으로 감싸고 시작해야 한다.
댓글 없음:
댓글 쓰기