Flutter 3.0 출시, 어떤 기능이 추가 되었을까?

이상화(와상)·2022년 5월 12일
12
post-thumbnail

Flutter 3.0

이번 2022년도 Google IO에 맞춰 Flutter 3.0이 출시되었습니다.
작년 3월 3일 2.0이 출시된지 14개월 만에 진행된 메이저 업데이트로 다양한 기능들이 추가되었습니다.

아래 글은 Kevin Jamaul Chisholm의 What’s new in Flutter 3를 요약해 정리한 글입니다.


데스크톱 업데이트

Flutter 3.0의 가장 큰 업데이트는 macOSLinux를 정식지원하게 된 점입니다.
이로써 지난 2.10의 Windows 지원과 함께 모든 메이저 데스크톱 플랫폼을 지원하게 되었습니다.

  • macOS 시스템 막대바 위젯 PlatformMenuBar 지원
  • 데스크톱 플랫폼 별 다국어 입력 지원 강화
  • macOS의 범용 바이너리로 구현(Intel, Apple Silicon 호환성 강화)
  • Windows10 미만 개발 환경 지원 중단(빌드 중단은 아님)

이번 업데이트로 macOS 지원이 강력해진 만큼, 그동안 macOS를 사용하던, 그중에서 특히 Apple Silicon 맥을 사용해 개발하던 개발자들의 편의성이 크게 올라가지 않을까 기대해봅니다.

모바일 업데이트

모바일에서도 클로스플랫폼으로써의 확장성과 개발 용이성이라는 기조에 맞게 기능 업데이트가 진행되었습니다. 특히 iOS ipa빌드를 지원하게 됨으로써 iOS 빌드 과정을 간소환 것이 인상적입니다.

  • 폴더블 기기 지원
  • iOS 가변 refresh rate 지원
  • iOS 릴리즈 과정 간소화 (ipa 빌드 지원)
  • Gradle 버젼 업데이트
  • 32-bit iOS/iOS 9/iOS 10 지원 종료

웹 업데이트

2.0과 함께 웹을 지원하기 시작하면서 부터, Flutter web은 꾸준히 발전해오고 있습니다. 이번 업데이트에서도 이미지 디코딩 개선, 신규 앱 lifeCycle 추가를 통해 웹의 성능이 개선되었습니다.

  • 이미지 디코딩 성능 개선(속도 2배 개선)
  • 새로운 웹 앱 lifeCycle API 추가

개발 기능/성능 업데이트

lint 2.0 릴리즈

기존 Dart/Flutter lint는 매우 강력한 기능이긴 했지만, 이를 수정하는 기능은 다소 빈약한 부분이 있었고, 실제 작업을 진행하면서도 lint를 수동으로 수정하는 일이 많았습니다.
이번 2.0 업데이트를 통해 자동 수정 기능을 보다 강력하게 지원하게 됨으로써 보다 빠르게 코드를 수정할 수 있게 되었습니다.

성능 개선

  • 일부 안드로이드 기기에서 부분 repaint 지원
  • Opacity를 사용하는 애니메이션 성능 개선
  • 래스터 및 UI 스레드 우선순위 조정을 통한 퍼포먼스 개선
  • 빠른 사진 렌더링을 위해 소비되던 메모리 사용량 개선

신규 기능 Impeller 추가

iOS 등에서 초기에 발생하는 버벅거림 해결을 위해 새로운 렌더링 백엔드 Impeller가 프리뷰 버젼으로 추가되었습니다. Impeller 미리 작은 셰이더 세트를 컴파일 해둠으로써 앱 실행 중에 컴파일이 되는 것을 막고 이를 통해 버벅거림을 해결합니다. 갤러리 애니메이션 등에서 최대 20배 까지 프레임 속도가 빨라지는 것이 확인되었습니다.

안드로이드 inline 광고 개선

스크롤 등에 들어갈 수 있는 안드로이드 inline 광고가 개선되었습니다.

기타

  • Material Design 3 지원
  • Theme 기능 개선(extensions 피쳐 추가)
  • ATT 지원 강화
  • Flutter Casual Games Toolkit 지원

오늘날 Flutter로 구축된 앱은 500,000개가 넘습니다.

이번 업데이트를 통해 다시금 플랫폼 지원과 개발 편의성이 강화되었고, 크로스플랫폼 개발 프레임워크로서 입지를 더욱 단단하게 만든 것 같습니다. 나아가 Flutter Casual Games Toolkit 등을 통해 게임 개발 등 여러 영역으로 나아가려는 모습을 보이고 있습니다.
앞으로 얼마나 더 확장된 모습을 보여줄 지 기대합니다.


참고

profile
크로스플랫폼 클라이언트 개발자(Flutter, Unity), 5년차

0개의 댓글