Flutter 工程模板记录

Flutter 工程模板主要有:

  1. Flutter app
  2. Flutter module
  3. Flutter plugin
  4. Flutter package

我是怎么知道有这些项目类型的呢?查看flutter create -h 命令:

-t, --template=<type>          Specify the type of project to create.

          [app]                (default) Generate a Flutter application.
          [package]            Generate a shareable Flutter project containing modular Dart code.
          [plugin]             Generate a shareable Flutter project containing an API in Dart code with a platform-specific implementation for
                               Android, for iOS code, or for both.
复制代码

-t 这个模板来看,目前只有 3 个啊,还有一个 module 是在哪里呢?后来看 flutter git 上的 wiki Add-Flutter-to-existing-apps 里面提供了,创建了一个module 项目的命令;有点奇怪 flutter 团队为什么不把 module 也放到这个 help 里面呢?

创建这 4 个项目模板

flutter create -t app --org com.example my_flutter_app
flutter create -t module --org com.example my_flutter_module
flutter create -t plugin --org com.example my_flutter_plugin
flutter create -t package --org com.example my_flutter_package
复制代码

app 目录结构

从 gradle 看,这个主要是 app, 能够直接生成 apk; 并且都带有 libflutter.so 和 flutter 其他的产物;就是一个完整的 flutter 项目直接生成可按照的应用,最常见;

module 目录结构

从 gradle 来看,这应该是一个 lib; 可以生成 aar; 这个 aar 会有flutter 的产物(libflutter.so, assert 目录); 根据Add-Flutter-to-existing-apps 里面可以使用 flutter build aar 来生成 aar; 这里在 1.7.8 stable 中这个命令不见了,后来调研了一下,在最新的 master 分支上,这个命令被修复回来了;

plugin 目录结构

flutter-project-plugin.png

plugin 主要是可以支持 dart 和原生代码一起编译打包查看(也可以没有原生代码),对应 android 来说,可以是一个 lib 项目;

packag 目录结构

flutter-project-package.png

可以看出来都是 dart 代码;当 plugin 模板中没有原生代码的时候,我认为 plugin 也是package;从官方文档上来看 flutter.dev/docs/develo… , packages 和 plugins 都可以上传到 pub 仓库中,所以我觉得 plugin 应该是比较特殊的 package 吧;

结论

  1. APP: 就是正常的 dart 项目,打包好了后跑到不同的平台上
  2. Module: 有 java 和 dart 代码,可以打包成 aar, 然后给 app 依赖;
  3. Plugin: gradle 配置是 lib 类型的 Android 工程,可以认为是一个lib, 可以依赖 aar 和 dart lib
  4. Package: 只有 dart 代码, 可以用来生成 dart lib;

参考资料

github.com/flutter/flu…

flutterchina.club/developing-…

flutter.dev/docs/develo…

medium.com/flutter/wri…

dart.dev/tools/pub/p…

转载于:https://juejin.im/post/5d5f9739f265da03cb1242f0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值