flutter-building-plugins은(는) 무엇을 하나요?
다른 앱이 네이티브 상호 운용성을 사용할 수 있도록 Flutter 플러그인을 빌드합니다. Flutter와 플랫폼별 기능을 연결하는 재사용 가능한 패키지를 만들 때 사용하세요.
플러그인 생성
flutter create --template=plugin --platforms=android,ios <plugin_name>
주요 구성 요소
- MethodChannel: Dart에서 네이티브 메서드 호출 및 결과 반환
- EventChannel: 네이티브에서 Dart로 이벤트 스트리밍
- BasicMessageChannel: 양방향 문자열/이진 메시지 전송
플러그인 구조
<plugin_name>/
lib/
<plugin_name>.dart
android/
src/main/kotlin/
<plugin_name>.kt
ios/
Classes/
<plugin_name>.swift
채널 통신 예제
Dart 측
static const _channel = MethodChannel('com.example/plugin');
static Future<String?> getPlatformVersion() async {
return await _channel.invokeMethod('getPlatformVersion');
}
Android 측 (Kotlin)
class MyPlugin: FlutterPlugin, MethodCallHandler {
override fun onMethodCall(call: MethodCall, result: Result) {
if (call.method == "getPlatformVersion") {
result.success("Android ${Build.VERSION.RELEASE}")
} else {
result.notImplemented()
}
}
}
iOS 측 (Swift)
class MyPlugin: NSObject, FlutterPlugin {
func handle(_ call: FlutterMethodCall, result: @escaping FlutterResult) {
if call.method == "getPlatformVersion" {
result("iOS \(UIDevice.current.systemVersion)")
} else {
result(FlutterMethodNotImplemented)
}
}
}
게시
flutter pub publish
자세한 내용은 Flutter 플러그인 개발 문서를 참조하세요.