Flutter on Desktop

2020-03-01 539浏览

  • 1.Flutter on Desktop 郭⼒力力恒 @⼴广发证券
  • 2.个⼈人介绍 郭⼒力力恒 • 2015 ⼴广发证券 • 2012 腾讯 • 2011 迅雷雷 flutter webassembly 开源技术 ⾳音乐
  • 3.• 开发效率 • 丰富的组件 • 性能
  • 4.⼩小标题
  • 5.⼩小标题
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.内容⼤大纲 01 Flutter桌⾯面端运⾏行行原理理 02 Flutter与底层的通信 03 实战、总结
  • 11.Flutter桌⾯面端运⾏行行原理理
  • 12.⼩小标题
  • 13.⼩小标题 Embedder Activity View Controller …
  • 14.⼩小标题
  • 15.
  • 16.libflutter_engine.so android, linux flutter_engine.dll windows FlutterEmbedder.framework ios, macos
  • 17.
  • 18.FlutterEmbedder.h
  • 19.FlutterEmbedder.h
  • 20.FlutterEmbedder.h
  • 21.桌⾯面端flutter运⾏行行 • 打包flutter资源 • 开窗 • FlutterEngineRun(/* 窗⼝口,dart资源 */)
  • 22.> flutter build bundle
  • 23.> flutter build bundle
  • 24.GLFW is an Open Source, multi-platform library for OpenGL, OpenGL ES and Vulkan development on the desktop. It provides a simple API for creating windows, contexts and surfaces, receiving input and events.
  • 25.GLFW is an Open Source, multi-platform library for OpenGL, OpenGL ES and Vulkan development on the desktop. It provides a simple API for creating windows, contexts and surfaces, receiving input and events.
  • 26.1. 打包flutter资源 2. 开窗 3. FlutterEngineRun()
  • 27.事件处理理
  • 28.事件处理理
  • 29.
  • 30.FlutterEngineSendPointerEvent
  • 31.FlutterEngineSendPointerEvent MethodChannel('flutter/keyevent')
  • 32.1. 打包flutter资源 2. 开窗 3. FlutterEngineRun() 4. 事件循环 5. 实现MethodChannel
  • 33.⽅方法通道、事件通道
  • 34.MethodChannel
  • 35.MethodChannel
  • 36.MethodChannel
  • 37.MethodChannel
  • 38.MethodChannel
  • 39.MethodChannel
  • 40.MethodChannel 1
  • 41.MethodChannel 1 2
  • 42.MethodChannel 1 2 3
  • 43.MethodChannel 4 1 2 3
  • 44.Rust -> Flutter
  • 45.EventChannel
  • 46.EventChannel
  • 47.EventChannel
  • 48.EventChannel
  • 49.EventChannel
  • 50.EventChannel invokeMethod(‘listen’)
  • 51.EventChannel invokeMethod(‘listen’) invokeMethod(‘cancel’)
  • 52.Flutter 主线程 ⼦子线程
  • 53.async Flutter 主线程 ⼦子线程
  • 54.
  • 55.
  • 56.
  • 57.1
  • 58.1 2
  • 59.1 2 3
  • 60.1. 打包flutter资源 2. 开窗 3. FlutterEngineRun() 4. 事件处理 5. 实现MethodChannel 6. 实现EventChannel 7. 热加载 8. 菜单,对话框 9. 安装包构建
  • 61.实战
  • 62.
  • 63.
  • 64.初始化项⽬目
  • 65.Widgets ➢ Lisener ⿏鼠标事件 ➢ RawKeyboardListener 键盘事件 ➢ ListView, GridView, ScrollView ➢ Tooltip ➢ PopupMenu
  • 66.Listener PointerDownEvent .buttons PointerSignalEvent .scrollDelta
  • 67.Listener PointerDownEvent .buttons PointerSignalEvent .scrollDelta
  • 68.RawKeyboardListener RawKeyboardListener监听键盘事件
  • 69.ListView, GridView, ScrollView Scrollable
  • 70.Tooltip组件
  • 71.Tooltip组件
  • 72.PopupMenu
  • 73.总结
  • 74.桌⾯面跨端⽅方案对⽐比
  • 75.桌⾯面跨端⽅方案对⽐比 优点:开发效率,成熟 缺点:性能,太⼤大了了
  • 76.桌⾯面跨端⽅方案对⽐比 优点:开发效率,成熟 缺点:性能,太⼤大了了 优点:性能,成熟 缺点:开发效率,证书
  • 77.桌⾯面跨端⽅方案对⽐比 优点:开发效率,成熟 缺点:性能,太⼤大了了 优点:开发效率,性能,轻量量 缺点:成熟度⽋欠缺 优点:性能,成熟 缺点:开发效率,证书
  • 78.桌⾯面跨端⽅方案对⽐比 优点:开发效率,成熟 缺点:性能,太⼤大了了 优点:开发效率,性能,轻量量 缺点:成熟度⽋欠缺 优点:性能,成熟 缺点:开发效率,证书 可玩性!
  • 79.Thank you!