기사 개요
Google I/O 2026 타이밍에 Flutter 3.44가 릴리스되었다. 이번에는 '신기능의 화려함'보다는, 평소의 개발 경험을 바꾸는 업데이트가 많은 인상이다.
특히 주목해야 할 포인트
먼저 '이것만은 꼭 짚고 넘어가야 한다'는 포인트를 뽑아보았다.
- 🤖
Agentic Hot Reload: AI 코딩 에이전트가 실행 중인 Flutter 앱에 자동으로 접속하여 핫 리로드 (Hot Reload)까지 대신 처리해 준다.
- 🎨
Material / Cupertino 가 SDK 본체에서 분리: material_ui / cupertino_ui라는 독립 패키지로 이행하는 흐름이 시작되었다.
- 📦
Swift Package Manager 가 iOS/macOS의 기본값으로: 오랫동안 도움을 주었던 CocoaPods와의 작별이 현실화되었다.
- ⚡
Hybrid Composition++ (HCPP): Android의 플랫폼 뷰 (Platform View) (WebView/Maps 등)가 Vulkan + SurfaceControl을 통해 크게 개선되었다.
- 🪟
데스크톱에서 멀티 윈도우 API가 실험적으로 등장: Canonical이 메인테넌스 리드를 맡는다.
AI / Agent 개발 지원
이번의 핵심 카테고리. AI 에이전트와 함께 Flutter 앱을 만들고/움직이는 세계에 집중한 업데이트들이 모였다.
Agentic Hot Reload
-
🛠
할 수 있는 것: AI에게 "이 버튼 색깔 바꿔줘"라고 부탁하는 것만으로, 코드 수정 → 저장 → 핫 리로드 (Hot Reload)까지 에이전트가 완결한다. 개발자는 화면을 보며 결과만 확인하면 된다.
-
💡
장점: "AI에게 쓰게 함 → 직접 리로드 → 확인"이라는 두더지 잡기 식의 과정이 사라진다. 피드백 왕복 시간이 체감상 '분' 단위에서 '초' 단위로 단축된다.
-
🛠
Dart / Flutter MCP Server
-
🛠
할 수 있는 것: Claude Code나 Cursor 같은 AI 에이전트가 로컬의 Dart Analyzer를 통해 프로젝트의 타입 정보, 위젯 트리 (Widget Tree), 의존 관계를 이해한 상태에서 코드를 조작하거나 테스트를 실행할 수 있게 된다.
-
💡
장점: "텍스트 일치로 코드를 바꿔 쓰는" 수준에서 "망가뜨리지 않는 리팩토링 및 타입 안전성 (Type Safety) 체크" 수준으로 진화한다. 할루시네이션 (Hallucination)이 줄어들고 제안의 신뢰도가 높아진다.
-
🛠
GenUI SDK (flutter/genui)
-
🛠
할 수 있는 것: AI의 응답을 "텍스트의 벽"이 아닌 진짜 Flutter UI로 반환할 수 있다. 예: "이번 주말 이벤트 알려줘" → 채팅창 안에 이벤트 카드 리스트가 구성되는 경험을 만들 수 있다.
-
💡
장점: 채팅형 UI가 "읽기만 하는 것"에서 "대화 속에서 조작할 수 있는 앱"으로 진화한다. 앱 측에 심어둔 컴포넌트 카탈로그에서 조립하는 방식이므로, AI가 작성한 코드를 직접 실행하는 것이 아니라 안전성도 담보된다.
-
🛠
A2UI Protocol
-
🛠
할 수 있는 것: GenUI의 배후에서 작동하며, AI ↔ 앱 간에 주고받는 UI 공통 포맷 (v0.9). 동일한 프로토콜을 사용하면 다른 모델이나 다른 구현체라도 동일한 UI를 구성할 수 있다.
-
💡
장점: 동적 UI를 만들 때마다 각 회사마다 제각각인 사양을 만들 필요가 없어 벤더 락인 (Vendor Lock-in)을 피하기 쉽다.
-
🛠
해석형 바이트코드 (에페머럴 UI 배포) ※ Dart 3.12 시점에서는 연구 단계
-
🛠
할 수 있는 것 (장래): App Store 심사를 거치지 않고, 그 자리에서만 사용하는 UI를 앱에 배포할 수 있게 된다는 구상.
-
💡
장점: A/B 테스트용 UI나 단기 캠페인 화면을 릴리스 사이클과 분리하여 투입할 수 있다.
-
🛠
Agent Skills
-
🛠
할 수 있는 것: "통합 테스트를 추가해 줘", "로컬라이제이션 (Localization)을 정리해 줘"와 같은 Flutter 특유의 태스크를 해당 프로젝트의 관례에 따라 에이전트가 실행할 수 있다.
-
💡
장점: "일반적인 Flutter 지식으로 대충 쓰는" 것이 아니라, "이 리포지토리라면 이렇게 쓴다"라는 점을 고려한 변경이 이루어진다.
-
🛠
Framework (Material / Cupertino)
코어의 동결 (Freezing)이 큰 토픽이다. 개별 위젯은 "메뉴", "커스터마이징 가능성", "견고함"이라는 3개 축을 중심으로 진화했다.
- Material / Cupertino 코어 동결 (Freezing): 향후
material_ui / cupertino_ui라는 독립 패키지로 배포 예정 (SDK의 3개월 사이클에서 해방)
- Cupertino 쇄신:
CupertinoMenuAnchor 추가, CupertinoSheetRoute의 스크롤·드래그 대응, CupertinoFocusHalo의 슈퍼 엘립스 (Superellipse) 대응 등 iOS 네이티브의 감각에 가깝게 업데이트
- 신규 위젯 / 생성자:
RoundedSuperellipseInputBorder, SizedBox.square() 추가
- 커스터마이징 가능성 확장:
Carousel (무한 스크롤), TabBar (임의의 ScrollController), NavigationRail / DropdownMenu / Stepper / Hero / MenuAnchor / AnimatedCrossFade / ModalBottomSheet 등에 세부 파라미터 추가
- 견고함 · 수정: 0x0 사이즈 환경에서의 크래시 방지 (
EditableText 등), RangeSlider의 포커스 동작, DateRangePicker의 테마 적용, SegmentedButton의 너비 배분 등의 버그 수정
렌더링 (Impeller)
화려한 신기능은 없으나, 몇 가지 개선 사항이 나열되어 있다.
- Vulkan 메모리 관리: 캐시 관리와 GPU/CPU 동기화 효율을 개선 (프레임 드롭 발생 시의 동작이 안정화됨)
- Skia 백엔드 폐지 (Android 10+): 시작 시 셰이더 컴파일 (Shader Compilation)로 인한 저크 (Jank) 제거
- 원 그리기 쇄신: Signed-distance function 기반으로 변경하여 에일리어싱 (Aliasing) 해소
- 텍스트 렌더링: 비균일 스케일 시 바이리니어 필터 (Bilinear Filter)를 사용,
TextFrame의 공유 데이터 감소
iOS / macOS
의존성 관리와 Xcode 주변에 변화가 집중되었다.
- Swift Package Manager (SPM) 가 기본값: CLI가 Xcode 프로젝트를 자동으로 마이그레이션하며, CocoaPods 플러그인은 폴백 (Fallback) 취급되어 경고 발생
- Add-to-app (iOS) 도 SPM 경유 권장: 기존 iOS 앱에 통합할 때도
flutter build swift-package --platform ios로 생성한 Swift 패키지를 가져오는 방식으로 변경. 기존의 CocoaPods / embedded frameworks 통합은 일단 삭제한 후 마이그레이션해야 함 (Xcode 15.0+ 필수)
- Xcode 16 대응: arm64 제외 설정에 대한 경고 추가
- SwiftPM 최소 플랫폼 불일치 진단 개선: 의존성 해결 실패 시의 메시지를 이해하기 쉽게 변경
- CocoaPods × SwiftPM 충돌 시 가이드 에러: 마이그레이션 중인 프로젝트에서 막히지 않도록 지원
- UIScene 라이프사이클 경고: Apple의 향후 요구 사항에 대비한 사전 통지
- 인라인 텍스트 예측 입력: iOS의 인라인 보완을 지원
- iOS 시뮬레이터의 가짜 Impeller 이미지 회피책 제거
Android
플랫폼 뷰 (Platform View) 주변이 개선되었다.
- Hybrid Composition++ (HCPP): Vulkan + SurfaceControl을 통해 합성 (Composition)을 OS에 위임,
--enable-hcpp로 활성화
- Predictive Back 확장:
FlutterFragment / FlutterFragmentActivity에서도 예측 뒤로가기 (Predictive Back)를 지원
- Android API 35 대응: 새로운
CheckState API 대응
- AGP 9 대응: Kotlin의 빌트인화에 따른 플러그인 적용 재검토 필요
- Huawei ImageReader 버그 수정
- 콘텐츠 사이징 개선
Web
세부적인 수정이 중심이다.
iframe 내 스크롤 이벤트 전파 수정
텍스트 스타일 동기화를 통한 IME 및 선택 동작 수정
iOS iframe 내 텍스트 입력 뷰 표시
Safari iOS 26의 자동 완성(Autofill) 오류 수정
Desktop / Embedded
체제의 변화와 새로운 API의 조짐.
멀티 윈도우 API (실험적): 툴팁, 팝업, 별도 다이얼로그 창 등을 지원할 예정
데스크톱 리드 메인테이너가 Canonical로 이동: Linux/데스크톱 관련 움직임이 활발해짐
Toyota RAV4 (2026): 차량용 인포테인먼트(Infortainment)가 Flutter로 구동
LG webOS SDK: 스마트 TV용 SDK가 곧 제공될 예정
일상적인 개발 경험과 직결되는 개선.
DevTools가 WASM 컴파일로 전환: 실행 및 조작 응답 속도가 경쾌해짐
Widget Previews의 메모리 사용량을 최대 50% 절감: Dart Analysis Server 활용으로 효율화
하드웨어 키보드의 규칙성 경고를 기본적으로 비활성화
유틸리티 추가: TestWidgetsApp을 통해 테스트의 정형화된 처리를 간소화
스타일 가이드 업데이트: dot shorthand, 확장 메서드(Extension method) 권장 방침 정리
Dart 3.12
Flutter 3.44에 포함되는 Dart 업데이트.
프라이빗 명명된 파라미터 (Private named parameter): _field를 직접 생성자 인수로 받을 수 있음
프라이머리 생성자 (Primary constructor) (실험적): 클래스 선언과 동시에 생성자를 작성할 수 있는 구문
Genkit Dart: 모델에 의존하지 않는 풀스택 AI 프레임워크가 Dart 지원
파괴적 변경 (Breaking Changes)
업그레이드 전에 확인해야 할 변경 사항. 자세한 내용은 공식 파괴적 변경 가이드를 참조하십시오.
:ExtendSelectionByPageIntent 삭제 및 ExtendSelectionVerticallyToAdjacentPageIntent로 대체
:TextDecoration 상속/구현 불가. final로 변경됨. TextDecoration.combine으로 조합하거나 드로잉 레이어(Drawing layer)에서 대응해야 함. maskValue 처리 방식도 플랫폼 간 통일
페이지 전환 빌더(Page transition builder)의 임포트 경로 변경: CupertinoPageTransitionsBuilder / PageTransitionsBuilder / pageTransitionsTheme의 참조처가 정리됨. rg "CupertinoPageTransitionsBuilder|PageTransitionsBuilder|pageTransitionsTheme"로 확인 권장
Android: 내장 Kotlin + AGP 9 대응: 수동으로 org.jetbrains.kotlin.android를 적용하고 있으면 빌드가 깨질 가능성 있음. Kotlin 마이그레이션 가이드에 따라 정리 필요
iOS: UIScene 라이프사이클 전환 예고: Apple의 향후 요구 사항에 맞춰 UISceneDelegate로의 전환이 권장됨
iOS/macOS: SwiftPM 기본화에 따른 의존성 해결 변화: CocoaPods 의존 플러그인은 폴백(Fallback) 경고 발생. SwiftPM과 병용 시 충돌이 감지될 수 있음. CocoaPods 레지스트리는 2026년 12월 2일에 읽기 전용(Read-only)으로 전환되므로, Add-to-app을 포함하여 조기에 마이그레이션할 것
DropdownMenu의 non-null 관련 변경 사항(일부 리버트): 3.43 버전에 맞춰 작성했을 경우 재조정이 필요할 수 있음
요약
Agentic Hot Reload와 SwiftPM 기본화는 향후 개발 스타일에 영향을 미치므로, 신규 프로젝트부터 도입할 가치가 있다.
Material/Cupertino 패키지 분리는 앞으로도 계속 주시할 필요가 있다.
참고
릴리스 전체
AI / Agent 개발 지원
GenUI 개요 / 시작하기 /
flutter/genui
genui
패키지 (pub.dev) / genui_a2ui
패키지 (pub.dev) - A2UI 프로토콜 (공식)
- Dart / Flutter MCP 서버 (
dart-lang/ai) - Hot Reload (Agentic Hot Reload의 전제 조건)
iOS / SwiftPM 관련
파괴적 변경 (Breaking Changes) / 마이그레이션 가이드
Discussion