iOS implementasyonu
- Flutter kursu
- Uzman seviye
- Ders 19/39
- 4 dk
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
// 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
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ı
if call.method == "____" {
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 |