MXFlutter 2020 Roadmap

整體目標和方向

  • 使用JS開發,擴展 Flutter 的開發陣營,實現 Flutter 動態化,
  • 支持業務由 Dart 開發,使用mxjsbuilder編譯爲JS直接運行,實現同一套 Dart 代碼同時支持 AOT 編譯爲 Native APP,也能夠編譯爲JS支持動態化。

要實現 MXFlutter 的目標,工程量很是巨大,團隊在作這個項目時也感覺到,對比作一個技術方案和實現一個產品級的框架,工做方式有巨大的不一樣, 實現一個產品級框架,是可用性優先,作一個技術方案Demo是解決難點優先。MX要作完善,還有很長的路要走,千里之行,始於足下,歡迎有興趣的小夥伴一塊兒建設。c++

整體路線圖

基礎功能,支持Flutter的全部功能

完善Widget

  1. 支持全部Flutter Widget,使用 mxjsbuilder 直接編譯生成 MXFlutter Widget 框架。
  2. 支持動畫 Widget,Controller
  3. 支持彈窗等 UI API
  4. 支持 Flutter 的開發方式,如各種Key,InheritedWidget的使用,動態建立Builder機制

支持Flutter生態,能方便接入package

  1. 能夠接入Flutter生態的package,步驟簡單通用。
  2. MX官方支持好最流行的package,例如dio,pull_to_refresh。
  3. 制定package接入的指引,開發者能夠本身接入須要的package

易用性

  1. 改造 mxflutter 爲 package ,簡化接入流程。
  2. 編寫完善的官方使用文檔,
  3. 支持 TS 語言。

平臺特性

iOS

Android

  1. Android JS引擎選擇,安裝包下降
  2. Android 增長JS調試能力

性能優化

通道專項

優化JS,Native,Dart 通信效率。web

  1. 通信數據結構,由json優化爲其餘格式。
  2. 換用更高效的Dart JS數據交互方式

首屏專項

經過直接預先生成DSL,提高首屏打開性能。json

流暢度專項

提高交互流暢度,提高交互時,界面刷新反應時間。瀏覽器

ListView專項

提高Listview滑動性能和體驗性能優化

工具建設

dart編輯爲JS的mxjsbuilder編譯器開發

  1. 支持 Dart 開發,由 mx_jsbuilder 編譯爲js,在 MXFlutter 框架直接運行。
  2. 支持mx js framewrok的 js widget 使用編譯器直接編譯生成。

IDE插件

  1. 開發VSCode插件,支持代碼補全,聯想能力。
  2. IDE插件直接調試JS的能力。

開發模式規範化

合入標準

制定代碼規範和合入標準數據結構

完整的項目開發流程和測試

功能測試

測試widget功能框架

單元測試

編寫對應模塊的單元測試工具

官方Demo

開發官方Demo,發佈到iOS,Android應用市場性能

官方網站建設

mxflutter.com單元測試

技術擴展和優化探索

TS編譯爲webassembely,提高性能 底層基礎庫換用c++實現,換用動態化中臺渲染內核。 直接運行在瀏覽器中

目前進展

截止2020年4月28日,已發佈到 v0.1.2 beta版本,主要功能可用,性能達到生產環境標準,已在iOS端看點視頻上線,Android功能已對齊。

  1. 基礎功能 Widget 支持 70%
  2. 動畫 Widget 20%
  3. Flutter生態 package 的支持方法
  4. 官方Demo 已有多數widget 示例
  5. 已支持Dart編譯爲JS,mx_jsbuilder編譯器易用性封裝完成70%

當前主要目標

5月11日發佈 v0.2.5版本,支持mx_jsbuilder編譯器

下一步計劃

  • 性能優化專項,通道性能,流暢度,首屏加載時間。
  • mx_jsbuilder 繼續迭代優化,支持更多dart語法編譯
  • 動畫專項
  • 工具鏈建設,IDE插件開發
  • 支持TS語言
  • 功能測試和單元測試
  • 完善的開發文檔
  • 業務接入支持
  • 官方Demo
  • 官方網站
  • 技術擴展
相關文章
相關標籤/搜索