Sua Blog

Flutter 3점대 버전 업그레이드

Flutter upgrade

Flutter 3 소개

데스크탑앱

  • macos와 linux 앱을 스테이블하게 지원함으로써 모든 데스크탑 플랫폼에서 생산이 가능해졌다.
  • macOS 데스크탑 앱은 기존 Intel 기반 Mac과 Apple chip 모두 지원하는 바이너리로 구축되었다.

모바일

  • 폴더블 폰 지원. MediaQuery에 접힌 부분, 접힘 여부, 잘린 부분에 대한 상태가 추가되었다.
  • 60hz > 120hz까지 렌더링 빈도 증가되었다. 스크롤링과 같은 빠른 애니메이션이 더 부드러워졌다.
  • flutter build ipa 명령에 ios 릴리스 옵션이 추가되었다. 앱 출시를 위해 xcode를 열 필요가 없어졌다.
  • gradle 버전 업데이트. 기존 프로젝트는 수동으로 범프해야한다.

Flutter 3로 업데이트

기존 버전을 2.5.1을 쓰고 있었는데 3.0.5로 업데이트 했다.

# 최신 버전으로 업데이트
flutter upgrade
# pubspec.yaml 파일 안에 있는 dependencies를 모두 최신 호환 버전으로 업그레이드
flutter pub upgrade

업그레이드 후 의존성 패키지들도 모두 최신버전으로 업데이트 했다.

버전 바뀌며 달라지는 부분(함수명 등)을 PROBLEMS에서 확인 후 수정한다.

IOS 빌드

podfile과 flutter 캐시 삭제 및 재설치 진행.

IOS 빌드 에러 대응 참고

  • pod install시 —repo update옵션 추가
pod install --repo update

ide와 시뮬레이터 새로 키고 빌드.

25-1

Warning: Operand of null-aware operation '!' has type 'SchedulerBinding' which excludes null.

null-aware관련 워닝.

플러터 릴리즈 노트를 참고하여 코드 업데이트 했다.

dart fix --apply

25-2

IOS 빌드는 정상적으로 되었다.

안드로이드 빌드

Flutter 3점대로 업데이트 하면 gradle 버전을 변경해줘야한다.

android > build.gradle

// kotlin version
// ext.kotlin_version = '1.5.31'
ext.kotlin_version = '1.6.0'

// gradle version
// classpath 'com.android.tools.build:gradle:4.2.2'
classpath 'com.android.tools.build:gradle:7.0.2'

android > app > build.gradle

// compileSdkVersion 30
compileSdkVersion 31

// minSdkVersion 20
minSdkVersion 23

android > gradle > wrapper > gradle-wrapper.properties

android > gradle > wrapper > gradle-wrapper.properties
// distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-all.zip
참고

Flutter whats-new