728x90
Flutter와 Dart는 개발자 생산성 향상과 더 나은 사용자 경험을 위해 꾸준히 진화하고 있습니다. 이번 Flutter 3.29와 Dart 3.7 업데이트에서는 특히 렌더링 엔진, 플랫폼 인터롭, 웹 성능, DevTools 개선 등 여러 핵심 기능들이 대폭 강화되었습니다. 아래에서 주요 변경 사항을 살펴보겠습니다.
1. 엔진 및 렌더링 개선
iOS – Impeller가 기본 렌더러로 전환
- Skia 완전 제거: 이제 iOS에서는 Skia 대신 Impeller가 유일한 렌더러로 사용됩니다.
- 바이너리 크기 감소 및 성능 최적화: 불필요한 코드가 제거되어 앱의 크기가 줄고, 렌더링 효율이 크게 향상되었습니다.
- 새로운 렌더링 기능: BackdropFilter 최적화와 ImageFilter.shader 생성자 등을 통해 부드러운 시각 효과 구현이 가능해졌습니다.
Android – Impeller 안정성 및 호환성 강화
- Vulkan 백엔드 개선: 기존 실험적 기능이 더욱 안정적으로 개선되어, 특히 구형 기기에서도 깜빡임 없이 작동합니다.
- OpenGL ES 대체: MediaTek 및 PowerVR 칩셋 등에서 Impeller OpenGLES 모드로 더 나은 호환성을 제공합니다.
- 에뮬레이터 지원: Android 에뮬레이터도 Impeller GLES 백엔드를 사용하여 일관된 렌더링 환경을 제공합니다.
메인 스레드에서 Dart 코드 실행
- Flutter 3.29부터 Android와 iOS 모두에서 Dart 코드가 애플리케이션의 메인 스레드에서 직접 실행됩니다.
- 별도의 UI 스레드를 없애 메시지 직렬화 및 인터롭 오버헤드를 줄여, 텍스트 입력 및 접근성 같은 플랫폼 상호작용이 더욱 빠르게 동작합니다.
2. 웹 플랫폼 및 Dart 3.7 연동
웹 렌더링 최적화
- HTML 렌더러 제거: 기존 HTML 렌더러를 완전히 제거하고, WebAssembly(Wasm) 기반의 통합 렌더링 전략으로 전환되었습니다.
- 이미지 핸들링 개선: <img> 엘리먼트 사용 제어를 위한 플래그 도입 등으로 CORS 이슈 관리와 렌더링 속도가 향상되었습니다.
Dart 3.7 통합
- 레거시 라이브러리 폐지: dart:html, dart:js 등의 구형 라이브러리 대신, dart:js_interop와 web 패키지를 통해 모던 API를 지원합니다.
- 새로운 포맷터 및 와일드카드 변수:
- Dart 3.7에서는 새로운 포맷팅 스타일이 도입되어, 코드 길이에 따라 자동으로 trailing comma를 추가하거나 제거합니다.
- 이제 _ (언더스코어)를 여러 번 재사용할 수 있어, 불필요한 변수 이름 고민을 덜어줍니다.
3. DevTools 및 성능 프로파일링 강화
- 향상된 인스펙터: 압축된 위젯 트리와 자동 업데이트 기능이 추가되어, 핫 리로드와 네비게이션 시 즉각적인 반영이 가능합니다.
- 메모리 디버깅 도구 개선: Profile, Trace, Diff 탭이 추가되어 현재 메모리 할당 상황과 코드 경로 분석, 두 시점 간의 메모리 스냅샷 비교 기능을 제공합니다.
- 로그 도구 업그레이드: 더 풍부한 메타데이터와 심각도 기반 필터링 기능으로 디버깅 시 문제점을 빠르게 파악할 수 있습니다.
4. 접근성 및 UI/UX 개선
- Material 3 업데이트: 최신 Material Design 가이드라인에 맞춘 버튼, 텍스트필드, 드롭다운 메뉴 등 여러 위젯의 스타일이 개선되었습니다.
- Cupertino 위젯 강화: iOS 특유의 네이티브 감성을 살린 CupertinoListSection, CupertinoListTile 등 새로운 위젯이 추가되어 iOS 앱의 UI 일관성을 높였습니다.
- 컨텍스트 메뉴 커스터마이징: 텍스트 선택이나 이미지 길게 누름 등 다양한 상황에서 사용자 정의 메뉴를 쉽게 구성할 수 있습니다.
- 키보드 기반 텍스트 선택: MacOS와 데스크탑 환경에서 Shift 키를 사용한 텍스트 선택 기능이 추가되어 접근성이 향상되었습니다.
5. 기타 주요 변경 사항
- 빌드 최적화: Android Gradle 빌드 속도가 개선되고, targetSdkVersion 34 지원이 추가되어 최신 보안 정책과 호환성이 강화되었습니다.
- 플랫폼 채널 개선: 백그라운드 Isolate에서도 플랫폼 채널 호출이 가능해져, 네이티브 코드와의 통신이 더욱 유연해졌습니다.
- 메모리 관리 최적화: 네이티브 리소스 해제 API가 추가되어, GC로 인한 프레임 지연과 불필요한 메모리 사용을 줄였습니다.
마무리
Flutter 3.29와 Dart 3.7 업데이트는 전체적인 앱 성능 향상과 개발 생산성 증대를 목표로 다양한 기능 개선을 포함하고 있습니다. Impeller의 안정적인 렌더링, 웹 및 데스크탑 지원 강화, DevTools 및 접근성 개선 등은 여러분의 프로젝트에 큰 도움이 될 것입니다.
새로운 기능들을 실제 프로젝트에 적용하기 전, 충분한 테스트를 통해 모든 환경에서 원활하게 동작하는지 확인하시길 바랍니다.
오늘도 열심히 코딩하시고 , 열코 빡코 !
728x90
LIST
'Flutter' 카테고리의 다른 글
Flutter에서 애니메이션 (1) | 2025.03.02 |
---|---|
Flutter에서 BLoC 패턴 제대로 이해하기 (0) | 2025.03.02 |
PopupMenuButton (팝업 메뉴 버튼) (0) | 2025.02.27 |
Flutter의 렌더링 파이프라인: Build 단계 이해하기 (0) | 2025.02.25 |
이미지 크기 조절하기: fast_image_resizer 사용법 (0) | 2025.02.21 |