CodeBlanks Logo Icon CodeBlanks

Plugin yapısı

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

main.dart
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

main.dart
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

Soru
static const _channel = ____('my_plugin');
Cevap
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ü

Uzman seviye bölümündeki tüm dersler