Есть ли у вас опыт разработки на Swift?

«Есть ли у вас опыт разработки на Swift?» — вопрос из категории Платформенное взаимодействие, который задают на 29% собеседований Flutter Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Да, у меня есть опыт разработки на Swift для создания нативных iOS-компонентов и интеграции их с Flutter. Это было необходимо в проектах, где требовалось использовать специфичные iOS-фреймворки (например, Core NFC, ARKit) или оптимизировать критичные по производительности участки кода.

Я работал с интеграцией через FlutterMethodChannel и FlutterEventChannel для двусторонней коммуникации между Dart-кодом и нативным iOS-слоем.

Пример реализации нативного iOS-модуля на Swift для Flutter, который возвращает системную тему:

// SwiftPlugin.swift
import Flutter
import UIKit

public class SwiftThemePlugin: NSObject, FlutterPlugin {
  public static func register(with registrar: FlutterPluginRegistrar) {
    let channel = FlutterMethodChannel(name: "theme_channel", binaryMessenger: registrar.messenger())
    let instance = SwiftThemePlugin()
    registrar.addMethodCallDelegate(instance, channel: channel)
  }

  public func handle(_ call: FlutterMethodCall, result: @escaping FlutterResult) {
    if call.method == "getSystemTheme" {
        let isDark = UITraitCollection.current.userInterfaceStyle == .dark
        result(isDark ? "dark" : "light")
    } else {
        result(FlutterMethodNotImplemented)
    }
  }
}

Такой опыт позволяет писать гибридные приложения, где Flutter отвечает за основной UI, а сложная платформенная логика выносится в нативный код.