[Flutter]Flutter 2.0 우당탕탕 마이그레이션 해보기-(2)Migrate
FVM 편에 이어서 이제 FVM에서 돌아가는 프로젝트를 마이그레이션해보자!
마이그레이션 할 때 참조한 블로그랑 동영상이 참 많았는데, 역시 공홈에서 내는 영상은 항상 큰 도움이 되는 것 같다.
시간이 된다면 이 분들이 하는 영상을 보고 정말 좋다!
Migrating an old app to Flutter 2 (The Boring Flutter Development Show, Ep. 49)
마이그레이션에는 두 가지 방법이 있는데 첫째는 자동으로 코드를 변환 시키는 것이고 둘째는 수동으로 한땀한땀 바꿔주는 것이다.
나는 당연히 삽질의 귀재니까 한땀한땀 바꾸다가 3일차쯤에 뭔가 이상함을 감지하고 헐레벌떡 찾아보니 역시나 우리 프로개발자님들이 만들어놓은 자동 변환 명령어를 보고 쓴눈물을 지었다. (귀찮은거 절대 안하는 개발자가 실력좋은 개발자…)
먼저 라이브러리 버전을 null safety 버전과 호환되게 바꿔주자
fvm flutter pub outdated mode=–null-safety
이 명령어로 현재 쓰고 있는 라이브러리들이 null safety 버전이 있는지 확인해 볼 수 있다. 나는 라이브러리 하나 빼고 전부 null safety 기능을 제공하고 있었다. 라이브러리에서 null safety를 제공하지 않아도 버전을 올릴 수는 있으니 참고하시길!
+ 수정 ) null-safety가 적용안된 라이브러리가 있으면 마이그레이션해도 실행이 안된다. 모든 라이브러리가 null-safety 인지 꼭 확인 할 것.
fvm flutter pub upgrade –null-safety
해주면 라이브러리들이 알아서 버전이 올라간다. pub get 까지 해준다!
그러면 라이브러리 버전이 올라가면서 달라진 API 들이 있을텐데 이것들을 고쳐준다!
다 고쳤으면 돌아가는지 한번 실행해본다! (중간점검)
돌아가면 이제 마이그레이션을 해보자!
- pubspec.yaml 파일에서 dart sdk 버전의 최소를 2.12.0 이상으로 변경하고 pub get 을 한다. 그럼 코드가 주륵주륵 빨간 줄이 간게 생긴다.
- migrate 명령어를 친다.
dart migrate
다음과 같은 명령어를 치면 잘돌면서 어떤 웹링크를 보는 사람도 있을 거고 error가 뜨는 사람들도 있을 것이다. error가 떴을 때, 방법은 2가지인데 무시하고 계속 진행할 지 에러 항목을 보고 하나하나 고쳐도 된다. 나는 먼저 올리고 고치고 싶어서 무시하고 진행하는 방법을 택했다.
무시하고 진행할거면
dart migrate —ignore-errors
를 치면 된다. 근데! 나는 이번엔 exception이 나면서 마이그레이션이 실패했다. 이거에 대한 삽질을 오래 했는데
dart migrate —ignore-errors —ignore-exceptions
을 쳐 주면 된다… 명령어는 내 기억에 의존해서 복기하는거라 틀릴 수도 있지만 터미널 설명을 잘 읽어보고 해보면 된다!
그러면 강제로 에러랑 익셉션 무시하고 링크를 던져준다. 찬찬히 보면서 코드를 읽어도 좋고 아니면 우측 상단에 apply migrate인가? 그 버튼을 눌러주면 마이그레이션이 끝난다.
하지만 실전은 지금부터…. 자동으로 바꿔주지만, 유추해서 상황에 맞는걸 적용해주는거라 내 의도와 다르게 변수 null safety 여부를 잘못 판단할 수 있다. 그래서 로직이 제대로 맞는지 점검하는 과정을 거쳐야 한다.
이렇게 해서 거의 러프하게 3일동안 마이그레이션 작업을 끝냈고, 아직 테스트 작업이 남아 있지만, 테스트는 천천히 해도 되서 조금 마음이 놓인다.
다들 삽질 많이 안하고 마이그레이션 잘 하면 좋겠다 ㅠㅠ
댓글남기기