第七十五回:Flutter中的包管理

news/2024/5/20 4:12:27 标签: flutter, 包管理, yaml文件, cocoapods, gradle

文章目录

  • 概念介绍
  • 使用方法
  • 示例程序
  • 经验分享

我们在上一章回中介绍了主题相关的内容,本章回中将介绍 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中的包管理"相关的内容就介绍到这里,欢迎大家在评论区交流与讨论!


http://www.niftyadmin.cn/n/1320382.html

相关文章

SSM集成SpringSecurity(五)user-service配置实现用户权限访问控制

SpringSecurity的主要功能是认证和授权&#xff0c;前面我们分别讲了基于httpBasic和formLogin的登录认证。本节开始&#xff0c;我们讲解SpringSecurity的授权。 授权&#xff1a;授予用户一定的权限。 基于前面章节的代码&#xff0c;我们假设有这样一个需求&#xff1a;现…

jQuery对象与JS原生dom对象之间的转换

jQuery就是JS的一个扩展库&#xff0c;工具库&#xff0c;提供很多方便快捷的方法&#xff0c;所以将JS对象转换为jQuery对象后&#xff0c;能更方便地操作这个对象。但是jQuery对象也不是万能的&#xff0c;有一些JS对象有的能&#xff0c;jQuery对象并没有提供&#xff0c;所…

SSM集成SpringSecurity(六)自定义登录成功失败处理逻辑

在现实的很多开发中&#xff0c;前后端都是分离的&#xff0c;前端访问接口返回的数据一般都是json格式。前端表单登录&#xff0c;我们应该返回一个登录成功或失败的json&#xff0c;然后由前端自己进行处理。 SpringSecurity提供了AuthenticationSuccessHandler和Authentica…

js Array 方法|js Array 方法使用

Array 对象的方法 FF: Firefox, N: Netscape, IE: Internet Explorer 方法描述FFNIEconcat()连接两个或更多的数组&#xff0c;并返回结果。144join()把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔。134pop()删除并返回数组的最后一个元素145.5push()向数组的…

H.js DOM相关(操作)

H.js DOM相关&#xff08;与jquery基本类似&#xff0c;学过jquery&#xff0c;zepto的问题不大&#xff0c;看文档基本ok&#xff09; 1、h.js 选择器 dom元素选择器 使用h&#xff08;select&#xff09;可以快速的选择dom元素&#xff0c;支持下面几种选择方式&#xff1a; …

SSM集成SpringSecurity(七)基于RBAC实现菜单权限 ——上

准备环境 一&#xff1a;把mybatis配置进来 (1): 在resources目下新增jdbc.properties配置文件&#xff0c;用于配置数据库的相关信息 jdbc.url jdbc:mysql://IP地址:3306/ssm_security jdbc.driverClass com.mysql.jdbc.Driver jdbc.username 数据库用户名 jdbc.password…

Listener Servlet的应用

Listener是 Servlet的监听器&#xff0c;它可以监听客户端的请求、服务端的操作等。通过监听器&#xff0c;可以自动激发一些操作&#xff0c;比如监听在线的用户的数量。当增加一个 HttpSession时&#xff0c;就激发sessionCreated(HttpSessionEvent se)方法&#xff0c;这样就…

基于HTML5之APP微信支付集成实现(转载)

一 摘要 这里HTML5集成微信支付跟iOS,安卓集成微信支付过程是一样的,iOS微信集成参考之前的文章. http://blog.csdn.net/baihuaxiu123/article/details/51415717 这里引用之前文章的集成过程.如下: 商户系统和微信支付系统主要交互说明&#xff1a; 步骤1&#xff1a;用户在商户…