플러터:실행

학교의 모든 지식. SMwiki
둘러보기로 이동 검색으로 이동

틀:플러터 Dart:개요 플러터에 대한 지식 분류

  1. 플러터:개요
    1. 플러터:VSCode
  2. 플러터:실행
  3. 개념 잡기
    1. 플러터:화면 하나 만들기
    2. 플러터:변하는 화면(StatefulWidget)
    3. 플러터:화면 전환(화면 쌓기, 하단 네비게이션 바)
    4. 플러터:화면 전환(Drawer)
    5. 플러터:키보드 입력
    6. 플러터:슬라이더
    7. 플러터:그래프 그리기(fl chart)
    8. 플러터:데이터 저장(간단한 데이터)
    9. 플러터:인증(Firebase 인증)
    10. 플러터:인증(OAuth2)
  4. 권한 사용
    1. 플러터:마이크 입력
  5. 위젯
    1. 플러터:아이콘
    2. 플러터:레이아웃 계열 위젯
    3. 플러터:네비게이션 계열 위젯
    4. 플러터:버튼
    5. 플러터:상태관리
  6. 플러터:DB연결
    1. 플러터:Firebase
    2. 플러터:MySQL
  7. 디자인
    1. 플러터:테마
    2. 플러터:앱바
    3. 플러터:버튼
  8. 플러터:배포
  9. 플러터:참고자료
  10. 플러터:위젯
    1. 플러터:공간배치용 위젯
  11. 플러터:라이브러리
    1. 플러터:logger

개요[편집 | 원본 편집]

개발 중 화면을 파악하기 위하여.

과정 설명 비고
개발환경 준비 안드로이드, ios 등 해당 개발환경에 대해 배포하기 위한 사전작업이 되어 있는지 확인.

각 개발환경에 대한 준비 여부를 진단한다.

flutter doctor
확인(선택사항)
  • 프로그램을 실행할 수 있는 디바이스를 확인할 수 있다.(위에 포함되는 과정)
  • USB로 연결하든, 가상기기로 연결하든 연결된 디바이스 확인.
flutter devices
실행 window, 연결된 장 등 해당 환경에서의 앱을 실행해본다. flutter run -d 디바이스명

vscode의 경우, 우측 하단에서 디바이스를 설정하고(에뮬레이터를 켜고) flutter run 만으로 가능.

실제 기기를 활용한 실행[편집 | 원본 편집]

안드로이드[편집 | 원본 편집]

실제 휴대폰이 에뮬레이터보다 빠르고 안정적임.

과정 설명 비고
디버깅 모드 활성화 핸드폰 설정
  • 개발자 옵션 활성화: 설정 → 휴대전화 정보 → 소프트웨어 정보, 빌드 번호를 7번 연속 탭, "개발자가 되었습니다!" 메시지 확인
  • USB 디버깅 활성화: 설정 → 개발자 옵션, * USB 디버깅 켜기
  • USB 디버깅이 Auto Blocker 때문에 막힌 경우: 삼성의 보안기능이다. 설정 > 보안 및 개인 정보 보호 (Security and Privacy) 여기서 Auto Blocker를 끈다.
  • USB를 통한 설치 켜기 (있는 경우)

USB 케이블로 연결:

  • 핸드폰을 컴퓨터에 USB로 연결, 핸드폰 화면에 "USB 디버깅 허용" 팝업 → 허용 탭
파일전송이 가능한 USB로 연결해야 함.
Google USB Driver 설치 안드로이드스튜디오 > Tools > SDK Manager > Languages&Frameworks > Android SDK > SDK Tools > Google USB Driver
자바 JDK 설치
  • 확인: flutter doctor -v 에서 Android toolchain 아래 Java binary at: 경로 확인. 있으면 문제 없음.
  • flutter --version 에서 버전명을 알아낸 후 GPT에게 적절한 자바 JDK 버전을 물어 설치한다.
연결 및 확인
  • 휴대폰 연결.(와이파이로 무선 디버깅이 되는 기기도 있음) 권한 요청이 뜨면 허가.
  • flutter devices 실행하면 휴대폰의 모델명이 나타나야 함.
자바 설치
OS 설명
Windows
  • 설치 확인: java --version
  • 설치: winget install Oracle.JDK.17
실행 flutter run에서 디바이스 선택. VSCode라면 하단바에 선택 가능. 상당히 느리다. 앱을 빌드해서 실행하는 것 같은 느낌. 핫 리로드 됨. 디버그모드는 핫 리로드를 위한 메타데이터 때문에 오히려 실제 빌드보다 더 느리다. 빌드 캐시를 지우는 게 두려워질 정도로;; 간단한 마이크 테스트용 올려봤는데, 그래들 task만 160초, 빌드.. 디버그 팩 설치하는 데만도 한참 걸린다;; 연결을 끊어도 앱이 설치되어 있어, 앱을 계속 쓸 수 있음.

iOS[편집 | 원본 편집]

실행 이후 개발[편집 | 원본 편집]

핫 리로드[편집 | 원본 편집]

파일을 저장하면 실행 화면에 실시간으로 저장 내용이 반영된다.

애석하게도, 원드라이브 등 프로젝트가 특수한 디렉토리 안에 있으면 파일이 잠겨서 핫 리로드가 안된다.(옛날엔 한글 디렉토리에 있으면 실행조차 안되었는데, 어느 순간 해결되었다.)

문제 발생[편집 | 원본 편집]

여러 에뮬레이터로 개발을 하는 상황에서 Gradle 캐시 잠금 문제가 발생한다. 원인으로는 다음과 같은 것들이 생각된다.

Gradle 캐시 잠금 문제[편집 | 원본 편집]

원인 설명 비고
한글 경로가 포함됨. (사용자명이 한글인 경우. 어쩔 수가 없는;;): 파워쉘에서 setx GRADLE_USER_HOME "D:\FlutterGradleCache" 형식으로 경로를 바꾸어준다.
회사망이라 SSL 인증서 문제로 제대로 된 Gradle 다운로드가 안됨.
플러터와 Gradle 버전이 안맞음. 이건... 코파일럿도 잘 안알려주는 문제였다; 버전에 대한 질문을 해보길. 보통 코파일럿 등은 코드만 살펴주지, 이런 문제는 상정 외...
보안 프로그램 보안 프로그램이 스캔하면서 잠가버리면 답 없....

프로젝트가 원드라이브 안에 있어도 이유를 모르겠지만 감궈버림...

학교에서 개발할 때......정말 안된다.

V3인지 뭔지 계속 잠겨서......... 빠르게 포기하고 노트북으로 넘어가는 편이 좋다. 학교 노트북에도 기본적으로 보안프로그램이 설치되어 있어 안되었었는데, V3 지우니 되었음.