MPFlutter快速上手指南

2,764 阅读5分钟

基本介绍

MPFlutter是一个跨平台的Flutter开发框架,可用于各种小程序、H5、原生应用的开发,虽然他支持的内容很多,最让我们期待的应该还是各种小程序的开发吧。

在有mpflutter之前,我都是使用flutter发布一个web项目,然后在使用uniapp来包装成小程序,在发现了MPFlutter以后果断的放弃了之前的方案。MPflutter保留了Flutter的热重载的能力,根据小程序的运行环境,MPFlutter对渲染层做了轻量化的处理。它的主要优势体现在这个方面:

  1. 纯粹的Flutter开发体验,会用Flutter就能开发小程序应用,不需要在额外的学习其他技能了。
  2. Flutter常用的组件库,在MPFlutter中依然可用,包括dio,getx等。
  3. MPFlutter封装了部分小程序组件和API,可以方便的调用小程序的能力来完成一些事情。
  4. 支持所有的Dart第三方扩展。

也存在一些明显的缺陷,并不支持全部的Flutter Widget,有部分小部件是不能用的,小程序的组件也没有全部实现,只能使用官方的MPkit组件。也并不是所有的Flutter第三方库都能被支持。虽然MPFlutter目前还有一些不完善的地方,毕竟他还是太年轻,我没有找到他的发布日期,从官方github的更新日期上看发布还不是2年,MPFlutter仍然处于先期预览本阶段,希望他日后可以发展的更好,为国产软件做出更多贡献。

下边我们来简单的使用一下MPFlutter,来看看他到底是如何使用的,

传送门

MPFlutter官方网站:mpflutter.com/

官方文档地址:mpflutter.com/zh/docs/con…

微信小程序开发指南:mpflutter.com/zh/docs/wea…

github地址:github.com/mpflutter/m…

开始简单的使用

关于开发环境

MPFlutter只是一个开发框架,如果你已经安装过了Flutter环境,那就不需要在安装其他环境了,但是还是需要重新检测一下环境变量的配置,因为MPFlutter需要将dart-sdk 也包括在PATH中。

  1. 获取Flutter SDK,官方文档中推荐使用的是3.0的版本,我使用3.0.2的版本也是可以运行的。

storage.flutter-io.cn/flutter_inf…

  1. 将SDK解压缩到你希望安装的位置上。
  2. 配置环境变量。
export PATH="$PATH:`pwd`/flutter/bin"
export PATH="$PATH:`pwd`/flutter/bin/cache/dart-sdk/bin"

这里有一个感叹号!!!务必将dart-sdk添加到PATH中!!!

  1. 检查一下环境,如果都能看到版本号的输出,那么我们的环境配置就已经完成了。
flutter --version

dart --version

dart2js --version
> Warning: The 'dart2js' entrypoint script is deprecated, please use 'dart compile js' instead.
> Dart-to-JavaScript compiler (dart2js) version: 2.17.5
//这里可能会看到一个警告,不影响我们使用。

编写第一个应用

  1. 首先我们需要下载一个模板工程。
git clone https://github.com/mpflutter/mpflutter_template.git awesome_project

MPFlutter提供有gitee,如果无法从github换取这个模板,可以使用gitee来获取模板

git clone https://gitee.com/mpflutter/mpflutter_template.git awesome_project
  1. 安装依赖:在我们的项目根目录下支持mpflutter来安装依赖,这里也有一个感叹号,是mpflutter,不是flutter
./mpflutter packages get
  1. 启动项目,和我们开发Flutter应用一样,使用你喜欢的ide打开项目,开始运行吧。

当你看到User browser open http://*********,说明已经启动成功了,打开浏览器输入上边的地址,没有意外的话应该就能看到我们的第一个应用了。

  1. 初始化项目

MPFlutter为我们提供了一个初始化项目的工具,可以停止调试,在终端运行这个命令来启动。

dart scripts/help.dart

\

我们可以为项目设置工程名称,配置输出内容。引用一段官方的介绍:

我们选择初始化 MPFlutter 模板工程,并根据提示输入工程名称、输出目标。

  • 是否移除模板工程自带的 Git 源? (y/N)
    • 对于新克隆的模板工程,选 y 即可,移除自带的 Git 源,后续可以添加自己的 Git 源。
  • 请输入工程名称,合法字符为全小写英文和下划线:
    • 输入一个合法的工程名称,如 awesome_project,这将会同步修改 pubspec.yaml 中的 name 值。
  • 该工程需要输出到 Web 吗?(如果选择否,将删除 Web 目录。) (y/N)
    • 如果你不需要输出到 Web (HTML5) 可以选择否,一般情况下,我们会选 y 保留该目标。
  • 该工程需要输出到微信小程序吗?(如果选择否,将删除 weapp 目录。) (y/N)
    • 如果你不需要输出到微信小程序可以选择否。

在配置好以后,运行这个命令来让我们的配置生效。

在命令行执行 ./mpflutter packages get。

开始构建微信小程序

在我们完成了上边的内容后,我们的微信小程序其实已经编译好了,他就在weapp目录下边,我们可以直接使用微信开发者工具导入这个目录,就打开了我们的微信小程序了,weapp目录下的小程序是支持调试的。引用官方介绍

MPFlutter 会通过在小程序创建 websocket 连接的方式,与 VSCode 中的 Debugger 通信。

而 VSCode 中的 Debugger 又是一个独立的 Dart Debugger,它本身就可以做到完全独立的调试。

你也可以在真机上调试应用,只需要将 app.js 中的 IP 替换成电脑局域网 IP 就可以了,原理也是一样的走 websocket。

值得注意的是,在调试模式下的表现并不能完全代表最终构建后的表现,如果你需要做上线前的测试,你应该在生产模式下进行测试。

发布生产环境

dart scripts/build_weapp.dart


使用这个目录就可以发布一个生产环境的产物,编译后的内容会在build目录下,build后的Dart 代码会被混淆,将不再能看到堆栈错误的信息了。

B站视频地址:space.bilibili.com/1159595523