在日常开发中,很多时候需要用到第三方的 SDK ,这些 SDK 可能会被很多个项目用到,因此可以将这些代码单独抽到一个模块中,使用的时候只需要集成对于的模块即可,
在 Java 中,模块会被打成一个 jar 包
在 Android 中,模块会被打成一个·aar 包
一个 app 在开发的过程中可能会依赖非常多的包,这些包通常都会出现交叉依赖,版本依赖等,如果需要手动管理,则会非常麻烦,因此,各种编程语言的官方都会提供一下包管理工具,如:
在 Android 中提供了 Gradle 来管理依赖
在 IOS 中用 Cocoapods 或者 Carthage 来管理依赖
而在 Flultter 中,使用的是 yaml 文件作为其配置文件,全名 pubspec.yaml
pubspec.yaml
代码语言:javascript复制name: flutter_study
description: A new Flutter application.
publish_to: 'none'
version: 1.0.0 1
environment:
sdk: ">=2.7.0 <3.0.0"
dependencies:
flutter:
sdk: flutter
cupertino_icons: ^1.0.0
dev_dependencies:
flutter_test:
sdk: flutter
flutter:
uses-material-design: true
复制代码
- name :应用或者包名称
- description:应用或包的描述,简介
- version:应用或包的版本号
- environment:环境版本
- dependencies:应用或包导入的其他包或者插件
- dev_dependencies:开发环境依赖的工具包(而不是 flutter 本身依赖的包)
- flutter:flutter 相关配置选项
Pub 仓库
Pub 是 Google 官方的 Dart Packages 仓库,类似于 android 中的 jcenter ,我们可以在 Pub 上面查找我们需要的包和插件,也可以想 Pub 发布我们的包和插件
示例:
在 Pub 上找到一个随机字符串的 widget,并确定最新版本号和是否支持 flutter,
- 添加依赖
dependencies:
flutter:
sdk: flutter
cupertino_icons: ^1.0.0
english_words : ^3.1.5
- 同步代码 pub Get
- dev_dependencies dev_dependencies 的依赖包只是作为开发阶段的一个工具包,主要是用于帮助我们提高开发,测试效率,等,例如 flutter 自动化测试等 dependencies 会将依赖包作为 app 源码的一部分并参与编译,生成最后的安装包
- 使用 english_words 包生成随机字符串
class RandomWordsWidget extends StatelessWidget {
final wordPair = new WordPair.random();
@override
Widget build(BuildContext context) {
return Padding(
padding: const EdgeInsets.all(8.0),
child: new Text(wordPair.toString()));
}
}
将上面的 widget 添加到界面中
- 点击热重载按钮,每次都会随机生成不同的单词
其他依赖方式
- 依赖本地包
dependencies:
pkg1:
path: ../../code/pkg1
如果我们真正本地开发一个包,名字为 pkg1,可以通过上面的方式依赖,路径可以相对,也可以绝对
- 依赖 git
//git方式
dependencies:
flutter_easyrefresh:
git:
url: git://github.com/xuelongqy/flutter_easyrefresh.git
flutter_easyrefresh:依赖的项目名称
代码语言:javascript复制dependencies:
kittens:
git: git@github.com:munificent/kittens.git
path: flutterpackagename
依赖git仓库下的某个flutter package
Flutter 项目目录结构
- android flutter 与 android 原生交互的一些代码
- ios flutter 与 ios 原生交互的一些代码
- lib 这里存放的是 dart 语言编写的代码,并且是项目中最核心的代码,我们主要编写的代码就是在这个文件夹
- pubspec.yaml 这里是配置依赖项的文件,例如远程的 pub 仓库,git 仓库等
参考自Flutter 实战