我们在上一章回中介绍了主题相关的内容,本章回中将介绍 Flutter包管理.闲话休提,让我们一起Talk Flutter吧。
概念介绍
在移动开发中会使用各种各样的包,比如Android开发中用于网络操作的Okhttp包,包太多了就需要做统一的布署和管理,不然会让项目混乱不堪。
Android早期使用Ant进行包管理,现在全部使用Gradle来管理包,当然了包管理只是Gradle的部分功能,它还可以用来构建项目。
IOS使用Cocoapods来进行包管理,不过它不是苹果官方推出的,因此需要单独安装。
Flutter作为跨端开发框架也提供了包管理功能,它通过yaml文件来进行包管理,该文件类似xml,不过语法上比xml更加容易理解。
使用方法
使用AndroidStudio创建Flutter项目后会自动生成一个名叫pubspec.yaml的文件,该文件位于项目根目录下,主要用来管理包。下面是文件中常用的语法:
- name: xxx #用来设置项目的名称
- description: xxx #对项目的简要概述
- publish_to:‘none’ #表示不发布到pub.dev仓库中
- version: #用来设置项目的版本
- dependencies: #用来管理所有的包
- dev_dependencies: #用来管理开发环境中的包
- flutter: #用来控制项目的配置
这些语法都是标签,标签下面的区域就是它的作用范围,直到下一个标签出现时才会结束,官方称这个作用范围为section。标签需要顶格写,没有缩进,而位于标签作用范围内的内容要缩进。
示例程序
name: fluttercookbook
description: A new Flutter project.
publish_to: 'none' # Remove this line if you wish to publish to pub.dev
version: 1.0.0+1
environment:
sdk: ">=2.17.6 <3.0.0"
dependencies:
flutter:
sdk: flutter
#talk8 add 添加国际化相关内容,添加完后IDE会在窗口上方自动弹出flutter命令,选择pub get就可以添加依赖
#或者是在终端中执行flutter命令,命令内容?依赖主要更新了Dart_Packages.xml文件中的内容
flutter_localizations:
sdk: flutter
intl: any
#导入intl依赖,输入任何数字后IDE就会自动弹出当前最新的版本
intl_translation: ^0.18.2
上面的示例代码中只有intl相关的内容是我们手动添加的,主要用来引入intl包实现国际化,其它的内容都是项目默认生成的内容。在实际项目中我们引入包时只需要在dependencies标签下添加包名和版本号就可以,写法类似上面代码中的intl包。
经验分享
Flutter官方维护着一个包分发平台:pub.dev.我们可以到该网站查看流行的包,这些包有些是Flutter官方推出的,有些是三方公司或者个人推出的。我们可以依据项目需求来选择不同包,后续的内容中我们也会介绍一些常用的包,以及它们的使用方法。
在给程序编译或者打包时就会发现Andoird端没有使用Gradle管理包,而且是直接使用yaml文件来管理包,而IOS端则仍然使用Cocoapods来管理包,这点可以从IOS
目录下的Podfile推断出来.因此要提前安装好Cocoapods。
看官们,关于"Flutter中的包管理"相关的内容就介绍到这里,欢迎大家在评论区交流与讨论!
文章介绍了Flutter的包管理机制,通过pubspec.yaml文件进行依赖管理,并提供了示例代码展示如何添加和管理包。Flutter项目依赖于pub.dev平台,开发者可以在这里查找和选择第三方包。同时,文章指出Android端直接用yaml管理,而iOS端仍需Cocoapods。
2074

被折叠的 条评论
为什么被折叠?



