Алихан Байшоланов - Запуск Dart кода через нативку
Алихан Байшоланов — Android Engineer, BCC HUB https://www.linkedin.com/in/alikhan-baisholanov/ Тема: Запуск Dart кода через нативку Представьте: у вас Flutter-приложение, внутрь него встраивают нативный SDK, который имеет в себе нативный экран и поверх него снова нужно показать Flutter-экран. Алихан расскажет, как запускал Dart-код из нативного SDK, строил мосты между Kotlin и Flutter и почему простая «шторка оплаты» оказалась чуть сложнее чем кажется на первый взгляд. 00:00 Вступление: Android-разработчик на Flutter-проекте 00:26 Постановка проблемы: нативная SDK в Flutter-приложении 00:54 Задача: шторка оплаты из Flutter поверх нативного WebView 01:42 Mini App и взаимодействие с нативным SDK 02:06 Схема взаимодействия компонентов 02:19 Внедрение EntryPoint в storage 02:36 Аннотация @VMEntryPoint — точка входа для Dart-кода 03:02 OverlayEntryPointRegistry — сохранение в SharedPreferences 03:40 PluginUtilities и CallbackHandle 03:54 Перенос EntryPoint на нативную часть 04:04 FlutterEngineManager и FlutterEngine 04:29 warmupEngine — подогрев движка Flutter 05:04 FlutterLoader и FlutterJNI 05:27 Конвертация CallbackHandle в CallbackInfo 05:58 Инициализация FlutterEngine и DartCallback 06:25 Запуск Dart-кода через DartExecutor 06:48 Упаковка FlutterEngine в кэш 07:07 FlutterFragment для отображения Flutter-контента 07:32 configureFlutterEngine и getCachedEngineId 08:01 shouldDestroyEngineWithHost — переиспользование engine 08:17 Method Channels для взаимодействия 08:45 invokeMethod "showOverlay" с initialDataMap 09:29 Обработка канала на Flutter-стороне 09:43 handleShowOverlay и роутинг по overlayType 10:45 Результат: диалог поверх нативного SDK 11:33 Контакты: LinkedIn, Telegram 11:41 Зачем всё это — переиспользование Flutter-компонента 11:59 Потребление памяти: FlutterEngine ~300 МБ 12:05 FlutterEngineGroup для оптимизации 12:30 Полтора месяца разработки, сегодня замерджили! 12:47 Q&A: Как долго живёт FlutterEngine 13:33 Q&A: Flutter vs Flutter Web, общение с токенами 14:52 Q&A: Разница между FlutterActivity и FlutterFragment 16:26 Q&A: Передача токенов через Channel 16:41 Q&A: Нейронка меньше 300 МБ весит 16:44 Q&A: Системные события и lifecycle 18:12 Q&A: Flutter сам обрабатывает события после запуска engine 19:00 Q&A: Проблемы с камерой на Android 11 19:12 Q&A: Полтора месяца на рисёрч и документацию 20:03 Q&A: Нет Integration Guide во Flutter 20:20 Q&A: Почему нельзя нативку — унификация на Flutter 21:07 Q&A: Дальнейшее развитие архитектуры 22:23 Q&A: WebView и M-Pass SDK https://nullptr.party/
Название:
Алихан Байшоланов - Запуск Dart кода через нативку
Категория:
Разное