저번 포스팅에서 우리는 Homebrew를 설치하였고, 이를 사용해 Xcode, Ruby, Cocoapods를 설치하여 Flutter의 모든 이슈를 해결하였다.
이제 개발 환경 구축 Part 3를 마지막으로, FVM(Flutter Version Management)와 AVD(Android Virtual Device)를 설치해보자.
※ 이미지를 클릭하면 FVM 공식 홈페이지로 들어갈 수 있다.
FVM(Flutter Version Management) 는 간략하게 설명하면 Flutter의 버전을 쉽게 갈아끼울 수 있는 서드파티 툴이라고 생각하면 된다.
Node.js에 NVM이 있다고 하는데, NVM의 Flutter 버전이 FVM이라고 생각하면 쉽다고 한다.
조금 더 자세한 내용을 보고싶다면, 위 이미지를 클릭하여 공식 홈페이지를 참조하자.
FVM 공식 홈페이지를 들어가자.
그런 뒤 상단의 Documentation 탭 -> 왼쪽의 Installation 탭을 들어가면

운영체제 별로 설치법이 나온다. macOS는 Homebrew를 통해 설치한다.
터미널을 실행한 뒤
brew tap leoafarias/fvm 를 입력한다.

조금 기다리면, 이렇게 FVM 저장소가 등록이 된다. 그런 뒤,
brew install fvm 를 입력하면

설치하는데 시간이 조금 걸리고, 이렇게 설치가 되었다.
이제 fvm 이라고 입력하면

FVM에 대한 도구가 쭉 나온다.
fvm list 라고 입력해보면,

FVM을 통해 설치한 Flutter 버전이 아직 따로 없기 때문에 찾지 못하였다고 나온다.
fvm releases 를 입력해보면,

현재 Flutter의 릴리즈 된 버전이 쭉 나온다. beta 버전은 현재는 뜨지는 않았지만, stable 보다 버전은 조금 더 높고 대신 베타이기 때문에 안정화가 조금 덜 되었다고 보면 된다.
24/02/26 기준으로 24/02/21 에 나온 3.19.1 안정화 버전이 제일 최신이지만..!
강의 내용에서는 3.10.5 버전으로 깔기 때문에, 3.10.5 버전으로 깔아주었다.
나중에 최신 버전이 필요하다면 FVM을 통해 또 설치하면 될 것 같아, 일단 구버전으로 깔아도 크게 상관 없을 듯 하다.
최신 버전으로 깔고 싶다면 깔아주면 된다.
터미널에 fvm install 3.10.5 를 입력해주면

조금 기다리면 이렇게 설치가 된다.
강의에서는 Dart도 같이 깔리던데, 나는 그런 메시지는 뜨지 않았다.
혹여 만약 global로 사용하고 싶다면,
fvm global 3.10.5 를 입력해주면 된다.
이제 fvm list 를 입력하면

이렇게 3.10.5 버전이 뜬다.
그런데 Need setup 이라는 문구가 떠있다.
나는 방금 설치를 잘 끝낸 것 같은데 뭐지? 싶어서 구글링을 해보았는데 만족할 검색 결과가 안 나왔다. 강의에서도 저렇게 나오진 않아서, 일단은 찝찝하지만 어쩔 수 없이 넘어갔다.
ls
cd StudioProjects
ls
cd test_flutter_project (※ 안드로이드 스튜디오로 생성했던 프로젝트 이름)
pwd
를 입력해주면

이렇게 우리가 만들었던 프로젝트 폴더로 오게된다.
이제 fvm use 3.10.5 를 입력하게 되면

응?
아까 깔리지 않았던 3.10.5 버전이 지금 깔리기 시작한다.
처음엔 찝찝했던 것이 잘 넘어가는 듯 하여 기분이 좋았는데

??? 번역해보니

내가 안드로이드 스튜디오로 만들었던 Flutter 프로젝트 기준으로, Flutter SDK 3.10.5에 포함 된 Dart SDK 3.0.5는 조건에 충족하지 않는다고 한다.
처음엔 말이 헷갈려서 몇 번 다시 읽어봤는데, Dart SDK의 버전이 최소 조건을 충족하지 않아 발생하는 메시지같다. y를 누르고 넘길 까 했으나, 분명 이대로 넘기면 더 복잡해질 테고..
그리고 근본적으로 생각을 해 보니, 이 문제는 맥북의 안드로이드 스튜디오와 거기에 깔린 Flutter 플러그인은 최신 버전인데, 내가 FVM을 통하여 따로 설치한 Flutter SDK는 구버전을 깔았기에 이런 문제가 발생하는 듯 하여 일단은 3.10.5 버전을 쓰지 않고 최신 버전으로 설치하는 것을 선택하였다.

일단 n을 눌러, 더 이상은 진행하지 않았다.
fvm list 를 다시 입력해보니,

원래 있던 Need setup 문구 자리에 3.10.5가 들어가 있다.
fvm install 3.19.1 을 입력해줬고, 똑같이 Need setup 문구가 떴다.
최신 버전으로 바꾸기 위해 fvm use 3.19.1 을 입력해주었다.

Dart SDK 버전이 3.3.0으로 올라가서 3.2.6 이상이어야 하는 조건을 만족시켜 이슈 없이 버전 적용이 성공하였다.
이런 식으로 프로젝트 별로 원하는 Flutter 버전을 적용시킬 수 있다.

AVD는 내가 만든 애플리케이션을 실제 폰과 비슷한 환경에서 돌려볼 수 있는 에뮬레이터이다. 안드로이드 스튜디오로 내가 원하는 앱을 만든 뒤, AVD를 통해 테스트할 수 있다.
안드로이드 스튜디오 안에 있어, 프로그램 자체를 추가로 설치해야 할 필요는 없다.

Tools -> Device Manager 을 누르고

+ 를 클릭,

여러가지 화면 크기들이 있지만, 강의에서 Pixel 4가 가장 무난하다고 하기에 선택해 주었다.

개발자들은 API Level을 주로 보게 된다고 한다. 강의 기준 33을 선택했기에 나도 택했다.
※ 개발자들은 최소 API를 확인하여야 하는데, 아래 안드로이드 공식 홈페이지에서 확인할 수 있다.
👉 Google Play의 타겟 API 수준 요구사항 충족하기
- 2023년 8월 31일부터 Android 13(API 수준 33) 이상을 타겟팅 해야한다고 돼있다(24/02/28 기준).
- 최신 SDK를 타겟팅해야하는 이유도 적혀있다.
사진은 33, 34을 깐 뒤에 찍은 것인데 원래는 오른쪽에 다운로드 버튼이 있을 것이다.

다운로드 용량이 작지 않아, 네트워크 환경이 불안정 하다면 설치가 제대로 안될 수 있어 좋은 환경에서 다운 받기를 추천한다.



여러 옵션들이 있다. 생소하기도 하고 처음이라, 일단 건드리지 않고 기본 값으로 생성해 주었다.

생성된 기기의 재생 버튼을 누르면

이렇게 Virtual Device 가 실행 된다.

Window 버튼을 누르면

이렇게 작은 창으로 딸려나와 좀 더 보기 편하다.
- Dart 활용하여 가위바위보 만들기