Home

Awesome

flutter_mp

flutter_mp的目标是把Flutter扩展到类小程序平台,Flutter是一个非常优秀的跨端框架,不仅可以运行在AndroidiOS,通过flutter_web还可以运行在web平台,但是官方并没有涉及小程序平台,希望flutter_mp可以填补这方面的空白。

flutter_mp inspired by AlitaAlita引擎对JSX动态处理方式,给声明式UI框架在 类小程序运行提供了思路。flutter_mp正是这个思路在Flutter上的实践。不过,现在flutter_mp还处于很早期的实验阶段,如果现在你的产品就有APP端,小程序端的多端需求,暂时我们还是建议你使用Alita,这是一套相对成熟的基于React Native的方案。

现阶段,flutter_mp还是一个很不成熟的项目,完成度还很低,很多东西还在探索阶段,离实际的可用还有很长的距离,我们也仅仅是把官方简单demo 运行在了微信小程序。另外,把所有的Flutter特性都在小程序上实现我们认为是不可能的,肯定会存在一些阉割和取舍,包括动画,手势等等在内的还原程度,我们也还在思考,欢迎关注我们最新的进展。

<table> <tr> <td>Flutter</td> <td>微信小程序</td> </tr> <tr> <td><img src="./static/flutter_lakes.jpg"/></td> <td><img src="./static/mp_lakes.jpg"/></td> </tr> </table>

相关文章

TODO

暂时,我们还只支持CenterColumnContainerExpandedImage.assetListViewRowText这些基本Widget,暂不支持 自定义Widget,即使这些基本Widget也不是完全体,比如ListView。而且你的Flutter代码只能够出现在lib/main.dart文件中。 我们将大致按照如下的 顺序一步步完善flutter_mp

  1. 寻求Flutter布局在css下的等效表达
  2. 完善基本 Widget
  3. 支持 stateful Widget
  4. 支持自定义Widget
  5. 事件/生命周期
  6. 多页面,导航/路由的支持
  7. Flutter动画在小程序的部分实现(能还原的程度??)
  8. 小程序性能优化
  9. 小程序包体积优化
  10. 其他

Getting started

现阶段,我们建议你仅仅在Examples下的lakes下修改代码,尝试flutter_mp

  1. 安装flutter_mp命令

       pub global activate --source git https://github.com/areslabs/flutter_mp.git
    
  2. 运行flutter_mp -v 查看命令是否安装成功

  3. 在你的flutter项目添加如下依赖

       dev_dependencies:
         flutter_mp:
            git:
              url: https://github.com/areslabs/flutter_mp
              path: packages/flutter_mp
    
  4. 执行命令 flutter_mp -i [flutter目录] -o [目标小程序目录]

  5. 使用微信开发者导入打开 4过程的 [目标小程序目录]

这样你的flutter应用就运行在了微信小程序上

Examples

  1. 官方布局样例lakes, 对应编译出来的小程序在lakesMP(当然你可以手动编译到任何你喜欢到目录)。

更新日志

本项目遵从 Angular Style Commit Message Conventions,更新日志由 conventional-changelog 自动生成。完整日志请点击 CHANGELOG.md

License

MIT License

Copyright (c) ARES Labs