flutter-embedding-native-views은(는) 무엇을 하나요?
Flutter 앱에 Android, iOS 또는 macOS의 네이티브 뷰를 임베딩합니다. 지도나 웹 뷰와 같은 복잡한 네이티브 컴포넌트를 통합할 때 사용합니다.
개요
이 기술은 Flutter 애플리케이션 내에서 네이티브 플랫폼 뷰(Android, iOS, macOS)를 임베딩할 수 있게 해줍니다. 지도, 웹 뷰, 사용자 정의 UI 컴포넌트 등 Flutter 위젯만으로는 구현하기 어려운 고성능 또는 플랫폼 특화 기능을 통합해야 할 때 매우 유용합니다.
지원 플랫폼
- Android:
AndroidView위젯 사용 - iOS:
UiKitView위젯 사용 - macOS:
UiKitView위젯 사용
사용 방법
Android (AndroidView 예시)
Widget build(BuildContext context) {
return Container(
width: 300,
height: 200,
child: AndroidView(
viewType: 'native-view-type',
creationParams: <String, dynamic>{
'param1': 'value1',
},
creationParamsCodec: StandardMessageCodec(),
),
);
}
iOS/macOS (UiKitView 예시)
Widget build(BuildContext context) {
return Container(
width: 300,
height: 200,
child: UiKitView(
viewType: 'native-view-type',
creationParams: <String, dynamic>{
'param1': 'value1',
},
creationParamsCodec: StandardMessageCodec(),
),
);
}
주요 사용 사례
- 지도 통합: Google Maps, Apple Maps 등 네이티브 지도 SDK를 직접 사용
- 웹 뷰: WKWebView(iOS) 또는 WebView(Android)를 통한 고급 웹 콘텐츠 렌더링
- 네이티브 비디오 플레이어: ExoPlayer, AVPlayer 등 고성능 재생
- AR/VR: ARKit, ARCore 등 증강 현실 뷰 통합
- 사용자 정의 네이티브 UI: Flutter에서 제공하지 않는 플랫폼 특화 UI 컴포넌트
주의사항
- 네이티브 뷰를 임베딩할 때는 성능 오버헤드가 발생할 수 있으므로, 꼭 필요한 경우에만 사용하는 것이 좋습니다.
- 네이티브 뷰와 Flutter 위젯 간의 상호 작용은 플랫폼 채널을 통해 처리해야 할 수 있습니다.
- 각 플랫폼에서 네이티브 뷰를 등록하는 방법은 해당 플랫폼의 문서를 참조하세요.