Выбор ответа Middle Платформенные каналы обновлено

Flutter: зачем Pigeon

Вопрос

Главное преимущество Pigeon перед ручным MethodChannel?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Типобезопасность: интерфейсы и модели генерируются для Dart, Kotlin и Swift. Pigeon генерирует код каналов: ошибка в имени метода или типе аргумента ловится компилятором, а не в рантайме.

Варианты ответа

  1. Типобезопасность: интерфейсы и модели генерируются для Dart, Kotlin и Swiftправильный ответ
  2. Pigeon вызывает нативный код синхронно, без каналов и без сериализации
  3. Pigeon позволяет вызывать нативный код Android и iOS прямо из веб-версии
  4. Pigeon не требует писать нативный код вообще, реализацию он генерирует сам

Разбор

Pigeon генерирует код каналов: ошибка в имени метода или типе аргумента ловится компилятором, а не в рантайме. Под капотом это те же асинхронные сообщения через BinaryMessenger. Нативную реализацию всё равно пишете вы, просто реализуете сгенерированный интерфейс. Синхронный вызов C-функций даёт FFI.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.