Flutter工程类型

925 阅读1分钟

Flutter的六种工程类型

工程类型简介特点 (都可以依赖其他的Package/Plugin)应用场景可以包含
原生代码?
Flutter ApplicationFlutter App应用默认的Flutter App工程Flutter开发作为主项目可以
Flutter ModuleFlutter模块可作为独立模块混编到已有的Android/iOS工程中1. 原生与Flutter混合开发
2. 以module方式集成到Flutter App项目中,实现模块分层
不可以
Flutter PluginFlutter插件可以发布到pub.devFlutter平台插件工程,包含Dart层与Native平台层的实现可以
Flutter Package纯Dart/Flutter
组件包
可以发布到pub.dev纯Dart/Flutter插件工程,仅包含Dart/Flutter层的实现,往往定义一些公共工具类或Widget不可以
Flutter SkeletonFlutter App
模版应用
提供一种较好的Flutter App项目模板Flutter开发作为主项目可以
Flutter FFI PluginFlutter外部函数
接口插件
与C/C++直接交互1. Flutter项目使用原生C/C++库
2.性能优化,将较长的调用链Flutter-> Platform-> Native变成Dart直接调用C/C++
可以

项目结构特点

Flutter Application

  • 项目包含android、iOS等支持平台的目录
  • .metadata中project_type类型为app flutter_app.png

Flutter Module

  • 项目包含.android、.iOS等默认的宿主项目目录
  • .metadata中project_type类型为module
  • pubspec.yaml中包含module字段 flutter_module.png

Flutter Plugin

  • 项目包含Dart层与android、iOS等Native平台层的实现代码
  • .metadata中project_type类型为plugin flutter_plugin.png

Flutter Package

  • .metadata中project_type类型为package image.png

Flutter Skeleton

  • 项目包含android、iOS等支持平台的目录
  • 项目包含路由、资源、多语言、状态管理等模版示例 flutter_skeleton.png

Flutter FFI Plugin

  • 项目包含Dart层与Native平台层实现的C语言代码
  • .metadata中project_type类型为plugin_ffi flutter_ffi_plugin.png