CodeBlanks Logo Icon CodeBlanks

iOS implementasyonu

iOS tarafında plugin metot yazmayı öğrenirsin.

iOS implementasyonu

iOS tarafında plugin, FlutterPlugin protokolünü uygulayan bir Swift sınıfıdır. handle(_ call: FlutterMethodCall) metodu Dart'tan gelen çağrıları yakalar.

class MyPluginiOS: NSObject, FlutterPlugin {
  func handle(_ call: FlutterMethodCall, result: @escaping FlutterResult) {
    if call.method == "getVersion" {
      result("1.0")
    } else {
      result(FlutterMethodNotImplemented)
    }
  }
}

Swift ve FlutterPlugin

Swift ile yazılan plugin, NSObject'i extend eder ve FlutterPlugin protokolünü uygular. FlutterMethodCall.method çağrının adını verir; FlutterResult ile cevap Dart'a döner.

Uygulama IOSPlugin simülasyonu

IOSPlugin adında bir Dart sınıfı tanımla. handle(String method) metodu String döndürsün: method == 'getVersion' ise '1.0', aksi halde 'unknown'. main'de IOSPlugin örneği al ve handle('getVersion') sonucunu yazdır.

Başlangıç kodu

main.dart
// IOSPlugin sınıfını tanımla
// handle metodu String alıp String döndürsün
// version çağrısı için 1.0, diğerleri için unknown döndürsün

void main() {
  // IOSPlugin örneği al ve version çağrısının sonucunu yazdır
}

Örnek çözüm

main.dart
class IOSPlugin {
  String handle(String method) {
    if (method == 'getVersion') {
      return '1.0';
    }
    return 'unknown';
  }
}

void main() {
  final plugin = IOSPlugin();
  print(plugin.handle('getVersion'));
}

Beklenen çıktı

1.0

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 iOS tarafında Dart'tan gelen çağrılar hangi metodla yakalanır?

  • viewDidLoad
  • handle(_ call:) Doğru cevap
  • onClick
  • build

Açıklama: FlutterPlugin protokolünün handle(_ call:) metodu Dart'tan gelen FlutterMethodCall'ları alır; build widget, viewDidLoad view controller, onClick ise view olayları içindir.

2 Swift method karşılaştırması

Soru
if call.method == "____" {
Cevap
if call.method == "getVersion" {

Açıklama: iOS tarafında call.method "getVersion" ile karşılaştırılır; version farklı bir addır, init ve dispose ise yaşam döngüsü metodlarıdır, çağrı adı değildir.

3 iOS implementasyonu eşleşmeleri

Kavram Anlamı
iOS Apple platformu
FlutterPlugin iOS protokolü
Swift iOS programlama dili
handle Çağrı yakalama

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