본문 바로가기
카테고리 없음

Flutter - 기존 프로젝트 Null Safety로 마이그레이션 하기

by 봄석 2021. 6. 3.

Flutter - 기존 프로젝트 Null Safety로 마이그레이션 하기 

Flutter 2.0이 릴리즈 되면서 dart 2.12 버전이 적용되어 dart에 Null Safety가 적용되었다.
NullSafety로 마이그레이션 하는 과정에 대해서 간단하게 정리해본다.
[NullSafety Migration 가이드 문서를 참고하여 작성된 글입니다.]

Migration 공식문서 보러가기

 

 

 

Flutter SDK 업데이트

 

NullSafety는 flutter sdk 2.0부터 지원되니 2.0 이상의 최신 버전으로 업데이트가 필요하다.

 

먼저 stable채널이 아니라면 stable채널로 변경해야 한다.

 

현재 채널 확인

> flutter channel
Flutter channels:
  master
  dev
  beta
* stable

stable 채널로 변경

> flutter channel stable

flutter sdk 최신 버전으로 업데이트

>flutter upgrade

 

 

 

 

 

프로젝트의 NullSafety 미지원 패키지 정리하기

 

> flutter pub outdated --mode=null-safety

커맨드 라인에 위 명령어를 입력하면, 현재 프로젝트에 사용 중인 패키지들이
NullSafety를 지원한다면 ✅
NullSafety를 지원하지 않는다면 ❌ 로 표시되니 
미 지원되는 플러그인들을 다른 플러그인으로 대체하여야 한다.

 

 

 

 프로젝트에서 사용 중인 패키지들 업데이트

이제 사용중인 패키지들을 NullSafety를 지원하는 최신 버전으로 모두 업데이트한다.

> flutter pub upgrade --null-safety

업그레이드가 잘 되었는지 확인해보면

> flutter pub outdated --mode=null-safety 

Showing dependencies that are currently not opted in to null-safety.
[✗] indicates versions without null safety support.
[✓] indicates versions opting in to null safety.

All your dependencies declare support for null-safety.

모두 Null Safety를 지원하는 플러그인으로 업데이트되었음을 확인할 수 있다.

 

 

 

 

 

 프로젝트 소스 마이그레이션 진행하기


소스코드 마이그레이션은 Migration Tool을 이용하거나, 직접 수동으로 마이그레이션을 진행하는 방법 두 가지가 있다.

 

  • 마이그레이션 툴 사용
    • dart migration 명령어 사용
    • migration tool 웹이 실행됨
    • migration tool에서 dart 2.12.0을 사용하도록 변경해줌
  • 직접 수정하기
    • pub_spec 파일에서 dart 2.12.0으로 명시한 후, 소스코드 직접 수정

 

마이그레이션 툴을 사용하면 

마이그레이션 툴이 프로젝트 소스들을 유추하여 일괄적으로 변경된다. (저의 경우 대부분? 이 붙은 Nullable 타입으로 변경됨 ㅠ)

마이그레이션 툴에서 왼쪽에는 전체 파일과, 변경된 수가 표시되고, 파일 클릭 시 오른쪽에 디테일한 정보가 표시된다.

코드를 파악 후 아래의 힌트 버튼으로
해당 부분이 nullable 타입으로 변환할 건지, 아닌지 힌트 주석을 달아
마이그레이션 시 그 형태로 변환되게 설정이 가능하다.

 

코드를 모두 수정하였다면 우상단의 APPLY MIGRATION 클릭하면 힌트 주석대로 한번 더 변경된다.

 

마이그레이션이 완벽하진 않기 때문에 수정 사항이 많아 에러가 나거나 하는 경우 나머지 부분은 직접 수정해야 한다 😥

댓글