Flutter 개발 환경 설치

모바일 앱 개발을 위한 프레임워크. 데스크탑과 웹에도 적용 가능합니다.

Page content

이제 저는 구글 플레이 스토어에 새로운 안드로이드 SDK를 사용하여 앱을 업데이트해야 하기 때문에, 몇 년 전에 작성한 이 오래된 가이드를 다듬고 다시 출판해야 합니다.

로직 오류 감지 앱의 구글 플레이 스토어 페이지 스크린샷

플레이 스토어 앱 페이지의 일부입니다.

이 가이드는 2022년 8월에 처음 작성되었고, 2024년 4월에 업데이트 및 출판되었습니다. 따라서 일부 오래된 정보가 포함될 수 있습니다.

방법

리눅스 PC에 Flutter를 설치하는 단계

개발 도구 설치

https://docs.flutter.dev/get-started/install/linux/android

도구 확인

which bash file mkdir rm which

패키지 설치

sudo apt-get update -y && sudo apt-get upgrade -y;
sudo apt-get install -y curl git unzip xz-utils zip libglu1-mesa

안드로이드 앱 개발을 위한 패키지 설치

sudo apt-get install \
    libc6:i386 libncurses5:i386 \
    libstdc++6:i386 lib32z1 \
    libbz2-1.0:i386

리눅스 앱 개발을 위한 패키지 설치

sudo apt-get install \
      clang cmake git \
      ninja-build pkg-config \
      libgtk-3-dev liblzma-dev \
      libstdc++-12-dev

VSCode 설치

https://code.visualstudio.com/docs/setup/linux

리눅스용 VSCode 데비안 패키지를 다운로드하는 링크가 있습니다: https://go.microsoft.com/fwlink/?LinkID=760868

그리고 다음과 같이 설치합니다:

sudo apt install ./<file>.deb

# 오래된 리눅스 배포판을 사용하는 경우 다음 명령어를 실행해야 합니다:
# sudo dpkg -i <file>.deb
# sudo apt-get install -f # 의존성 설치

“setup/linux” 페이지에도 다른 리눅스 배포판이 있습니다.

VSCode용 Flutter 확장 프로그램 설치: https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter

VS Code Quick Open (Ctrl+P)을 실행하고 다음 명령어를 붙여넣고 엔터를 누릅니다.

ext install Dart-Code.flutter

크롬 설치

웹 개발을 위해 크롬 설치:

https://www.google.com/chrome/dr/download/

안드로이드 스튜디오 설치

https://developer.android.com/studio/install#linux

64비트 우분투에서 필요한 라이브러리

sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386 lib32z1 libbz2-1.0:i386

우분투 24.04 기반 OS에서:

sudo apt-get install libc6:i386 libncurses6:i386 libstdc++6:i386 lib32z1 libbz2-1.0:i386

최신 버전의 스튜디오를 다운로드: https://developer.android.com/studio

“{설치 홈}/bin"으로 이동하고 다음을 입력합니다:

./studio.sh

xed ~/.bash_profile

export PATH=$PATH:~/Apps/android-studio/bin

KVM 가속 모드 활성화

https://developer.android.com/studio/run/emulator-acceleration?utm_source=android-studio#vm-linux

sudo apt-get install cpu-checker
egrep -c '(vmx|svm)' /proc/cpuinfo

출력이 1 이상인 경우 가상화가 지원됩니다. 출력이 0인 경우 CPU가 하드웨어 가상화를 지원하지 않습니다.

예상 출력:

INFO: /dev/kvm exists
KVM 가속이 사용 가능합니다

리눅스에서 KVM 설치 다음 명령어를 사용하여 KVM을 설치합니다:

Cosmic (18.10) 또는 이후 버전:

sudo apt-get install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils

Flutter SDK 설치

SDK 설치: https://docs.flutter.dev/get-started/install/linux

https://docs.flutter.dev/get-started/install/linux/android

수동으로 설치하거나 VSCode를 통해 설치할 수 있습니다.

수동 설치 참고:

다운로드: https://storage.googleapis.com/flutter_infra_release/releases/stable/linux/flutter_linux_3.3.2-stable.tar.xz

cd prj

tar xf ~/Downloads/flutter_linux_3.3.2-stable.tar.xz

export PATH=$PATH:~/prj/flutter/bin

which flutter

flutter precache

flutter config --no-analytics

flutter config

VSCode 참고:

VS Code 명령어 (Ctrl+p)

ext install Dart-Code.flutter

명령 팔레트 (Ctrl+Shift+p)에서 “flutter"를 입력합니다.

“Flutter: New Project"를 선택합니다.

VS Code는 컴퓨터에 Flutter SDK가 있는지 확인하라는 메시지를 표시합니다.

Flutter SDK가 설치되어 있다면 “Locate SDK"를 클릭합니다.

Flutter SDK가 설치되어 있지 않다면 “Download SDK"를 클릭합니다.

이 옵션은 개발 도구 사전 요구사항에 따라 Git이 설치되지 않은 경우 Flutter 설치 페이지로 이동합니다.

“Which Flutter template?“이라는 메시지가 표시되면 무시하고 Esc를 누릅니다. 개발 환경 설정을 확인한 후 테스트 프로젝트를 생성할 수 있습니다.

~/Apps에 설치한 후:

echo 'export PATH="~/Apps/flutter/bin:$PATH"' >> ~/.bash_profile

source ~/.bash_profile

텔레메트리 보고를 비활성화하려면 다음 터미널 명령어를 실행합니다:

dart --disable-analytics

안드로이드 스튜디오 설치

“{설치 홈}/bin"으로 이동하고 다음을 입력합니다:

./studio.sh

xed ~/.bash_profile

export PATH=$PATH:/home/yourname/Apps/android-studio/bin

https://docs.flutter.dev/get-started/editor

  • VS Code를 시작합니다.

  • 뷰 > 명령 팔레트…를 선택합니다.

  • “install"을 입력하고, 확장 프로그램: 확장 프로그램 설치를 선택합니다.

  • 확장 프로그램 검색 필드에 “flutter"를 입력하고, 목록에서 Flutter를 선택한 후 설치합니다. 이 작업은 필요한 Dart 플러그인도 설치합니다.

  • 뷰 > 명령 팔레트 (Ctrl+Shift+P)를 선택합니다.

  • “doctor"를 입력하고, Flutter: Flutter Doctor 실행을 선택합니다. (또는 터미널 창에서 flutter doctor를 실행합니다.)

  • 출력 창에서 문제가 있는지 확인합니다. 다른 출력 옵션에서 Flutter를 드롭다운 메뉴에서 선택해야 합니다.

점검

flutter doctor
[!] Android toolchain - Android 기기용 개발 (Android SDK 버전 34.0.0)
    ✗ cmdline-tools 구성이 누락됨
      `path/to/sdkmanager --install "cmdline-tools;latest"` 실행
      자세한 내용은 https://developer.android.com/studio/command-line을 참조하십시오.
    ✗ Android 라이선스 상태가 알려지지 않음.
      `flutter doctor --android-licenses`를 실행하여 SDK 라이선스를 수락하십시오.
      자세한 내용은 https://flutter.dev/docs/get-started/install/linux#android-setup을 참조하십시오.
[✗] Chrome - 웹용 개발 (google-chrome 실행 파일을 찾을 수 없음)
    ! Chrome을 찾을 수 없습니다. CHROME_EXECUTABLE을 Chrome 실행 파일로 설정해 보십시오.
[✓] Linux toolchain - Linux 데스크탑용 개발

cmdline-tools 설치:

  • 안드로이드 스튜디오를 열고,
  • SDK(더 보기에서),
  • Android SDK cmdline-tools 최신 버전을 선택하고,
  • 적용을 클릭합니다

라이선스 수락

flutter doctor --android-licenses

크롬을 사용하는 경우:

which chrome

export CHROME_EXECUTABLE=/usr/lib/chromium/chrome

Flutter 버전 확인 및 업그레이드

Flutter 버전 확인:

flutter --version

Flutter 버전 업그레이드를 위해 다음을 실행합니다:

flutter upgrade

새 Flutter 프로젝트 생성

  • 뷰 > 명령 팔레트 (Ctrl+Shift+P)를 선택합니다.
  • “flutter"를 입력하고, “Flutter: New Project"를 선택합니다.
  • 애플리케이션을 선택합니다.
  • 새 프로젝트 폴더의 부모 디렉토리를 생성하거나 선택합니다.
  • 프로젝트 이름을 입력하고, 예를 들어 my_app을 입력한 후 Enter를 누릅니다.
  • 프로젝트 생성이 완료되고 main.dart 파일이 나타날 때까지 기다립니다.

Flutter에서 디버깅

ctrl+p

>flutter: select device

로깅

https://docs.flutter.dev/testing/code-debugging#logging

stderr.writeln(‘print me’);

import 'dart:developer' as developer;

void main() {
  developer.log('log me', name: 'my.app.category');

  developer.log('log me 1', name: 'my.other.category');
  developer.log('log me 2', name: 'my.other.category');
}
---
import 'dart:convert';
import 'dart:developer' as developer;

void main() {
  var myCustomObject = MyCustomObject();

  developer.log(
    'log me',
    name: 'my.app.category',
    error: jsonEncode(myCustomObject),
  );
}

브레이크포인트

import 'dart:developer';

void someFunction(double offset) { debugger(when: offset > 30.0); // … }

기기로 배포

앱의 APK를 생성하고 아래 명령어를 실행해 보세요

프로젝트 정리

flutter clean

패키지 설치

flutter pub get

APK 빌드

flutter build apk --release

APK를 찾기 위해 컴퓨터에서

your project name\build\app\outputs\flutter-apk(on release mode)

이 APK를 복사하고 모바일 기기에 설치합니다.

Dart에서 잠시 멈추기

비동기 코드에서

  await Future.delayed(Duration(seconds: 1)); 

동기 코드에서

  import 'dart:io';
  sleep(Duration(seconds:1));

유용한 링크

유용한 패키지

https://pub.dev/packages/http

https://pub.dev/packages/flutter_easyloading

https://pub.dev/packages/flutter_spinkit

VSCode 확장 프로그램

https://medium.com/codex/my-top-5-flutter-extensions-for-vs-code-f36936518ff8

아이콘: https://api.flutter.dev/flutter/material/Icons-class.html

모든 아이콘: https://fonts.google.com/icons?selected=Material+Icons

==== 인터넷에서 데이터 가져오기 ====

https://docs.flutter.dev/cookbook/networking/authenticated-requests

관련: 안드로이드 앱 빌드 및 배포

웹 Flutter 앱

VSCode Live 서버 플러그인

백엔드와 함께 Flutter 사용