Что мы на нём делаем
Kotlin — место, где наши Flutter-приложения по-настоящему встречаются с Android. Кроссплатформенный слой UI закрывает бóльшую часть продукта, но не всё: фоновые сервисы, которые обязаны пережить убийство приложения, foreground-уведомления, NFC и доступ к железу, вендорские SDK, существующие только под Android, и работа с install referrer для отложенных диплинков.
Всё это пишется на Kotlin за platform channel, так что со стороны Dart виден чистый API и ни одной детали жизненного цикла Android.
Где мы его применили
Нативная Android-разработка живёт внутри наших Flutter-проектов, а не рядом с ними, поэтому отдельной строкой в портфолио она не появляется. Она проявляется в тех частях приложений, до которых кроссплатформенный код не дотягивается, — например, в отложенных диплинках и install referrer, о которых мы писали: переносимой реализации у этой задачи нет.
Когда мы его рекомендуем
Kotlin — правильный ответ для Android-половины платформенной интеграции и для полностью нативного Android-приложения, когда продукт действительно привязан к платформе: глубокая интеграция с ОС, аудитория только на Android или команда, уже вложившаяся в экосистему.
Он неправильный ответ по умолчанию для продукта, которому нужен ещё и iOS. Две нативные кодовые базы — это две команды, два релизных цикла и два набора багов; если ничего к этому не вынуждает, Flutter со слоем Kotlin под ним даёт те же возможности заметно дешевле.
