티스토리 뷰

 

2021년 3월 4일 flutter 2.0.0과 dart 2.12.0 가 정식으로 release 되었습니다. 이번 업데이트는 중요 메이저 버전 업데이트로 큰 변화가 있었는데 그중 가장 큰 것이 null safety와 web에 대한 stable 버전 지원입니다.

 

아무래도 기존 flutter 개발자에게 가장 큰 변화는 역시 null safety 적용이 될 것으로 보입니다.

이것이 왜 가장 큰 변화냐 하면 우리가 만든 코드를 모두 null safety하게 마이그레이션 해야 하기 때문인데요 flutter 2.0부터는 기본 변수의 선언이 non-nullable 이기 때문에 기존의 nullable 인 것과는 정반대이며, null 사용가능 여부를 모두 명시해야 하기 때문입니다.

변수에 null사용 여부를 표시하는건 어려운 일이 아닐지도 모릅니다. 그리고 우리가 가진 코드를 수정하는 것은 그저 우리의 시간과 노력으로 해결이 가능할지 모릅니다.

 

하지만 우리가 사용하고 있는 서드파티 라이브러리들이 null safety 지원 버전이 아닐 경우에는 문제가 발생할 수 있습니다.

다행히 주요한 메이저 라이브러리는 이미 null safety에 대한 대응이 되어 있지만 현재 우리 회사에서 사용 중인 라이브러리 중 일부는 반영이 되어 있지 않은 것을 확인 할수 있었습니다.

 

이처럼 프로젝트에서 사용하는 라이브러리중 일부만 null safety가 적용된것이 가장 큰 문제인데 라이브러리들이 의존하고 있는 또 다른 라이브러리가 있고 이런 것이 모두 null safety가 적용돼야 정상적으로 모두 사용할 수 있기 때문에 의존하는 모든 라이브러리 들이 null safety가 적용될때 까지는 시간이 필요할 것 같습니다.

 

만약 이미 사용 중인 라이브러리중 2020년 이후로 더이상 업데이트가 안되고 관리 되지 않는 라이브러리라면 해당 라이브러리를 버리고 다른 것으로 변경해야 될 것으로 보입니다. 회사에서 사용중인 프로젝트를 확인해본 결과 80% 정도는 null safety가 적용되어 있었지만 일부 메이저가 아닌 곳에서 만든 라이브러리는 아직 업데이트 되지 않았고, 언제 업데이트가 될지도 기약이 없습니다.

 

​결국 flutter는 2.0으로 업데이트 되었지만 기존에 개발된 앱이나 현재 개발이 진행 중인 앱은 2.0을 적용할 수 없을 것 같습니다. 그리고 언제 정상적으로 2.0을 적용할 수 있을지도 아직은 모르겠네요. 그렇다고 계속 flutter 1.x를 사용할 수도 없고, 언젠가는 변경을 해야 할 텐데 꽤 번거롭고 손이 많이 가는 일이 될 것 같습니다.​

 

android나 ios에 사용하는 kotlin이나 swift의 경우 몇 년 전부터 null safety에 대한 업데이트가 이루어졌는데, dart의 null safety 지원이 너무 늦은 것 같네요. 처음 flutter을 접하고 dart 언어를 배울 때 가장 의아한 것이 왜 아직 null safety을 반영하고 있지 않는가였는데, 이미 여러 앱을 개발하고 새로운 앱에 대한 개발이 한참 진행 중일 때 이런 대대적인 변경이 있게 될 줄은 정말 몰랐네요. 언젠가 한번은 만나야 할 이슈였지만 좀 성가신 일인것 같습니다.

개인적으로 이번 2.0에서 지원하는 web의 stable버전의 지원과 null safety 반영은 flutter에서는 가장 필요하고 의미 있는 중요 업데이트라고 생각합니다. 만약 지금 flutter 앱을 개발하고자 하는 분들이 계시다면 2.0버전으로 시작하는 것도 좋겠지만 기존 프로젝트를 바로 변경하는 건 조금 신중해야 할 것 같습니다.

 

그리고 여담으로 firebase_messaging 패키지는 이번 업데이트로 사용 방법이 정말 많이 변경 된걸 확인 할수 있었는데요. 아마 web까지 push notification을 지원하기 위한 변화로 보입니다. 이번 업데이트를 적용하려면 기존에 개발했던 프로젝트 소스의 많은 수정이 필요할 것 같습니다.

이번 release와 행사로 flutter의 활용 범위가 넓어지고 많은 기업에서 flutter 도입하고 있다는 것을 알게 되어서 좋았던것 같습니다. 개인적으로는 앞으로의 flutter 발전이 더욱 기대 됩니다.

 

# 추가내용

2.0이 release된지 일주일 정도가 지났습니다. 사용중인 라이브러리가 null safety를 지원하는지 매일 확인 중인데 이제 3개 라이브러리를 제외하고 모두 업데이트가 되었습니다. 아직 업데이트 되지 않은 3개의 라이브러리는 아무래도 업데이트가 늦어질것 같지만, 다른 것으로 대체 가능할것 같습니다. 생각보다 라이브러리들의 업데이트가 빠르게 진행되고 있어서 저희도 2.0을 준비해야 될것 같습니다.

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함