我们根据默认模板新建一个flutter项目,会生成一个计数的项目,首先介绍下整个目录结构:
目录结构
目录结构
可以看到,除了 Flutter 本身的代码、资源、依赖和配置之外,Flutter 工程还包含了 Android 和 iOS 的工程目录。
android 目录
这个目录下是一个完整的 Android APP 工程的代码。可以理解成 Flutter 在 Android 上的壳子。这个目录里的代码都会被打包进 Flutter 的 Android 安装包里。ios 目录
这个目录下是一个完整的 iOS APP 工程的代码。可以理解成 Flutter 在 iOS 上的壳子。这个目录里的代码都会被打包进 Flutter 的 iOS 安装包里。lib 目录
这里是 Flutter 的代码,使用 Dart 语言编写。main.dart 是 Flutter 的入口文件。test 目录
这里是 Flutter 的测试代码,使用 Dart 语言编写。pubspec.yaml 文件
这个是 Flutter 的配置文件,声明了 Flutter APP 的名称、版本、作者等的元数据文件,还有声明的依赖库,和指定的本地资源(图片、字体、音频、视频等)。
例子如下:
name: flutter_doubanmovie
description: A new Flutter project.
version: 1.0.0+1
authors:
- Natalie Weizenbaum <nweiz@google.com>
- Bob Nystrom <rnystrom@google.com>
homepage: https://flutter.dev/
environment:
sdk: ">=2.1.0 <3.0.0"
dependencies:
flutter:
sdk: flutter
cupertino_icons: ^0.1.2
http: ^0.12.0+2
shared_preferences: ^0.5.2
dev_dependencies:
flutter_test:
sdk: flutter
flutter:
uses-material-design: true
下表是 pubspec.yaml 支持的字段:
字段名 | 含义 | 可选/必选 |
---|---|---|
name | 工程的名字 | 必选 |
description | 工程的描述 | 想要发布到 Pub 上,就是必须的 |
version | 工程的版本号 | 想要发布到 Pub 上,就是必须的 |
author or authors | 作者名字 | 可选 |
homepage | 主页 | 可选 |
environment | 指定 Dart 的版本,因为 随着时间的推移,Dart 不断发展,一个软件包可能只适用于某些版本的平台。 | 必选 |
repository | 指向工程的源代码的地址 | 可选 |
issue_tracker | 指向跟踪工程issue的地址 | 可选 |
documentation | 指向工程文档的地址 | 可选 |
dependencies | 依赖的开发库 | 如果你的工程没有依赖的话,可以省略 |
dev_dependencies | 依赖的测试库 | 如果你的工程没有依赖的话,可以省略 |
dependency_overrides | 在开发过程中,您可能需要暂时覆盖依赖项。 | 如果你的工程不需要要覆盖依赖的话,可以省略 |
executables | 用于将包的可执行文件放在PATH上:可以将其一个或多个脚本公开为可以直接从命令行运行的可执行文件。 | 可选 |
publish_to | 指定发布包的位置,默认是 Pub | 可选 |
flutter | flutter 资源相关的配置,包括图片、字体等,后面会有具体场景 | 必选 |
备注:pubspec.yaml 是 Flutter 的配置,是 Flutter 里的重要部分,使用 YAML 语言来写。
- pubspec.lock 文件
这个是 pubspec.yaml的实际配置信息文件,详细保存着实际依赖的具体信息,包括具体版本号、地址等。
Flutter Application 包含 Dart 代码、Android 代码和 iOS 代码,可以直接生成 Android 安装包和 iOS 安装包。