Plugin yapısı
- Flutter kursu
- Uzman seviye
- Ders 16/39
- 4 dk
Flutter plugin'inin Dart ve native kısımlarını öğrenirsin.
Plugin yapısı
Bir Flutter plugin'i iki taraftan oluşur: Dart tarafı uygulama ile konuşur, native taraf (Android/iOS) sistemle iletişim kurar. İki taraf MethodChannel ile birbirine bağlanır.
// lib/my_plugin.dart
class MyPlugin {
static const _channel = MethodChannel('my_plugin');
static Future<String> getVersion() async {
return await _channel.invokeMethod('getVersion');
}
}MethodChannel köprüsü
MethodChannel, Dart ve native arasındaki köprüdür. Dart invokeMethod ile native'e mesaj gönderir, native de MethodCall ile cevaplar. Kanal adı her iki tarafta aynı olmalıdır.
Uygulama MyPlugin Dart sınıfı
MyPlugin adında bir sınıf tanımla. static const _channel = MethodChannel('my_plugin') ata. static Future<String> getVersion() async metodu _channel.invokeMethod('getVersion') döndürsün. main'de MyPlugin'i yazdır.
Başlangıç kodu
import 'package:flutter/services.dart';
// MyPlugin sınıfını tanımla
// static const _channel'a 'my_plugin' adlı MethodChannel ata
// version getiren bir static async metod yaz (invokeMethod ile)
void main() {
// MyPlugin yazdır
}Örnek çözüm
import 'package:flutter/services.dart';
class MyPlugin {
static const _channel = MethodChannel('my_plugin');
static Future<String> getVersion() async {
return await _channel.invokeMethod('getVersion');
}
}
void main() {
print(MyPlugin);
}Beklenen çıktı
MyPlugin
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Bir Flutter plugin'i hangi iki taraftan oluşur?
- Frontend ve backend
- iOS ve yalnız iOS
- Dart ve native Doğru cevap
- Web ve mobil
Açıklama: Plugin'in Dart tarafı uygulamaya, native tarafı (Android/iOS) sisteme konuşur; ikisi MethodChannel ile köprülenir.
2 MethodChannel oluştur
static const _channel = ____('my_plugin');
static const _channel = MethodChannel('my_plugin');
Açıklama: MethodChannel, Dart-native metot çağrıları için kullanılır; EventChannel stream, BasicMessageChannel düşük seviye mesaj, BinaryMessenger ise taşıyıcı katmandır.
3 Plugin yapısı eşleşmeleri
| Kavram | Anlamı |
|---|---|
plugin |
İki taraflı paket |
Dart |
Uygulama tarafı |
native |
Sistem tarafı |
MethodChannel |
Köprü |